/linux-4.1.27/include/linux/ |
H A D | fcntl.h | 12 #define IS_GETLK32(cmd) ((cmd) == F_GETLK) 13 #define IS_SETLK32(cmd) ((cmd) == F_SETLK) 14 #define IS_SETLKW32(cmd) ((cmd) == F_SETLKW) 15 #define IS_GETLK64(cmd) ((cmd) == F_GETLK64) 16 #define IS_SETLK64(cmd) ((cmd) == F_SETLK64) 17 #define IS_SETLKW64(cmd) ((cmd) == F_SETLKW64) 19 #define IS_GETLK32(cmd) (0) 20 #define IS_SETLK32(cmd) (0) 21 #define IS_SETLKW32(cmd) (0) 22 #define IS_GETLK64(cmd) ((cmd) == F_GETLK) 23 #define IS_SETLK64(cmd) ((cmd) == F_SETLK) 24 #define IS_SETLKW64(cmd) ((cmd) == F_SETLKW) 27 #define IS_GETLK(cmd) (IS_GETLK32(cmd) || IS_GETLK64(cmd)) 28 #define IS_SETLK(cmd) (IS_SETLK32(cmd) || IS_SETLK64(cmd)) 29 #define IS_SETLKW(cmd) (IS_SETLKW32(cmd) || IS_SETLKW64(cmd))
|
/linux-4.1.27/drivers/net/wireless/ti/wl18xx/ |
H A D | cmd.c | 22 #include "../wlcore/cmd.h" 26 #include "cmd.h" 32 struct wl18xx_cmd_channel_switch *cmd; wl18xx_cmd_channel_switch() local 36 wl1271_debug(DEBUG_ACX, "cmd channel switch (count=%d)", wl18xx_cmd_channel_switch() 39 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl18xx_cmd_channel_switch() 40 if (!cmd) { wl18xx_cmd_channel_switch() 45 cmd->role_id = wlvif->role_id; wl18xx_cmd_channel_switch() 46 cmd->channel = ch_switch->chandef.chan->hw_value; wl18xx_cmd_channel_switch() 47 cmd->switch_time = ch_switch->count; wl18xx_cmd_channel_switch() 48 cmd->stop_tx = ch_switch->block_tx; wl18xx_cmd_channel_switch() 52 cmd->band = WLCORE_BAND_2_4GHZ; wl18xx_cmd_channel_switch() 55 cmd->band = WLCORE_BAND_5GHZ; wl18xx_cmd_channel_switch() 72 cmd->local_supported_rates = cpu_to_le32(supported_rates); wl18xx_cmd_channel_switch() 73 cmd->channel_type = wlvif->channel_type; wl18xx_cmd_channel_switch() 75 ret = wl1271_cmd_send(wl, CMD_CHANNEL_SWITCH, cmd, sizeof(*cmd), 0); wl18xx_cmd_channel_switch() 82 kfree(cmd); wl18xx_cmd_channel_switch() 89 struct wl18xx_cmd_smart_config_start *cmd; wl18xx_cmd_smart_config_start() local 92 wl1271_debug(DEBUG_CMD, "cmd smart config start group_bitmap=0x%x", wl18xx_cmd_smart_config_start() 95 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl18xx_cmd_smart_config_start() 96 if (!cmd) { wl18xx_cmd_smart_config_start() 101 cmd->group_id_bitmask = cpu_to_le32(group_bitmap); wl18xx_cmd_smart_config_start() 103 ret = wl1271_cmd_send(wl, CMD_SMART_CONFIG_START, cmd, sizeof(*cmd), 0); wl18xx_cmd_smart_config_start() 110 kfree(cmd); wl18xx_cmd_smart_config_start() 117 struct wl1271_cmd_header *cmd; wl18xx_cmd_smart_config_stop() local 120 wl1271_debug(DEBUG_CMD, "cmd smart config stop"); wl18xx_cmd_smart_config_stop() 122 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl18xx_cmd_smart_config_stop() 123 if (!cmd) { wl18xx_cmd_smart_config_stop() 128 ret = wl1271_cmd_send(wl, CMD_SMART_CONFIG_STOP, cmd, sizeof(*cmd), 0); wl18xx_cmd_smart_config_stop() 135 kfree(cmd); wl18xx_cmd_smart_config_stop() 143 struct wl18xx_cmd_smart_config_set_group_key *cmd; wl18xx_cmd_smart_config_set_group_key() local 146 wl1271_debug(DEBUG_CMD, "cmd smart config set group key id=0x%x", wl18xx_cmd_smart_config_set_group_key() 149 if (key_len != sizeof(cmd->key)) { wl18xx_cmd_smart_config_set_group_key() 154 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl18xx_cmd_smart_config_set_group_key() 155 if (!cmd) { wl18xx_cmd_smart_config_set_group_key() 160 cmd->group_id = cpu_to_le32(group_id); wl18xx_cmd_smart_config_set_group_key() 161 memcpy(cmd->key, key, key_len); wl18xx_cmd_smart_config_set_group_key() 163 ret = wl1271_cmd_send(wl, CMD_SMART_CONFIG_SET_GROUP_KEY, cmd, wl18xx_cmd_smart_config_set_group_key() 164 sizeof(*cmd), 0); wl18xx_cmd_smart_config_set_group_key() 166 wl1271_error("failed to send smart config set group key cmd"); wl18xx_cmd_smart_config_set_group_key() 171 kfree(cmd); wl18xx_cmd_smart_config_set_group_key() 178 struct wlcore_cmd_cac_start *cmd; wl18xx_cmd_set_cac() local 181 wl1271_debug(DEBUG_CMD, "cmd cac (channel %d) %s", wl18xx_cmd_set_cac() 184 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl18xx_cmd_set_cac() 185 if (!cmd) wl18xx_cmd_set_cac() 188 cmd->role_id = wlvif->role_id; wl18xx_cmd_set_cac() 189 cmd->channel = wlvif->channel; wl18xx_cmd_set_cac() 191 cmd->band = WLCORE_BAND_5GHZ; wl18xx_cmd_set_cac() 192 cmd->bandwidth = wlcore_get_native_channel_type(wlvif->channel_type); wl18xx_cmd_set_cac() 196 cmd, sizeof(*cmd), 0); wl18xx_cmd_set_cac() 203 kfree(cmd); wl18xx_cmd_set_cac() 209 struct wl18xx_cmd_dfs_radar_debug *cmd; wl18xx_cmd_radar_detection_debug() local 212 wl1271_debug(DEBUG_CMD, "cmd radar detection debug (chan %d)", wl18xx_cmd_radar_detection_debug() 215 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl18xx_cmd_radar_detection_debug() 216 if (!cmd) wl18xx_cmd_radar_detection_debug() 219 cmd->channel = channel; wl18xx_cmd_radar_detection_debug() 222 cmd, sizeof(*cmd), 0); wl18xx_cmd_radar_detection_debug() 229 kfree(cmd); wl18xx_cmd_radar_detection_debug() 235 struct wl18xx_cmd_dfs_master_restart *cmd; wl18xx_cmd_dfs_master_restart() local 238 wl1271_debug(DEBUG_CMD, "cmd dfs master restart (role %d)", wl18xx_cmd_dfs_master_restart() 241 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl18xx_cmd_dfs_master_restart() 242 if (!cmd) wl18xx_cmd_dfs_master_restart() 245 cmd->role_id = wlvif->role_id; wl18xx_cmd_dfs_master_restart() 248 cmd, sizeof(*cmd), 0); wl18xx_cmd_dfs_master_restart() 254 kfree(cmd); wl18xx_cmd_dfs_master_restart()
|
H A D | scan.c | 26 static void wl18xx_adjust_channels(struct wl18xx_cmd_scan_params *cmd, wl18xx_adjust_channels() argument 29 memcpy(cmd->passive, cmd_channels->passive, sizeof(cmd->passive)); wl18xx_adjust_channels() 30 memcpy(cmd->active, cmd_channels->active, sizeof(cmd->active)); wl18xx_adjust_channels() 31 cmd->dfs = cmd_channels->dfs; wl18xx_adjust_channels() 32 cmd->passive_active = cmd_channels->passive_active; wl18xx_adjust_channels() 34 memcpy(cmd->channels_2, cmd_channels->channels_2, wl18xx_adjust_channels() 35 sizeof(cmd->channels_2)); wl18xx_adjust_channels() 36 memcpy(cmd->channels_5, cmd_channels->channels_5, wl18xx_adjust_channels() 37 sizeof(cmd->channels_5)); wl18xx_adjust_channels() 44 struct wl18xx_cmd_scan_params *cmd; wl18xx_scan_send() local 48 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl18xx_scan_send() 49 if (!cmd) { wl18xx_scan_send() 54 cmd->role_id = wlvif->role_id; wl18xx_scan_send() 56 if (WARN_ON(cmd->role_id == WL12XX_INVALID_ROLE_ID)) { wl18xx_scan_send() 61 cmd->scan_type = SCAN_TYPE_SEARCH; wl18xx_scan_send() 62 cmd->rssi_threshold = -127; wl18xx_scan_send() 63 cmd->snr_threshold = 0; wl18xx_scan_send() 65 cmd->bss_type = SCAN_BSS_TYPE_ANY; wl18xx_scan_send() 67 cmd->ssid_from_list = 0; wl18xx_scan_send() 68 cmd->filter = 0; wl18xx_scan_send() 69 cmd->add_broadcast = 0; wl18xx_scan_send() 71 cmd->urgency = 0; wl18xx_scan_send() 72 cmd->protect = 0; wl18xx_scan_send() 74 cmd->n_probe_reqs = wl->conf.scan.num_probe_reqs; wl18xx_scan_send() 75 cmd->terminate_after = 0; wl18xx_scan_send() 89 wl18xx_adjust_channels(cmd, cmd_channels); wl18xx_scan_send() 95 cmd->total_cycles = 1; wl18xx_scan_send() 98 cmd->rate = WL18XX_SCAN_RATE_6; wl18xx_scan_send() 100 cmd->tag = WL1271_SCAN_DEFAULT_TAG; wl18xx_scan_send() 103 cmd->ssid_len = req->ssids[0].ssid_len; wl18xx_scan_send() 104 memcpy(cmd->ssid, req->ssids[0].ssid, cmd->ssid_len); wl18xx_scan_send() 108 if (cmd->active[0]) { wl18xx_scan_send() 111 cmd->role_id, band, wl18xx_scan_send() 125 if (cmd->active[1] || cmd->dfs) { wl18xx_scan_send() 128 cmd->role_id, band, wl18xx_scan_send() 142 wl1271_dump(DEBUG_SCAN, "SCAN: ", cmd, sizeof(*cmd)); wl18xx_scan_send() 144 ret = wl1271_cmd_send(wl, CMD_SCAN, cmd, sizeof(*cmd), 0); wl18xx_scan_send() 152 kfree(cmd); wl18xx_scan_send() 170 struct wl18xx_cmd_scan_params *cmd; wl18xx_scan_sched_scan_config() local 176 wl1271_debug(DEBUG_CMD, "cmd sched_scan scan config"); wl18xx_scan_sched_scan_config() 182 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl18xx_scan_sched_scan_config() 183 if (!cmd) { wl18xx_scan_sched_scan_config() 188 cmd->role_id = wlvif->role_id; wl18xx_scan_sched_scan_config() 190 if (WARN_ON(cmd->role_id == WL12XX_INVALID_ROLE_ID)) { wl18xx_scan_sched_scan_config() 195 cmd->scan_type = SCAN_TYPE_PERIODIC; wl18xx_scan_sched_scan_config() 196 cmd->rssi_threshold = c->rssi_threshold; wl18xx_scan_sched_scan_config() 197 cmd->snr_threshold = c->snr_threshold; wl18xx_scan_sched_scan_config() 200 cmd->bss_type = SCAN_BSS_TYPE_ANY; wl18xx_scan_sched_scan_config() 202 cmd->ssid_from_list = 1; wl18xx_scan_sched_scan_config() 204 cmd->filter = 1; wl18xx_scan_sched_scan_config() 205 cmd->add_broadcast = 0; wl18xx_scan_sched_scan_config() 207 cmd->urgency = 0; wl18xx_scan_sched_scan_config() 208 cmd->protect = 0; wl18xx_scan_sched_scan_config() 210 cmd->n_probe_reqs = c->num_probe_reqs; wl18xx_scan_sched_scan_config() 212 cmd->terminate_after = 0; wl18xx_scan_sched_scan_config() 224 wl18xx_adjust_channels(cmd, cmd_channels); wl18xx_scan_sched_scan_config() 226 cmd->short_cycles_sec = 0; wl18xx_scan_sched_scan_config() 227 cmd->long_cycles_sec = cpu_to_le16(req->interval); wl18xx_scan_sched_scan_config() 228 cmd->short_cycles_count = 0; wl18xx_scan_sched_scan_config() 230 cmd->total_cycles = 0; wl18xx_scan_sched_scan_config() 232 cmd->tag = WL1271_SCAN_DEFAULT_TAG; wl18xx_scan_sched_scan_config() 235 cmd->report_threshold = 1; wl18xx_scan_sched_scan_config() 236 cmd->terminate_on_report = 0; wl18xx_scan_sched_scan_config() 238 if (cmd->active[0]) { wl18xx_scan_sched_scan_config() 241 cmd->role_id, band, wl18xx_scan_sched_scan_config() 255 if (cmd->active[1] || cmd->dfs) { wl18xx_scan_sched_scan_config() 258 cmd->role_id, band, wl18xx_scan_sched_scan_config() 272 wl1271_dump(DEBUG_SCAN, "SCAN: ", cmd, sizeof(*cmd)); wl18xx_scan_sched_scan_config() 274 ret = wl1271_cmd_send(wl, CMD_SCAN, cmd, sizeof(*cmd), 0); wl18xx_scan_sched_scan_config() 282 kfree(cmd); wl18xx_scan_sched_scan_config() 299 wl1271_debug(DEBUG_CMD, "cmd periodic scan stop"); __wl18xx_scan_stop()
|
H A D | Makefile | 1 wl18xx-objs = main.o acx.o tx.o io.o debugfs.o scan.o cmd.o event.o
|
/linux-4.1.27/tools/perf/util/ |
H A D | run-command.c | 19 int start_command(struct child_process *cmd) start_command() argument 30 need_in = !cmd->no_stdin && cmd->in < 0; start_command() 33 if (cmd->out > 0) start_command() 34 close(cmd->out); start_command() 37 cmd->in = fdin[1]; start_command() 40 need_out = !cmd->no_stdout start_command() 41 && !cmd->stdout_to_stderr start_command() 42 && cmd->out < 0; start_command() 47 else if (cmd->in) start_command() 48 close(cmd->in); start_command() 51 cmd->out = fdout[0]; start_command() 54 need_err = !cmd->no_stderr && cmd->err < 0; start_command() 59 else if (cmd->in) start_command() 60 close(cmd->in); start_command() 63 else if (cmd->out) start_command() 64 close(cmd->out); start_command() 67 cmd->err = fderr[0]; start_command() 71 cmd->pid = fork(); start_command() 72 if (!cmd->pid) { start_command() 73 if (cmd->no_stdin) start_command() 78 } else if (cmd->in) { start_command() 79 dup2(cmd->in, 0); start_command() 80 close(cmd->in); start_command() 83 if (cmd->no_stderr) start_command() 90 if (cmd->no_stdout) start_command() 92 else if (cmd->stdout_to_stderr) start_command() 97 } else if (cmd->out > 1) { start_command() 98 dup2(cmd->out, 1); start_command() 99 close(cmd->out); start_command() 102 if (cmd->dir && chdir(cmd->dir)) start_command() 103 die("exec %s: cd to %s failed (%s)", cmd->argv[0], start_command() 104 cmd->dir, strerror_r(errno, sbuf, sizeof(sbuf))); start_command() 105 if (cmd->env) { start_command() 106 for (; *cmd->env; cmd->env++) { start_command() 107 if (strchr(*cmd->env, '=')) start_command() 108 putenv((char*)*cmd->env); start_command() 110 unsetenv(*cmd->env); start_command() 113 if (cmd->preexec_cb) start_command() 114 cmd->preexec_cb(); start_command() 115 if (cmd->perf_cmd) { start_command() 116 execv_perf_cmd(cmd->argv); start_command() 118 execvp(cmd->argv[0], (char *const*) cmd->argv); start_command() 123 if (cmd->pid < 0) { start_command() 127 else if (cmd->in) start_command() 128 close(cmd->in); start_command() 131 else if (cmd->out) start_command() 132 close(cmd->out); start_command() 142 else if (cmd->in) start_command() 143 close(cmd->in); start_command() 147 else if (cmd->out) start_command() 148 close(cmd->out); start_command() 190 int finish_command(struct child_process *cmd) finish_command() argument 192 return wait_or_whine(cmd->pid); finish_command() 195 int run_command(struct child_process *cmd) run_command() argument 197 int code = start_command(cmd); run_command() 200 return finish_command(cmd); run_command() 203 static void prepare_run_command_v_opt(struct child_process *cmd, prepare_run_command_v_opt() argument 207 memset(cmd, 0, sizeof(*cmd)); prepare_run_command_v_opt() 208 cmd->argv = argv; prepare_run_command_v_opt() 209 cmd->no_stdin = opt & RUN_COMMAND_NO_STDIN ? 1 : 0; prepare_run_command_v_opt() 210 cmd->perf_cmd = opt & RUN_PERF_CMD ? 1 : 0; prepare_run_command_v_opt() 211 cmd->stdout_to_stderr = opt & RUN_COMMAND_STDOUT_TO_STDERR ? 1 : 0; prepare_run_command_v_opt() 216 struct child_process cmd; run_command_v_opt() local 217 prepare_run_command_v_opt(&cmd, argv, opt); run_command_v_opt() 218 return run_command(&cmd); run_command_v_opt()
|
/linux-4.1.27/drivers/staging/fsl-mc/bus/ |
H A D | dprc.c | 33 #include "../include/mc-cmd.h" 35 #include "dprc-cmd.h" 39 struct mc_command cmd = { 0 }; dprc_open() local 43 cmd.header = mc_encode_cmd_header(DPRC_CMDID_OPEN, MC_CMD_PRI_LOW, dprc_open() 45 cmd.params[0] |= mc_enc(0, 32, container_id); dprc_open() 48 err = mc_send_command(mc_io, &cmd); dprc_open() 53 *token = MC_CMD_HDR_READ_TOKEN(cmd.header); dprc_open() 61 struct mc_command cmd = { 0 }; dprc_close() local 64 cmd.header = mc_encode_cmd_header(DPRC_CMDID_CLOSE, MC_CMD_PRI_HIGH, dprc_close() 68 return mc_send_command(mc_io, &cmd); dprc_close() 78 struct mc_command cmd = { 0 }; dprc_create_container() local 82 cmd.params[0] |= mc_enc(32, 16, cfg->icid); dprc_create_container() 83 cmd.params[0] |= mc_enc(0, 32, cfg->options); dprc_create_container() 84 cmd.params[1] |= mc_enc(32, 32, cfg->portal_id); dprc_create_container() 86 cmd.header = mc_encode_cmd_header(DPRC_CMDID_CREATE_CONT, dprc_create_container() 90 err = mc_send_command(mc_io, &cmd); dprc_create_container() 95 *child_container_id = mc_dec(cmd.params[1], 0, 32); dprc_create_container() 96 *child_portal_paddr = mc_dec(cmd.params[2], 0, 64); dprc_create_container() 105 struct mc_command cmd = { 0 }; dprc_destroy_container() local 108 cmd.header = mc_encode_cmd_header(DPRC_CMDID_DESTROY_CONT, dprc_destroy_container() 110 cmd.params[0] |= mc_enc(0, 32, child_container_id); dprc_destroy_container() 113 return mc_send_command(mc_io, &cmd); dprc_destroy_container() 120 struct mc_command cmd = { 0 }; dprc_reset_container() local 123 cmd.header = mc_encode_cmd_header(DPRC_CMDID_RESET_CONT, dprc_reset_container() 125 cmd.params[0] |= mc_enc(0, 32, child_container_id); dprc_reset_container() 128 return mc_send_command(mc_io, &cmd); dprc_reset_container() 139 struct mc_command cmd = { 0 }; dprc_get_irq() local 143 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_IRQ, dprc_get_irq() 146 cmd.params[0] |= mc_enc(32, 8, irq_index); dprc_get_irq() 149 err = mc_send_command(mc_io, &cmd); dprc_get_irq() 154 *irq_val = mc_dec(cmd.params[0], 0, 32); dprc_get_irq() 155 *irq_paddr = mc_dec(cmd.params[1], 0, 64); dprc_get_irq() 156 *user_irq_id = mc_dec(cmd.params[2], 0, 32); dprc_get_irq() 157 *type = mc_dec(cmd.params[2], 32, 32); dprc_get_irq() 169 struct mc_command cmd = { 0 }; dprc_set_irq() local 172 cmd.header = mc_encode_cmd_header(DPRC_CMDID_SET_IRQ, dprc_set_irq() 175 cmd.params[0] |= mc_enc(32, 8, irq_index); dprc_set_irq() 176 cmd.params[0] |= mc_enc(0, 32, irq_val); dprc_set_irq() 177 cmd.params[1] |= mc_enc(0, 64, irq_paddr); dprc_set_irq() 178 cmd.params[2] |= mc_enc(0, 32, user_irq_id); dprc_set_irq() 181 return mc_send_command(mc_io, &cmd); dprc_set_irq() 189 struct mc_command cmd = { 0 }; dprc_get_irq_enable() local 193 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_IRQ_ENABLE, dprc_get_irq_enable() 195 cmd.params[0] |= mc_enc(32, 8, irq_index); dprc_get_irq_enable() 198 err = mc_send_command(mc_io, &cmd); dprc_get_irq_enable() 203 *en = mc_dec(cmd.params[0], 0, 8); dprc_get_irq_enable() 213 struct mc_command cmd = { 0 }; dprc_set_irq_enable() local 216 cmd.header = mc_encode_cmd_header(DPRC_CMDID_SET_IRQ_ENABLE, dprc_set_irq_enable() 218 cmd.params[0] |= mc_enc(0, 8, en); dprc_set_irq_enable() 219 cmd.params[0] |= mc_enc(32, 8, irq_index); dprc_set_irq_enable() 222 return mc_send_command(mc_io, &cmd); dprc_set_irq_enable() 230 struct mc_command cmd = { 0 }; dprc_get_irq_mask() local 234 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_IRQ_MASK, dprc_get_irq_mask() 236 cmd.params[0] |= mc_enc(32, 8, irq_index); dprc_get_irq_mask() 239 err = mc_send_command(mc_io, &cmd); dprc_get_irq_mask() 244 *mask = mc_dec(cmd.params[0], 0, 32); dprc_get_irq_mask() 254 struct mc_command cmd = { 0 }; dprc_set_irq_mask() local 257 cmd.header = mc_encode_cmd_header(DPRC_CMDID_SET_IRQ_MASK, dprc_set_irq_mask() 259 cmd.params[0] |= mc_enc(0, 32, mask); dprc_set_irq_mask() 260 cmd.params[0] |= mc_enc(32, 8, irq_index); dprc_set_irq_mask() 263 return mc_send_command(mc_io, &cmd); dprc_set_irq_mask() 271 struct mc_command cmd = { 0 }; dprc_get_irq_status() local 275 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_IRQ_STATUS, dprc_get_irq_status() 277 cmd.params[0] |= mc_enc(32, 8, irq_index); dprc_get_irq_status() 280 err = mc_send_command(mc_io, &cmd); dprc_get_irq_status() 285 *status = mc_dec(cmd.params[0], 0, 32); dprc_get_irq_status() 295 struct mc_command cmd = { 0 }; dprc_clear_irq_status() local 298 cmd.header = mc_encode_cmd_header(DPRC_CMDID_CLEAR_IRQ_STATUS, dprc_clear_irq_status() 300 cmd.params[0] |= mc_enc(0, 32, status); dprc_clear_irq_status() 301 cmd.params[0] |= mc_enc(32, 8, irq_index); dprc_clear_irq_status() 304 return mc_send_command(mc_io, &cmd); dprc_clear_irq_status() 311 struct mc_command cmd = { 0 }; dprc_get_attributes() local 315 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_ATTR, dprc_get_attributes() 320 err = mc_send_command(mc_io, &cmd); dprc_get_attributes() 325 attr->container_id = mc_dec(cmd.params[0], 0, 32); dprc_get_attributes() 326 attr->icid = mc_dec(cmd.params[0], 32, 16); dprc_get_attributes() 327 attr->options = mc_dec(cmd.params[1], 0, 32); dprc_get_attributes() 328 attr->portal_id = mc_dec(cmd.params[1], 32, 32); dprc_get_attributes() 329 attr->version.major = mc_dec(cmd.params[2], 0, 16); dprc_get_attributes() 330 attr->version.minor = mc_dec(cmd.params[2], 16, 16); dprc_get_attributes() 341 struct mc_command cmd = { 0 }; dprc_set_res_quota() local 344 cmd.header = mc_encode_cmd_header(DPRC_CMDID_SET_RES_QUOTA, dprc_set_res_quota() 346 cmd.params[0] |= mc_enc(0, 32, child_container_id); dprc_set_res_quota() 347 cmd.params[0] |= mc_enc(32, 16, quota); dprc_set_res_quota() 348 cmd.params[1] |= mc_enc(0, 8, type[0]); dprc_set_res_quota() 349 cmd.params[1] |= mc_enc(8, 8, type[1]); dprc_set_res_quota() 350 cmd.params[1] |= mc_enc(16, 8, type[2]); dprc_set_res_quota() 351 cmd.params[1] |= mc_enc(24, 8, type[3]); dprc_set_res_quota() 352 cmd.params[1] |= mc_enc(32, 8, type[4]); dprc_set_res_quota() 353 cmd.params[1] |= mc_enc(40, 8, type[5]); dprc_set_res_quota() 354 cmd.params[1] |= mc_enc(48, 8, type[6]); dprc_set_res_quota() 355 cmd.params[1] |= mc_enc(56, 8, type[7]); dprc_set_res_quota() 356 cmd.params[2] |= mc_enc(0, 8, type[8]); dprc_set_res_quota() 357 cmd.params[2] |= mc_enc(8, 8, type[9]); dprc_set_res_quota() 358 cmd.params[2] |= mc_enc(16, 8, type[10]); dprc_set_res_quota() 359 cmd.params[2] |= mc_enc(24, 8, type[11]); dprc_set_res_quota() 360 cmd.params[2] |= mc_enc(32, 8, type[12]); dprc_set_res_quota() 361 cmd.params[2] |= mc_enc(40, 8, type[13]); dprc_set_res_quota() 362 cmd.params[2] |= mc_enc(48, 8, type[14]); dprc_set_res_quota() 363 cmd.params[2] |= mc_enc(56, 8, '\0'); dprc_set_res_quota() 366 return mc_send_command(mc_io, &cmd); dprc_set_res_quota() 375 struct mc_command cmd = { 0 }; dprc_get_res_quota() local 379 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_RES_QUOTA, dprc_get_res_quota() 381 cmd.params[0] |= mc_enc(0, 32, child_container_id); dprc_get_res_quota() 382 cmd.params[1] |= mc_enc(0, 8, type[0]); dprc_get_res_quota() 383 cmd.params[1] |= mc_enc(8, 8, type[1]); dprc_get_res_quota() 384 cmd.params[1] |= mc_enc(16, 8, type[2]); dprc_get_res_quota() 385 cmd.params[1] |= mc_enc(24, 8, type[3]); dprc_get_res_quota() 386 cmd.params[1] |= mc_enc(32, 8, type[4]); dprc_get_res_quota() 387 cmd.params[1] |= mc_enc(40, 8, type[5]); dprc_get_res_quota() 388 cmd.params[1] |= mc_enc(48, 8, type[6]); dprc_get_res_quota() 389 cmd.params[1] |= mc_enc(56, 8, type[7]); dprc_get_res_quota() 390 cmd.params[2] |= mc_enc(0, 8, type[8]); dprc_get_res_quota() 391 cmd.params[2] |= mc_enc(8, 8, type[9]); dprc_get_res_quota() 392 cmd.params[2] |= mc_enc(16, 8, type[10]); dprc_get_res_quota() 393 cmd.params[2] |= mc_enc(24, 8, type[11]); dprc_get_res_quota() 394 cmd.params[2] |= mc_enc(32, 8, type[12]); dprc_get_res_quota() 395 cmd.params[2] |= mc_enc(40, 8, type[13]); dprc_get_res_quota() 396 cmd.params[2] |= mc_enc(48, 8, type[14]); dprc_get_res_quota() 397 cmd.params[2] |= mc_enc(56, 8, '\0'); dprc_get_res_quota() 400 err = mc_send_command(mc_io, &cmd); dprc_get_res_quota() 405 *quota = mc_dec(cmd.params[0], 32, 16); dprc_get_res_quota() 415 struct mc_command cmd = { 0 }; dprc_assign() local 418 cmd.header = mc_encode_cmd_header(DPRC_CMDID_ASSIGN, dprc_assign() 420 cmd.params[0] |= mc_enc(0, 32, container_id); dprc_assign() 421 cmd.params[0] |= mc_enc(32, 32, res_req->options); dprc_assign() 422 cmd.params[1] |= mc_enc(0, 32, res_req->num); dprc_assign() 423 cmd.params[1] |= mc_enc(32, 32, res_req->id_base_align); dprc_assign() 424 cmd.params[2] |= mc_enc(0, 8, res_req->type[0]); dprc_assign() 425 cmd.params[2] |= mc_enc(8, 8, res_req->type[1]); dprc_assign() 426 cmd.params[2] |= mc_enc(16, 8, res_req->type[2]); dprc_assign() 427 cmd.params[2] |= mc_enc(24, 8, res_req->type[3]); dprc_assign() 428 cmd.params[2] |= mc_enc(32, 8, res_req->type[4]); dprc_assign() 429 cmd.params[2] |= mc_enc(40, 8, res_req->type[5]); dprc_assign() 430 cmd.params[2] |= mc_enc(48, 8, res_req->type[6]); dprc_assign() 431 cmd.params[2] |= mc_enc(56, 8, res_req->type[7]); dprc_assign() 432 cmd.params[3] |= mc_enc(0, 8, res_req->type[8]); dprc_assign() 433 cmd.params[3] |= mc_enc(8, 8, res_req->type[9]); dprc_assign() 434 cmd.params[3] |= mc_enc(16, 8, res_req->type[10]); dprc_assign() 435 cmd.params[3] |= mc_enc(24, 8, res_req->type[11]); dprc_assign() 436 cmd.params[3] |= mc_enc(32, 8, res_req->type[12]); dprc_assign() 437 cmd.params[3] |= mc_enc(40, 8, res_req->type[13]); dprc_assign() 438 cmd.params[3] |= mc_enc(48, 8, res_req->type[14]); dprc_assign() 439 cmd.params[3] |= mc_enc(56, 8, res_req->type[15]); dprc_assign() 442 return mc_send_command(mc_io, &cmd); dprc_assign() 450 struct mc_command cmd = { 0 }; dprc_unassign() local 453 cmd.header = mc_encode_cmd_header(DPRC_CMDID_UNASSIGN, dprc_unassign() 456 cmd.params[0] |= mc_enc(0, 32, child_container_id); dprc_unassign() 457 cmd.params[0] |= mc_enc(32, 32, res_req->options); dprc_unassign() 458 cmd.params[1] |= mc_enc(0, 32, res_req->num); dprc_unassign() 459 cmd.params[1] |= mc_enc(32, 32, res_req->id_base_align); dprc_unassign() 460 cmd.params[2] |= mc_enc(0, 8, res_req->type[0]); dprc_unassign() 461 cmd.params[2] |= mc_enc(8, 8, res_req->type[1]); dprc_unassign() 462 cmd.params[2] |= mc_enc(16, 8, res_req->type[2]); dprc_unassign() 463 cmd.params[2] |= mc_enc(24, 8, res_req->type[3]); dprc_unassign() 464 cmd.params[2] |= mc_enc(32, 8, res_req->type[4]); dprc_unassign() 465 cmd.params[2] |= mc_enc(40, 8, res_req->type[5]); dprc_unassign() 466 cmd.params[2] |= mc_enc(48, 8, res_req->type[6]); dprc_unassign() 467 cmd.params[2] |= mc_enc(56, 8, res_req->type[7]); dprc_unassign() 468 cmd.params[3] |= mc_enc(0, 8, res_req->type[8]); dprc_unassign() 469 cmd.params[3] |= mc_enc(8, 8, res_req->type[9]); dprc_unassign() 470 cmd.params[3] |= mc_enc(16, 8, res_req->type[10]); dprc_unassign() 471 cmd.params[3] |= mc_enc(24, 8, res_req->type[11]); dprc_unassign() 472 cmd.params[3] |= mc_enc(32, 8, res_req->type[12]); dprc_unassign() 473 cmd.params[3] |= mc_enc(40, 8, res_req->type[13]); dprc_unassign() 474 cmd.params[3] |= mc_enc(48, 8, res_req->type[14]); dprc_unassign() 475 cmd.params[3] |= mc_enc(56, 8, res_req->type[15]); dprc_unassign() 478 return mc_send_command(mc_io, &cmd); dprc_unassign() 485 struct mc_command cmd = { 0 }; dprc_get_pool_count() local 489 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_POOL_COUNT, dprc_get_pool_count() 493 err = mc_send_command(mc_io, &cmd); dprc_get_pool_count() 498 *pool_count = mc_dec(cmd.params[0], 0, 32); dprc_get_pool_count() 508 struct mc_command cmd = { 0 }; dprc_get_pool() local 512 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_POOL, dprc_get_pool() 515 cmd.params[0] |= mc_enc(0, 32, pool_index); dprc_get_pool() 518 err = mc_send_command(mc_io, &cmd); dprc_get_pool() 523 type[0] = mc_dec(cmd.params[1], 0, 8); dprc_get_pool() 524 type[1] = mc_dec(cmd.params[1], 8, 8); dprc_get_pool() 525 type[2] = mc_dec(cmd.params[1], 16, 8); dprc_get_pool() 526 type[3] = mc_dec(cmd.params[1], 24, 8); dprc_get_pool() 527 type[4] = mc_dec(cmd.params[1], 32, 8); dprc_get_pool() 528 type[5] = mc_dec(cmd.params[1], 40, 8); dprc_get_pool() 529 type[6] = mc_dec(cmd.params[1], 48, 8); dprc_get_pool() 530 type[7] = mc_dec(cmd.params[1], 56, 8); dprc_get_pool() 531 type[8] = mc_dec(cmd.params[2], 0, 8); dprc_get_pool() 532 type[9] = mc_dec(cmd.params[2], 8, 8); dprc_get_pool() 533 type[10] = mc_dec(cmd.params[2], 16, 8); dprc_get_pool() 534 type[11] = mc_dec(cmd.params[2], 24, 8); dprc_get_pool() 535 type[12] = mc_dec(cmd.params[2], 32, 8); dprc_get_pool() 536 type[13] = mc_dec(cmd.params[2], 40, 8); dprc_get_pool() 537 type[14] = mc_dec(cmd.params[2], 48, 8); dprc_get_pool() 545 struct mc_command cmd = { 0 }; dprc_get_obj_count() local 549 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_OBJ_COUNT, dprc_get_obj_count() 553 err = mc_send_command(mc_io, &cmd); dprc_get_obj_count() 558 *obj_count = mc_dec(cmd.params[0], 32, 32); dprc_get_obj_count() 569 struct mc_command cmd = { 0 }; dprc_get_obj() local 573 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_OBJ, dprc_get_obj() 576 cmd.params[0] |= mc_enc(0, 32, obj_index); dprc_get_obj() 579 err = mc_send_command(mc_io, &cmd); dprc_get_obj() 584 obj_desc->id = mc_dec(cmd.params[0], 32, 32); dprc_get_obj() 585 obj_desc->vendor = mc_dec(cmd.params[1], 0, 16); dprc_get_obj() 586 obj_desc->irq_count = mc_dec(cmd.params[1], 16, 8); dprc_get_obj() 587 obj_desc->region_count = mc_dec(cmd.params[1], 24, 8); dprc_get_obj() 588 obj_desc->state = mc_dec(cmd.params[1], 32, 32); dprc_get_obj() 589 obj_desc->ver_major = mc_dec(cmd.params[2], 0, 16); dprc_get_obj() 590 obj_desc->ver_minor = mc_dec(cmd.params[2], 16, 16); dprc_get_obj() 591 obj_desc->type[0] = mc_dec(cmd.params[3], 0, 8); dprc_get_obj() 592 obj_desc->type[1] = mc_dec(cmd.params[3], 8, 8); dprc_get_obj() 593 obj_desc->type[2] = mc_dec(cmd.params[3], 16, 8); dprc_get_obj() 594 obj_desc->type[3] = mc_dec(cmd.params[3], 24, 8); dprc_get_obj() 595 obj_desc->type[4] = mc_dec(cmd.params[3], 32, 8); dprc_get_obj() 596 obj_desc->type[5] = mc_dec(cmd.params[3], 40, 8); dprc_get_obj() 597 obj_desc->type[6] = mc_dec(cmd.params[3], 48, 8); dprc_get_obj() 598 obj_desc->type[7] = mc_dec(cmd.params[3], 56, 8); dprc_get_obj() 599 obj_desc->type[8] = mc_dec(cmd.params[4], 0, 8); dprc_get_obj() 600 obj_desc->type[9] = mc_dec(cmd.params[4], 8, 8); dprc_get_obj() 601 obj_desc->type[10] = mc_dec(cmd.params[4], 16, 8); dprc_get_obj() 602 obj_desc->type[11] = mc_dec(cmd.params[4], 24, 8); dprc_get_obj() 603 obj_desc->type[12] = mc_dec(cmd.params[4], 32, 8); dprc_get_obj() 604 obj_desc->type[13] = mc_dec(cmd.params[4], 40, 8); dprc_get_obj() 605 obj_desc->type[14] = mc_dec(cmd.params[4], 48, 8); dprc_get_obj() 617 struct mc_command cmd = { 0 }; dprc_get_res_count() local 623 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_RES_COUNT, dprc_get_res_count() 625 cmd.params[1] |= mc_enc(0, 8, type[0]); dprc_get_res_count() 626 cmd.params[1] |= mc_enc(8, 8, type[1]); dprc_get_res_count() 627 cmd.params[1] |= mc_enc(16, 8, type[2]); dprc_get_res_count() 628 cmd.params[1] |= mc_enc(24, 8, type[3]); dprc_get_res_count() 629 cmd.params[1] |= mc_enc(32, 8, type[4]); dprc_get_res_count() 630 cmd.params[1] |= mc_enc(40, 8, type[5]); dprc_get_res_count() 631 cmd.params[1] |= mc_enc(48, 8, type[6]); dprc_get_res_count() 632 cmd.params[1] |= mc_enc(56, 8, type[7]); dprc_get_res_count() 633 cmd.params[2] |= mc_enc(0, 8, type[8]); dprc_get_res_count() 634 cmd.params[2] |= mc_enc(8, 8, type[9]); dprc_get_res_count() 635 cmd.params[2] |= mc_enc(16, 8, type[10]); dprc_get_res_count() 636 cmd.params[2] |= mc_enc(24, 8, type[11]); dprc_get_res_count() 637 cmd.params[2] |= mc_enc(32, 8, type[12]); dprc_get_res_count() 638 cmd.params[2] |= mc_enc(40, 8, type[13]); dprc_get_res_count() 639 cmd.params[2] |= mc_enc(48, 8, type[14]); dprc_get_res_count() 640 cmd.params[2] |= mc_enc(56, 8, '\0'); dprc_get_res_count() 643 err = mc_send_command(mc_io, &cmd); dprc_get_res_count() 648 *res_count = mc_dec(cmd.params[0], 0, 32); dprc_get_res_count() 659 struct mc_command cmd = { 0 }; dprc_get_res_ids() local 663 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_RES_IDS, dprc_get_res_ids() 665 cmd.params[0] |= mc_enc(42, 7, range_desc->iter_status); dprc_get_res_ids() 666 cmd.params[1] |= mc_enc(0, 32, range_desc->base_id); dprc_get_res_ids() 667 cmd.params[1] |= mc_enc(32, 32, range_desc->last_id); dprc_get_res_ids() 668 cmd.params[2] |= mc_enc(0, 8, type[0]); dprc_get_res_ids() 669 cmd.params[2] |= mc_enc(8, 8, type[1]); dprc_get_res_ids() 670 cmd.params[2] |= mc_enc(16, 8, type[2]); dprc_get_res_ids() 671 cmd.params[2] |= mc_enc(24, 8, type[3]); dprc_get_res_ids() 672 cmd.params[2] |= mc_enc(32, 8, type[4]); dprc_get_res_ids() 673 cmd.params[2] |= mc_enc(40, 8, type[5]); dprc_get_res_ids() 674 cmd.params[2] |= mc_enc(48, 8, type[6]); dprc_get_res_ids() 675 cmd.params[2] |= mc_enc(56, 8, type[7]); dprc_get_res_ids() 676 cmd.params[3] |= mc_enc(0, 8, type[8]); dprc_get_res_ids() 677 cmd.params[3] |= mc_enc(8, 8, type[9]); dprc_get_res_ids() 678 cmd.params[3] |= mc_enc(16, 8, type[10]); dprc_get_res_ids() 679 cmd.params[3] |= mc_enc(24, 8, type[11]); dprc_get_res_ids() 680 cmd.params[3] |= mc_enc(32, 8, type[12]); dprc_get_res_ids() 681 cmd.params[3] |= mc_enc(40, 8, type[13]); dprc_get_res_ids() 682 cmd.params[3] |= mc_enc(48, 8, type[14]); dprc_get_res_ids() 683 cmd.params[3] |= mc_enc(56, 8, '\0'); dprc_get_res_ids() 686 err = mc_send_command(mc_io, &cmd); dprc_get_res_ids() 691 range_desc->iter_status = mc_dec(cmd.params[0], 42, 7); dprc_get_res_ids() 692 range_desc->base_id = mc_dec(cmd.params[1], 0, 32); dprc_get_res_ids() 693 range_desc->last_id = mc_dec(cmd.params[1], 32, 32); dprc_get_res_ids() 704 struct mc_command cmd = { 0 }; dprc_get_portal_paddr() local 708 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_PORTAL_PADDR, dprc_get_portal_paddr() 710 cmd.params[0] |= mc_enc(0, 32, portal_id); dprc_get_portal_paddr() 713 err = mc_send_command(mc_io, &cmd); dprc_get_portal_paddr() 718 *portal_addr = mc_dec(cmd.params[1], 0, 64); dprc_get_portal_paddr() 731 struct mc_command cmd = { 0 }; dprc_get_obj_region() local 735 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_OBJ_REG, dprc_get_obj_region() 737 cmd.params[0] |= mc_enc(0, 32, obj_id); dprc_get_obj_region() 738 cmd.params[0] |= mc_enc(48, 8, region_index); dprc_get_obj_region() 739 cmd.params[3] |= mc_enc(0, 8, obj_type[0]); dprc_get_obj_region() 740 cmd.params[3] |= mc_enc(8, 8, obj_type[1]); dprc_get_obj_region() 741 cmd.params[3] |= mc_enc(16, 8, obj_type[2]); dprc_get_obj_region() 742 cmd.params[3] |= mc_enc(24, 8, obj_type[3]); dprc_get_obj_region() 743 cmd.params[3] |= mc_enc(32, 8, obj_type[4]); dprc_get_obj_region() 744 cmd.params[3] |= mc_enc(40, 8, obj_type[5]); dprc_get_obj_region() 745 cmd.params[3] |= mc_enc(48, 8, obj_type[6]); dprc_get_obj_region() 746 cmd.params[3] |= mc_enc(56, 8, obj_type[7]); dprc_get_obj_region() 747 cmd.params[4] |= mc_enc(0, 8, obj_type[8]); dprc_get_obj_region() 748 cmd.params[4] |= mc_enc(8, 8, obj_type[9]); dprc_get_obj_region() 749 cmd.params[4] |= mc_enc(16, 8, obj_type[10]); dprc_get_obj_region() 750 cmd.params[4] |= mc_enc(24, 8, obj_type[11]); dprc_get_obj_region() 751 cmd.params[4] |= mc_enc(32, 8, obj_type[12]); dprc_get_obj_region() 752 cmd.params[4] |= mc_enc(40, 8, obj_type[13]); dprc_get_obj_region() 753 cmd.params[4] |= mc_enc(48, 8, obj_type[14]); dprc_get_obj_region() 754 cmd.params[4] |= mc_enc(56, 8, '\0'); dprc_get_obj_region() 757 err = mc_send_command(mc_io, &cmd); dprc_get_obj_region() 762 region_desc->base_paddr = mc_dec(cmd.params[1], 0, 64); dprc_get_obj_region() 763 region_desc->size = mc_dec(cmd.params[2], 0, 32); dprc_get_obj_region() 774 struct mc_command cmd = { 0 }; dprc_connect() local 777 cmd.header = mc_encode_cmd_header(DPRC_CMDID_CONNECT, dprc_connect() 780 cmd.params[0] |= mc_enc(0, 32, endpoint1->id); dprc_connect() 781 cmd.params[0] |= mc_enc(32, 32, endpoint1->interface_id); dprc_connect() 782 cmd.params[1] |= mc_enc(0, 32, endpoint2->id); dprc_connect() 783 cmd.params[1] |= mc_enc(32, 32, endpoint2->interface_id); dprc_connect() 784 cmd.params[2] |= mc_enc(0, 8, endpoint1->type[0]); dprc_connect() 785 cmd.params[2] |= mc_enc(8, 8, endpoint1->type[1]); dprc_connect() 786 cmd.params[2] |= mc_enc(16, 8, endpoint1->type[2]); dprc_connect() 787 cmd.params[2] |= mc_enc(24, 8, endpoint1->type[3]); dprc_connect() 788 cmd.params[2] |= mc_enc(32, 8, endpoint1->type[4]); dprc_connect() 789 cmd.params[2] |= mc_enc(40, 8, endpoint1->type[5]); dprc_connect() 790 cmd.params[2] |= mc_enc(48, 8, endpoint1->type[6]); dprc_connect() 791 cmd.params[2] |= mc_enc(56, 8, endpoint1->type[7]); dprc_connect() 792 cmd.params[3] |= mc_enc(0, 8, endpoint1->type[8]); dprc_connect() 793 cmd.params[3] |= mc_enc(8, 8, endpoint1->type[9]); dprc_connect() 794 cmd.params[3] |= mc_enc(16, 8, endpoint1->type[10]); dprc_connect() 795 cmd.params[3] |= mc_enc(24, 8, endpoint1->type[11]); dprc_connect() 796 cmd.params[3] |= mc_enc(32, 8, endpoint1->type[12]); dprc_connect() 797 cmd.params[3] |= mc_enc(40, 8, endpoint1->type[13]); dprc_connect() 798 cmd.params[3] |= mc_enc(48, 8, endpoint1->type[14]); dprc_connect() 799 cmd.params[3] |= mc_enc(56, 8, endpoint1->type[15]); dprc_connect() 800 cmd.params[5] |= mc_enc(0, 8, endpoint2->type[0]); dprc_connect() 801 cmd.params[5] |= mc_enc(8, 8, endpoint2->type[1]); dprc_connect() 802 cmd.params[5] |= mc_enc(16, 8, endpoint2->type[2]); dprc_connect() 803 cmd.params[5] |= mc_enc(24, 8, endpoint2->type[3]); dprc_connect() 804 cmd.params[5] |= mc_enc(32, 8, endpoint2->type[4]); dprc_connect() 805 cmd.params[5] |= mc_enc(40, 8, endpoint2->type[5]); dprc_connect() 806 cmd.params[5] |= mc_enc(48, 8, endpoint2->type[6]); dprc_connect() 807 cmd.params[5] |= mc_enc(56, 8, endpoint2->type[7]); dprc_connect() 808 cmd.params[6] |= mc_enc(0, 8, endpoint2->type[8]); dprc_connect() 809 cmd.params[6] |= mc_enc(8, 8, endpoint2->type[9]); dprc_connect() 810 cmd.params[6] |= mc_enc(16, 8, endpoint2->type[10]); dprc_connect() 811 cmd.params[6] |= mc_enc(24, 8, endpoint2->type[11]); dprc_connect() 812 cmd.params[6] |= mc_enc(32, 8, endpoint2->type[12]); dprc_connect() 813 cmd.params[6] |= mc_enc(40, 8, endpoint2->type[13]); dprc_connect() 814 cmd.params[6] |= mc_enc(48, 8, endpoint2->type[14]); dprc_connect() 815 cmd.params[6] |= mc_enc(56, 8, endpoint2->type[15]); dprc_connect() 818 return mc_send_command(mc_io, &cmd); dprc_connect() 825 struct mc_command cmd = { 0 }; dprc_disconnect() local 828 cmd.header = mc_encode_cmd_header(DPRC_CMDID_DISCONNECT, dprc_disconnect() 831 cmd.params[0] |= mc_enc(0, 32, endpoint->id); dprc_disconnect() 832 cmd.params[0] |= mc_enc(32, 32, endpoint->interface_id); dprc_disconnect() 833 cmd.params[1] |= mc_enc(0, 8, endpoint->type[0]); dprc_disconnect() 834 cmd.params[1] |= mc_enc(8, 8, endpoint->type[1]); dprc_disconnect() 835 cmd.params[1] |= mc_enc(16, 8, endpoint->type[2]); dprc_disconnect() 836 cmd.params[1] |= mc_enc(24, 8, endpoint->type[3]); dprc_disconnect() 837 cmd.params[1] |= mc_enc(32, 8, endpoint->type[4]); dprc_disconnect() 838 cmd.params[1] |= mc_enc(40, 8, endpoint->type[5]); dprc_disconnect() 839 cmd.params[1] |= mc_enc(48, 8, endpoint->type[6]); dprc_disconnect() 840 cmd.params[1] |= mc_enc(56, 8, endpoint->type[7]); dprc_disconnect() 841 cmd.params[2] |= mc_enc(0, 8, endpoint->type[8]); dprc_disconnect() 842 cmd.params[2] |= mc_enc(8, 8, endpoint->type[9]); dprc_disconnect() 843 cmd.params[2] |= mc_enc(16, 8, endpoint->type[10]); dprc_disconnect() 844 cmd.params[2] |= mc_enc(24, 8, endpoint->type[11]); dprc_disconnect() 845 cmd.params[2] |= mc_enc(32, 8, endpoint->type[12]); dprc_disconnect() 846 cmd.params[2] |= mc_enc(40, 8, endpoint->type[13]); dprc_disconnect() 847 cmd.params[2] |= mc_enc(48, 8, endpoint->type[14]); dprc_disconnect() 848 cmd.params[2] |= mc_enc(56, 8, endpoint->type[15]); dprc_disconnect() 851 return mc_send_command(mc_io, &cmd); dprc_disconnect() 860 struct mc_command cmd = { 0 }; dprc_get_connection() local 864 cmd.header = mc_encode_cmd_header(DPRC_CMDID_GET_CONNECTION, dprc_get_connection() 867 cmd.params[0] |= mc_enc(0, 32, endpoint1->id); dprc_get_connection() 868 cmd.params[0] |= mc_enc(32, 32, endpoint1->interface_id); dprc_get_connection() 869 cmd.params[1] |= mc_enc(0, 8, endpoint1->type[0]); dprc_get_connection() 870 cmd.params[1] |= mc_enc(8, 8, endpoint1->type[1]); dprc_get_connection() 871 cmd.params[1] |= mc_enc(16, 8, endpoint1->type[2]); dprc_get_connection() 872 cmd.params[1] |= mc_enc(24, 8, endpoint1->type[3]); dprc_get_connection() 873 cmd.params[1] |= mc_enc(32, 8, endpoint1->type[4]); dprc_get_connection() 874 cmd.params[1] |= mc_enc(40, 8, endpoint1->type[5]); dprc_get_connection() 875 cmd.params[1] |= mc_enc(48, 8, endpoint1->type[6]); dprc_get_connection() 876 cmd.params[1] |= mc_enc(56, 8, endpoint1->type[7]); dprc_get_connection() 877 cmd.params[2] |= mc_enc(0, 8, endpoint1->type[8]); dprc_get_connection() 878 cmd.params[2] |= mc_enc(8, 8, endpoint1->type[9]); dprc_get_connection() 879 cmd.params[2] |= mc_enc(16, 8, endpoint1->type[10]); dprc_get_connection() 880 cmd.params[2] |= mc_enc(24, 8, endpoint1->type[11]); dprc_get_connection() 881 cmd.params[2] |= mc_enc(32, 8, endpoint1->type[12]); dprc_get_connection() 882 cmd.params[2] |= mc_enc(40, 8, endpoint1->type[13]); dprc_get_connection() 883 cmd.params[2] |= mc_enc(48, 8, endpoint1->type[14]); dprc_get_connection() 884 cmd.params[2] |= mc_enc(56, 8, endpoint1->type[15]); dprc_get_connection() 887 err = mc_send_command(mc_io, &cmd); dprc_get_connection() 892 endpoint2->id = mc_dec(cmd.params[3], 0, 32); dprc_get_connection() 893 endpoint2->interface_id = mc_dec(cmd.params[3], 32, 32); dprc_get_connection() 894 endpoint2->type[0] = mc_dec(cmd.params[4], 0, 8); dprc_get_connection() 895 endpoint2->type[1] = mc_dec(cmd.params[4], 8, 8); dprc_get_connection() 896 endpoint2->type[2] = mc_dec(cmd.params[4], 16, 8); dprc_get_connection() 897 endpoint2->type[3] = mc_dec(cmd.params[4], 24, 8); dprc_get_connection() 898 endpoint2->type[4] = mc_dec(cmd.params[4], 32, 8); dprc_get_connection() 899 endpoint2->type[5] = mc_dec(cmd.params[4], 40, 8); dprc_get_connection() 900 endpoint2->type[6] = mc_dec(cmd.params[4], 48, 8); dprc_get_connection() 901 endpoint2->type[7] = mc_dec(cmd.params[4], 56, 8); dprc_get_connection() 902 endpoint2->type[8] = mc_dec(cmd.params[5], 0, 8); dprc_get_connection() 903 endpoint2->type[9] = mc_dec(cmd.params[5], 8, 8); dprc_get_connection() 904 endpoint2->type[10] = mc_dec(cmd.params[5], 16, 8); dprc_get_connection() 905 endpoint2->type[11] = mc_dec(cmd.params[5], 24, 8); dprc_get_connection() 906 endpoint2->type[12] = mc_dec(cmd.params[5], 32, 8); dprc_get_connection() 907 endpoint2->type[13] = mc_dec(cmd.params[5], 40, 8); dprc_get_connection() 908 endpoint2->type[14] = mc_dec(cmd.params[5], 48, 8); dprc_get_connection() 909 endpoint2->type[15] = mc_dec(cmd.params[5], 56, 8); dprc_get_connection() 910 *state = mc_dec(cmd.params[6], 0, 32); dprc_get_connection()
|
H A D | dpmcp-cmd.h | 57 /* cmd, param, offset, width, type, arg_name */ 58 #define DPMCP_CMD_CREATE(cmd, cfg) \ 59 MC_CMD_OP(cmd, 0, 0, 32, int, cfg->portal_id) 61 /* cmd, param, offset, width, type, arg_name */ 62 #define DPMCP_CMD_SET_IRQ(cmd, irq_index, irq_addr, irq_val, user_irq_id) \ 64 MC_CMD_OP(cmd, 0, 0, 8, uint8_t, irq_index);\ 65 MC_CMD_OP(cmd, 0, 32, 32, uint32_t, irq_val);\ 66 MC_CMD_OP(cmd, 1, 0, 64, uint64_t, irq_addr); \ 67 MC_CMD_OP(cmd, 2, 0, 32, int, user_irq_id); \ 70 /* cmd, param, offset, width, type, arg_name */ 71 #define DPMCP_CMD_GET_IRQ(cmd, irq_index) \ 72 MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index) 74 /* cmd, param, offset, width, type, arg_name */ 75 #define DPMCP_RSP_GET_IRQ(cmd, type, irq_addr, irq_val, user_irq_id) \ 77 MC_RSP_OP(cmd, 0, 0, 32, uint32_t, irq_val); \ 78 MC_RSP_OP(cmd, 1, 0, 64, uint64_t, irq_addr); \ 79 MC_RSP_OP(cmd, 2, 0, 32, int, user_irq_id); \ 80 MC_RSP_OP(cmd, 2, 32, 32, int, type); \ 83 /* cmd, param, offset, width, type, arg_name */ 84 #define DPMCP_CMD_SET_IRQ_ENABLE(cmd, irq_index, en) \ 86 MC_CMD_OP(cmd, 0, 0, 8, uint8_t, en); \ 87 MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index);\ 90 /* cmd, param, offset, width, type, arg_name */ 91 #define DPMCP_CMD_GET_IRQ_ENABLE(cmd, irq_index) \ 92 MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index) 94 /* cmd, param, offset, width, type, arg_name */ 95 #define DPMCP_RSP_GET_IRQ_ENABLE(cmd, en) \ 96 MC_RSP_OP(cmd, 0, 0, 8, uint8_t, en) 98 /* cmd, param, offset, width, type, arg_name */ 99 #define DPMCP_CMD_SET_IRQ_MASK(cmd, irq_index, mask) \ 101 MC_CMD_OP(cmd, 0, 0, 32, uint32_t, mask);\ 102 MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index);\ 105 /* cmd, param, offset, width, type, arg_name */ 106 #define DPMCP_CMD_GET_IRQ_MASK(cmd, irq_index) \ 107 MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index) 109 /* cmd, param, offset, width, type, arg_name */ 110 #define DPMCP_RSP_GET_IRQ_MASK(cmd, mask) \ 111 MC_RSP_OP(cmd, 0, 0, 32, uint32_t, mask) 113 /* cmd, param, offset, width, type, arg_name */ 114 #define DPMCP_CMD_GET_IRQ_STATUS(cmd, irq_index) \ 115 MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index) 117 /* cmd, param, offset, width, type, arg_name */ 118 #define DPMCP_RSP_GET_IRQ_STATUS(cmd, status) \ 119 MC_RSP_OP(cmd, 0, 0, 32, uint32_t, status) 121 /* cmd, param, offset, width, type, arg_name */ 122 #define DPMCP_CMD_CLEAR_IRQ_STATUS(cmd, irq_index, status) \ 124 MC_CMD_OP(cmd, 0, 0, 32, uint32_t, status); \ 125 MC_CMD_OP(cmd, 0, 32, 8, uint8_t, irq_index);\ 128 /* cmd, param, offset, width, type, arg_name */ 129 #define DPMCP_RSP_GET_ATTRIBUTES(cmd, attr) \ 131 MC_RSP_OP(cmd, 0, 32, 32, int, attr->id);\ 132 MC_RSP_OP(cmd, 1, 0, 16, uint16_t, attr->version.major);\ 133 MC_RSP_OP(cmd, 1, 16, 16, uint16_t, attr->version.minor);\
|
H A D | dpbp.c | 33 #include "../include/mc-cmd.h" 35 #include "../include/dpbp-cmd.h" 39 struct mc_command cmd = { 0 }; dpbp_open() local 43 cmd.header = mc_encode_cmd_header(DPBP_CMDID_OPEN, dpbp_open() 45 cmd.params[0] |= mc_enc(0, 32, dpbp_id); dpbp_open() 48 err = mc_send_command(mc_io, &cmd); dpbp_open() 53 *token = MC_CMD_HDR_READ_TOKEN(cmd.header); dpbp_open() 61 struct mc_command cmd = { 0 }; dpbp_close() local 64 cmd.header = mc_encode_cmd_header(DPBP_CMDID_CLOSE, MC_CMD_PRI_HIGH, dpbp_close() 68 return mc_send_command(mc_io, &cmd); dpbp_close() 76 struct mc_command cmd = { 0 }; dpbp_create() local 82 cmd.header = mc_encode_cmd_header(DPBP_CMDID_CREATE, dpbp_create() 86 err = mc_send_command(mc_io, &cmd); dpbp_create() 91 *token = MC_CMD_HDR_READ_TOKEN(cmd.header); dpbp_create() 98 struct mc_command cmd = { 0 }; dpbp_destroy() local 101 cmd.header = mc_encode_cmd_header(DPBP_CMDID_DESTROY, dpbp_destroy() 105 return mc_send_command(mc_io, &cmd); dpbp_destroy() 110 struct mc_command cmd = { 0 }; dpbp_enable() local 113 cmd.header = mc_encode_cmd_header(DPBP_CMDID_ENABLE, MC_CMD_PRI_LOW, dpbp_enable() 117 return mc_send_command(mc_io, &cmd); dpbp_enable() 123 struct mc_command cmd = { 0 }; dpbp_disable() local 126 cmd.header = mc_encode_cmd_header(DPBP_CMDID_DISABLE, dpbp_disable() 130 return mc_send_command(mc_io, &cmd); dpbp_disable() 136 struct mc_command cmd = { 0 }; dpbp_is_enabled() local 139 cmd.header = mc_encode_cmd_header(DPBP_CMDID_IS_ENABLED, MC_CMD_PRI_LOW, dpbp_is_enabled() 143 err = mc_send_command(mc_io, &cmd); dpbp_is_enabled() 148 *en = (int)mc_dec(cmd.params[0], 0, 1); dpbp_is_enabled() 155 struct mc_command cmd = { 0 }; dpbp_reset() local 158 cmd.header = mc_encode_cmd_header(DPBP_CMDID_RESET, dpbp_reset() 162 return mc_send_command(mc_io, &cmd); dpbp_reset() 172 struct mc_command cmd = { 0 }; dpbp_set_irq() local 175 cmd.header = mc_encode_cmd_header(DPBP_CMDID_SET_IRQ, dpbp_set_irq() 177 cmd.params[0] |= mc_enc(0, 8, irq_index); dpbp_set_irq() 178 cmd.params[0] |= mc_enc(32, 32, irq_val); dpbp_set_irq() 179 cmd.params[1] |= mc_enc(0, 64, irq_paddr); dpbp_set_irq() 180 cmd.params[2] |= mc_enc(0, 32, user_irq_id); dpbp_set_irq() 183 return mc_send_command(mc_io, &cmd); dpbp_set_irq() 194 struct mc_command cmd = { 0 }; dpbp_get_irq() local 198 cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_IRQ, dpbp_get_irq() 200 cmd.params[0] |= mc_enc(32, 8, irq_index); dpbp_get_irq() 203 err = mc_send_command(mc_io, &cmd); dpbp_get_irq() 208 *irq_val = (uint32_t)mc_dec(cmd.params[0], 0, 32); dpbp_get_irq() 209 *irq_paddr = (uint64_t)mc_dec(cmd.params[1], 0, 64); dpbp_get_irq() 210 *user_irq_id = (int)mc_dec(cmd.params[2], 0, 32); dpbp_get_irq() 211 *type = (int)mc_dec(cmd.params[2], 32, 32); dpbp_get_irq() 220 struct mc_command cmd = { 0 }; dpbp_set_irq_enable() local 223 cmd.header = mc_encode_cmd_header(DPBP_CMDID_SET_IRQ_ENABLE, dpbp_set_irq_enable() 225 cmd.params[0] |= mc_enc(0, 8, en); dpbp_set_irq_enable() 226 cmd.params[0] |= mc_enc(32, 8, irq_index); dpbp_set_irq_enable() 229 return mc_send_command(mc_io, &cmd); dpbp_set_irq_enable() 237 struct mc_command cmd = { 0 }; dpbp_get_irq_enable() local 241 cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_IRQ_ENABLE, dpbp_get_irq_enable() 243 cmd.params[0] |= mc_enc(32, 8, irq_index); dpbp_get_irq_enable() 246 err = mc_send_command(mc_io, &cmd); dpbp_get_irq_enable() 251 *en = (uint8_t)mc_dec(cmd.params[0], 0, 8); dpbp_get_irq_enable() 260 struct mc_command cmd = { 0 }; dpbp_set_irq_mask() local 263 cmd.header = mc_encode_cmd_header(DPBP_CMDID_SET_IRQ_MASK, dpbp_set_irq_mask() 265 cmd.params[0] |= mc_enc(0, 32, mask); dpbp_set_irq_mask() 266 cmd.params[0] |= mc_enc(32, 8, irq_index); dpbp_set_irq_mask() 269 return mc_send_command(mc_io, &cmd); dpbp_set_irq_mask() 277 struct mc_command cmd = { 0 }; dpbp_get_irq_mask() local 281 cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_IRQ_MASK, dpbp_get_irq_mask() 283 cmd.params[0] |= mc_enc(32, 8, irq_index); dpbp_get_irq_mask() 286 err = mc_send_command(mc_io, &cmd); dpbp_get_irq_mask() 291 *mask = (uint32_t)mc_dec(cmd.params[0], 0, 32); dpbp_get_irq_mask() 300 struct mc_command cmd = { 0 }; dpbp_get_irq_status() local 304 cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_IRQ_STATUS, dpbp_get_irq_status() 306 cmd.params[0] |= mc_enc(32, 8, irq_index); dpbp_get_irq_status() 309 err = mc_send_command(mc_io, &cmd); dpbp_get_irq_status() 314 *status = (uint32_t)mc_dec(cmd.params[0], 0, 32); dpbp_get_irq_status() 323 struct mc_command cmd = { 0 }; dpbp_clear_irq_status() local 326 cmd.header = mc_encode_cmd_header(DPBP_CMDID_CLEAR_IRQ_STATUS, dpbp_clear_irq_status() 328 cmd.params[0] |= mc_enc(0, 32, status); dpbp_clear_irq_status() 329 cmd.params[0] |= mc_enc(32, 8, irq_index); dpbp_clear_irq_status() 332 return mc_send_command(mc_io, &cmd); dpbp_clear_irq_status() 339 struct mc_command cmd = { 0 }; dpbp_get_attributes() local 343 cmd.header = mc_encode_cmd_header(DPBP_CMDID_GET_ATTR, dpbp_get_attributes() 347 err = mc_send_command(mc_io, &cmd); dpbp_get_attributes() 352 attr->bpid = (uint16_t)mc_dec(cmd.params[0], 16, 16); dpbp_get_attributes() 353 attr->id = (int)mc_dec(cmd.params[0], 32, 32); dpbp_get_attributes() 354 attr->version.major = (uint16_t)mc_dec(cmd.params[1], 0, 16); dpbp_get_attributes() 355 attr->version.minor = (uint16_t)mc_dec(cmd.params[1], 16, 16); dpbp_get_attributes()
|
H A D | dpmcp.c | 33 #include "../include/mc-cmd.h" 35 #include "dpmcp-cmd.h" 39 struct mc_command cmd = { 0 }; dpmcp_open() local 43 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_OPEN, dpmcp_open() 45 cmd.params[0] |= mc_enc(0, 32, dpmcp_id); dpmcp_open() 48 err = mc_send_command(mc_io, &cmd); dpmcp_open() 53 *token = MC_CMD_HDR_READ_TOKEN(cmd.header); dpmcp_open() 60 struct mc_command cmd = { 0 }; dpmcp_close() local 63 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_CLOSE, MC_CMD_PRI_HIGH, dpmcp_close() 67 return mc_send_command(mc_io, &cmd); dpmcp_close() 74 struct mc_command cmd = { 0 }; dpmcp_create() local 78 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_CREATE, dpmcp_create() 80 cmd.params[0] |= mc_enc(0, 32, cfg->portal_id); dpmcp_create() 83 err = mc_send_command(mc_io, &cmd); dpmcp_create() 88 *token = MC_CMD_HDR_READ_TOKEN(cmd.header); dpmcp_create() 95 struct mc_command cmd = { 0 }; dpmcp_destroy() local 98 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_DESTROY, dpmcp_destroy() 102 return mc_send_command(mc_io, &cmd); dpmcp_destroy() 107 struct mc_command cmd = { 0 }; dpmcp_reset() local 110 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_RESET, dpmcp_reset() 114 return mc_send_command(mc_io, &cmd); dpmcp_reset() 124 struct mc_command cmd = { 0 }; dpmcp_set_irq() local 127 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_SET_IRQ, dpmcp_set_irq() 129 cmd.params[0] |= mc_enc(0, 8, irq_index); dpmcp_set_irq() 130 cmd.params[0] |= mc_enc(32, 32, irq_val); dpmcp_set_irq() 131 cmd.params[1] |= mc_enc(0, 64, irq_addr); dpmcp_set_irq() 132 cmd.params[2] |= mc_enc(0, 32, user_irq_id); dpmcp_set_irq() 135 return mc_send_command(mc_io, &cmd); dpmcp_set_irq() 146 struct mc_command cmd = { 0 }; dpmcp_get_irq() local 150 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_IRQ, dpmcp_get_irq() 152 cmd.params[0] |= mc_enc(32, 8, irq_index); dpmcp_get_irq() 155 err = mc_send_command(mc_io, &cmd); dpmcp_get_irq() 160 *irq_val = (uint32_t)mc_dec(cmd.params[0], 0, 32); dpmcp_get_irq() 161 *irq_addr = (uint64_t)mc_dec(cmd.params[1], 0, 64); dpmcp_get_irq() 162 *user_irq_id = (int)mc_dec(cmd.params[2], 0, 32); dpmcp_get_irq() 163 *type = (int)mc_dec(cmd.params[2], 32, 32); dpmcp_get_irq() 172 struct mc_command cmd = { 0 }; dpmcp_set_irq_enable() local 175 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_SET_IRQ_ENABLE, dpmcp_set_irq_enable() 177 cmd.params[0] |= mc_enc(0, 8, en); dpmcp_set_irq_enable() 178 cmd.params[0] |= mc_enc(32, 8, irq_index); dpmcp_set_irq_enable() 181 return mc_send_command(mc_io, &cmd); dpmcp_set_irq_enable() 189 struct mc_command cmd = { 0 }; dpmcp_get_irq_enable() local 193 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_IRQ_ENABLE, dpmcp_get_irq_enable() 195 cmd.params[0] |= mc_enc(32, 8, irq_index); dpmcp_get_irq_enable() 198 err = mc_send_command(mc_io, &cmd); dpmcp_get_irq_enable() 203 *en = (uint8_t)mc_dec(cmd.params[0], 0, 8); dpmcp_get_irq_enable() 212 struct mc_command cmd = { 0 }; dpmcp_set_irq_mask() local 215 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_SET_IRQ_MASK, dpmcp_set_irq_mask() 217 cmd.params[0] |= mc_enc(0, 32, mask); dpmcp_set_irq_mask() 218 cmd.params[0] |= mc_enc(32, 8, irq_index); dpmcp_set_irq_mask() 221 return mc_send_command(mc_io, &cmd); dpmcp_set_irq_mask() 229 struct mc_command cmd = { 0 }; dpmcp_get_irq_mask() local 233 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_IRQ_MASK, dpmcp_get_irq_mask() 235 cmd.params[0] |= mc_enc(32, 8, irq_index); dpmcp_get_irq_mask() 238 err = mc_send_command(mc_io, &cmd); dpmcp_get_irq_mask() 243 *mask = (uint32_t)mc_dec(cmd.params[0], 0, 32); dpmcp_get_irq_mask() 252 struct mc_command cmd = { 0 }; dpmcp_get_irq_status() local 256 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_IRQ_STATUS, dpmcp_get_irq_status() 258 cmd.params[0] |= mc_enc(32, 8, irq_index); dpmcp_get_irq_status() 261 err = mc_send_command(mc_io, &cmd); dpmcp_get_irq_status() 266 *status = (uint32_t)mc_dec(cmd.params[0], 0, 32); dpmcp_get_irq_status() 275 struct mc_command cmd = { 0 }; dpmcp_clear_irq_status() local 278 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_CLEAR_IRQ_STATUS, dpmcp_clear_irq_status() 280 cmd.params[0] |= mc_enc(0, 32, status); dpmcp_clear_irq_status() 281 cmd.params[0] |= mc_enc(32, 8, irq_index); dpmcp_clear_irq_status() 284 return mc_send_command(mc_io, &cmd); dpmcp_clear_irq_status() 291 struct mc_command cmd = { 0 }; dpmcp_get_attributes() local 295 cmd.header = mc_encode_cmd_header(DPMCP_CMDID_GET_ATTR, dpmcp_get_attributes() 299 err = mc_send_command(mc_io, &cmd); dpmcp_get_attributes() 304 attr->id = (int)mc_dec(cmd.params[0], 32, 32); dpmcp_get_attributes() 305 attr->version.major = (uint16_t)mc_dec(cmd.params[1], 0, 16); dpmcp_get_attributes() 306 attr->version.minor = (uint16_t)mc_dec(cmd.params[1], 16, 16); dpmcp_get_attributes()
|
H A D | dpmng.c | 33 #include "../include/mc-cmd.h" 35 #include "dpmng-cmd.h" 39 struct mc_command cmd = { 0 }; mc_get_version() local 43 cmd.header = mc_encode_cmd_header(DPMNG_CMDID_GET_VERSION, mc_get_version() 47 err = mc_send_command(mc_io, &cmd); mc_get_version() 52 mc_ver_info->revision = mc_dec(cmd.params[0], 0, 32); mc_get_version() 53 mc_ver_info->major = mc_dec(cmd.params[0], 32, 32); mc_get_version() 54 mc_ver_info->minor = mc_dec(cmd.params[1], 0, 32); mc_get_version() 61 struct mc_command cmd = { 0 }; dpmng_get_container_id() local 65 cmd.header = mc_encode_cmd_header(DPMNG_CMDID_GET_CONT_ID, dpmng_get_container_id() 69 err = mc_send_command(mc_io, &cmd); dpmng_get_container_id() 74 *container_id = mc_dec(cmd.params[0], 0, 32); dpmng_get_container_id()
|
/linux-4.1.27/drivers/md/ |
H A D | dm-cache-metadata.c | 205 static int superblock_read_lock(struct dm_cache_metadata *cmd, superblock_read_lock() argument 208 return dm_bm_read_lock(cmd->bm, CACHE_SUPERBLOCK_LOCATION, superblock_read_lock() 212 static int superblock_lock_zero(struct dm_cache_metadata *cmd, superblock_lock_zero() argument 215 return dm_bm_write_lock_zero(cmd->bm, CACHE_SUPERBLOCK_LOCATION, superblock_lock_zero() 219 static int superblock_lock(struct dm_cache_metadata *cmd, superblock_lock() argument 222 return dm_bm_write_lock(cmd->bm, CACHE_SUPERBLOCK_LOCATION, superblock_lock() 255 static void __setup_mapping_info(struct dm_cache_metadata *cmd) __setup_mapping_info() argument 264 dm_array_info_init(&cmd->info, cmd->tm, &vt); __setup_mapping_info() 266 if (cmd->policy_hint_size) { __setup_mapping_info() 268 dm_array_info_init(&cmd->hint_info, cmd->tm, &vt); __setup_mapping_info() 272 static int __save_sm_root(struct dm_cache_metadata *cmd) __save_sm_root() argument 277 r = dm_sm_root_size(cmd->metadata_sm, &metadata_len); __save_sm_root() 281 return dm_sm_copy_root(cmd->metadata_sm, &cmd->metadata_space_map_root, __save_sm_root() 285 static void __copy_sm_root(struct dm_cache_metadata *cmd, __copy_sm_root() argument 289 &cmd->metadata_space_map_root, __copy_sm_root() 290 sizeof(cmd->metadata_space_map_root)); __copy_sm_root() 293 static int __write_initial_superblock(struct dm_cache_metadata *cmd) __write_initial_superblock() argument 298 sector_t bdev_size = i_size_read(cmd->bdev->bd_inode) >> SECTOR_SHIFT; __write_initial_superblock() 304 r = dm_tm_pre_commit(cmd->tm); __write_initial_superblock() 312 r = __save_sm_root(cmd); __write_initial_superblock() 316 r = superblock_lock_zero(cmd, &sblock); __write_initial_superblock() 329 __copy_sm_root(cmd, disk_super); __write_initial_superblock() 331 disk_super->mapping_root = cpu_to_le64(cmd->root); __write_initial_superblock() 332 disk_super->hint_root = cpu_to_le64(cmd->hint_root); __write_initial_superblock() 333 disk_super->discard_root = cpu_to_le64(cmd->discard_root); __write_initial_superblock() 334 disk_super->discard_block_size = cpu_to_le64(cmd->discard_block_size); __write_initial_superblock() 335 disk_super->discard_nr_blocks = cpu_to_le64(from_dblock(cmd->discard_nr_blocks)); __write_initial_superblock() 337 disk_super->data_block_size = cpu_to_le32(cmd->data_block_size); __write_initial_superblock() 345 return dm_tm_commit(cmd->tm, sblock); __write_initial_superblock() 348 static int __format_metadata(struct dm_cache_metadata *cmd) __format_metadata() argument 352 r = dm_tm_create_with_sm(cmd->bm, CACHE_SUPERBLOCK_LOCATION, __format_metadata() 353 &cmd->tm, &cmd->metadata_sm); __format_metadata() 359 __setup_mapping_info(cmd); __format_metadata() 361 r = dm_array_empty(&cmd->info, &cmd->root); __format_metadata() 365 dm_disk_bitset_init(cmd->tm, &cmd->discard_info); __format_metadata() 367 r = dm_bitset_empty(&cmd->discard_info, &cmd->discard_root); __format_metadata() 371 cmd->discard_block_size = 0; __format_metadata() 372 cmd->discard_nr_blocks = 0; __format_metadata() 374 r = __write_initial_superblock(cmd); __format_metadata() 378 cmd->clean_when_opened = true; __format_metadata() 382 dm_tm_destroy(cmd->tm); __format_metadata() 383 dm_sm_destroy(cmd->metadata_sm); __format_metadata() 389 struct dm_cache_metadata *cmd) __check_incompat_features() 403 if (get_disk_ro(cmd->bdev->bd_disk)) __check_incompat_features() 416 static int __open_metadata(struct dm_cache_metadata *cmd) __open_metadata() argument 423 r = superblock_read_lock(cmd, &sblock); __open_metadata() 432 if (le32_to_cpu(disk_super->data_block_size) != cmd->data_block_size) { __open_metadata() 435 (unsigned long long)cmd->data_block_size); __open_metadata() 440 r = __check_incompat_features(disk_super, cmd); __open_metadata() 444 r = dm_tm_open_with_sm(cmd->bm, CACHE_SUPERBLOCK_LOCATION, __open_metadata() 447 &cmd->tm, &cmd->metadata_sm); __open_metadata() 453 __setup_mapping_info(cmd); __open_metadata() 454 dm_disk_bitset_init(cmd->tm, &cmd->discard_info); __open_metadata() 456 cmd->clean_when_opened = test_bit(CLEAN_SHUTDOWN, &sb_flags); __open_metadata() 464 static int __open_or_format_metadata(struct dm_cache_metadata *cmd, __open_or_format_metadata() argument 470 r = __superblock_all_zeroes(cmd->bm, &unformatted); __open_or_format_metadata() 475 return format_device ? __format_metadata(cmd) : -EPERM; __open_or_format_metadata() 477 return __open_metadata(cmd); __open_or_format_metadata() 480 static int __create_persistent_data_objects(struct dm_cache_metadata *cmd, __create_persistent_data_objects() argument 484 cmd->bm = dm_block_manager_create(cmd->bdev, DM_CACHE_METADATA_BLOCK_SIZE << SECTOR_SHIFT, __create_persistent_data_objects() 487 if (IS_ERR(cmd->bm)) { __create_persistent_data_objects() 489 return PTR_ERR(cmd->bm); __create_persistent_data_objects() 492 r = __open_or_format_metadata(cmd, may_format_device); __create_persistent_data_objects() 494 dm_block_manager_destroy(cmd->bm); __create_persistent_data_objects() 499 static void __destroy_persistent_data_objects(struct dm_cache_metadata *cmd) __destroy_persistent_data_objects() argument 501 dm_sm_destroy(cmd->metadata_sm); __destroy_persistent_data_objects() 502 dm_tm_destroy(cmd->tm); __destroy_persistent_data_objects() 503 dm_block_manager_destroy(cmd->bm); __destroy_persistent_data_objects() 527 static void read_superblock_fields(struct dm_cache_metadata *cmd, read_superblock_fields() argument 530 cmd->root = le64_to_cpu(disk_super->mapping_root); read_superblock_fields() 531 cmd->hint_root = le64_to_cpu(disk_super->hint_root); read_superblock_fields() 532 cmd->discard_root = le64_to_cpu(disk_super->discard_root); read_superblock_fields() 533 cmd->discard_block_size = le64_to_cpu(disk_super->discard_block_size); read_superblock_fields() 534 cmd->discard_nr_blocks = to_dblock(le64_to_cpu(disk_super->discard_nr_blocks)); read_superblock_fields() 535 cmd->data_block_size = le32_to_cpu(disk_super->data_block_size); read_superblock_fields() 536 cmd->cache_blocks = to_cblock(le32_to_cpu(disk_super->cache_blocks)); read_superblock_fields() 537 strncpy(cmd->policy_name, disk_super->policy_name, sizeof(cmd->policy_name)); read_superblock_fields() 538 cmd->policy_version[0] = le32_to_cpu(disk_super->policy_version[0]); read_superblock_fields() 539 cmd->policy_version[1] = le32_to_cpu(disk_super->policy_version[1]); read_superblock_fields() 540 cmd->policy_version[2] = le32_to_cpu(disk_super->policy_version[2]); read_superblock_fields() 541 cmd->policy_hint_size = le32_to_cpu(disk_super->policy_hint_size); read_superblock_fields() 543 cmd->stats.read_hits = le32_to_cpu(disk_super->read_hits); read_superblock_fields() 544 cmd->stats.read_misses = le32_to_cpu(disk_super->read_misses); read_superblock_fields() 545 cmd->stats.write_hits = le32_to_cpu(disk_super->write_hits); read_superblock_fields() 546 cmd->stats.write_misses = le32_to_cpu(disk_super->write_misses); read_superblock_fields() 548 cmd->changed = false; read_superblock_fields() 554 static int __begin_transaction_flags(struct dm_cache_metadata *cmd, __begin_transaction_flags() argument 561 r = superblock_lock(cmd, &sblock); __begin_transaction_flags() 567 read_superblock_fields(cmd, disk_super); __begin_transaction_flags() 570 return dm_bm_flush(cmd->bm); __begin_transaction_flags() 573 static int __begin_transaction(struct dm_cache_metadata *cmd) __begin_transaction() argument 583 r = superblock_read_lock(cmd, &sblock); __begin_transaction() 588 read_superblock_fields(cmd, disk_super); __begin_transaction() 594 static int __commit_transaction(struct dm_cache_metadata *cmd, __commit_transaction() argument 606 r = dm_bitset_flush(&cmd->discard_info, cmd->discard_root, __commit_transaction() 607 &cmd->discard_root); __commit_transaction() 611 r = dm_tm_pre_commit(cmd->tm); __commit_transaction() 615 r = __save_sm_root(cmd); __commit_transaction() 619 r = superblock_lock(cmd, &sblock); __commit_transaction() 628 disk_super->mapping_root = cpu_to_le64(cmd->root); __commit_transaction() 629 disk_super->hint_root = cpu_to_le64(cmd->hint_root); __commit_transaction() 630 disk_super->discard_root = cpu_to_le64(cmd->discard_root); __commit_transaction() 631 disk_super->discard_block_size = cpu_to_le64(cmd->discard_block_size); __commit_transaction() 632 disk_super->discard_nr_blocks = cpu_to_le64(from_dblock(cmd->discard_nr_blocks)); __commit_transaction() 633 disk_super->cache_blocks = cpu_to_le32(from_cblock(cmd->cache_blocks)); __commit_transaction() 634 strncpy(disk_super->policy_name, cmd->policy_name, sizeof(disk_super->policy_name)); __commit_transaction() 635 disk_super->policy_version[0] = cpu_to_le32(cmd->policy_version[0]); __commit_transaction() 636 disk_super->policy_version[1] = cpu_to_le32(cmd->policy_version[1]); __commit_transaction() 637 disk_super->policy_version[2] = cpu_to_le32(cmd->policy_version[2]); __commit_transaction() 639 disk_super->read_hits = cpu_to_le32(cmd->stats.read_hits); __commit_transaction() 640 disk_super->read_misses = cpu_to_le32(cmd->stats.read_misses); __commit_transaction() 641 disk_super->write_hits = cpu_to_le32(cmd->stats.write_hits); __commit_transaction() 642 disk_super->write_misses = cpu_to_le32(cmd->stats.write_misses); __commit_transaction() 643 __copy_sm_root(cmd, disk_super); __commit_transaction() 645 return dm_tm_commit(cmd->tm, sblock); __commit_transaction() 681 struct dm_cache_metadata *cmd; metadata_open() local 683 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); metadata_open() 684 if (!cmd) { metadata_open() 689 atomic_set(&cmd->ref_count, 1); metadata_open() 690 init_rwsem(&cmd->root_lock); metadata_open() 691 cmd->bdev = bdev; metadata_open() 692 cmd->data_block_size = data_block_size; metadata_open() 693 cmd->cache_blocks = 0; metadata_open() 694 cmd->policy_hint_size = policy_hint_size; metadata_open() 695 cmd->changed = true; metadata_open() 697 r = __create_persistent_data_objects(cmd, may_format_device); metadata_open() 699 kfree(cmd); metadata_open() 703 r = __begin_transaction_flags(cmd, clear_clean_shutdown); metadata_open() 705 dm_cache_metadata_close(cmd); metadata_open() 709 return cmd; metadata_open() 722 struct dm_cache_metadata *cmd; lookup() local 724 list_for_each_entry(cmd, &table, list) lookup() 725 if (cmd->bdev == bdev) { lookup() 726 atomic_inc(&cmd->ref_count); lookup() 727 return cmd; lookup() 738 struct dm_cache_metadata *cmd, *cmd2; lookup_or_open() local 741 cmd = lookup(bdev); lookup_or_open() 744 if (cmd) lookup_or_open() 745 return cmd; lookup_or_open() 747 cmd = metadata_open(bdev, data_block_size, may_format_device, policy_hint_size); lookup_or_open() 748 if (!IS_ERR(cmd)) { lookup_or_open() 753 __destroy_persistent_data_objects(cmd); lookup_or_open() 754 kfree(cmd); lookup_or_open() 757 list_add(&cmd->list, &table); lookup_or_open() 761 return cmd; lookup_or_open() 764 static bool same_params(struct dm_cache_metadata *cmd, sector_t data_block_size) same_params() argument 766 if (cmd->data_block_size != data_block_size) { same_params() 769 (unsigned long long) cmd->data_block_size); same_params() 781 struct dm_cache_metadata *cmd = lookup_or_open(bdev, data_block_size, dm_cache_metadata_open() local 784 if (!IS_ERR(cmd) && !same_params(cmd, data_block_size)) { dm_cache_metadata_open() 785 dm_cache_metadata_close(cmd); dm_cache_metadata_open() 789 return cmd; dm_cache_metadata_open() 792 void dm_cache_metadata_close(struct dm_cache_metadata *cmd) dm_cache_metadata_close() argument 794 if (atomic_dec_and_test(&cmd->ref_count)) { dm_cache_metadata_close() 796 list_del(&cmd->list); dm_cache_metadata_close() 799 __destroy_persistent_data_objects(cmd); dm_cache_metadata_close() 800 kfree(cmd); dm_cache_metadata_close() 807 static int block_unmapped_or_clean(struct dm_cache_metadata *cmd, dm_cblock_t b, block_unmapped_or_clean() argument 815 r = dm_array_get_value(&cmd->info, cmd->root, from_cblock(b), &value); block_unmapped_or_clean() 827 static int blocks_are_unmapped_or_clean(struct dm_cache_metadata *cmd, blocks_are_unmapped_or_clean() argument 835 r = block_unmapped_or_clean(cmd, begin, result); blocks_are_unmapped_or_clean() 851 int dm_cache_resize(struct dm_cache_metadata *cmd, dm_cblock_t new_cache_size) dm_cache_resize() argument 857 down_write(&cmd->root_lock); dm_cache_resize() 860 if (from_cblock(new_cache_size) < from_cblock(cmd->cache_blocks)) { dm_cache_resize() 861 r = blocks_are_unmapped_or_clean(cmd, new_cache_size, cmd->cache_blocks, &clean); dm_cache_resize() 875 r = dm_array_resize(&cmd->info, cmd->root, from_cblock(cmd->cache_blocks), dm_cache_resize() 877 &null_mapping, &cmd->root); dm_cache_resize() 879 cmd->cache_blocks = new_cache_size; dm_cache_resize() 880 cmd->changed = true; dm_cache_resize() 883 up_write(&cmd->root_lock); dm_cache_resize() 888 int dm_cache_discard_bitset_resize(struct dm_cache_metadata *cmd, dm_cache_discard_bitset_resize() argument 894 down_write(&cmd->root_lock); dm_cache_discard_bitset_resize() 895 r = dm_bitset_resize(&cmd->discard_info, dm_cache_discard_bitset_resize() 896 cmd->discard_root, dm_cache_discard_bitset_resize() 897 from_dblock(cmd->discard_nr_blocks), dm_cache_discard_bitset_resize() 899 false, &cmd->discard_root); dm_cache_discard_bitset_resize() 901 cmd->discard_block_size = discard_block_size; dm_cache_discard_bitset_resize() 902 cmd->discard_nr_blocks = new_nr_entries; dm_cache_discard_bitset_resize() 905 cmd->changed = true; dm_cache_discard_bitset_resize() 906 up_write(&cmd->root_lock); dm_cache_discard_bitset_resize() 911 static int __set_discard(struct dm_cache_metadata *cmd, dm_dblock_t b) __set_discard() argument 913 return dm_bitset_set_bit(&cmd->discard_info, cmd->discard_root, __set_discard() 914 from_dblock(b), &cmd->discard_root); __set_discard() 917 static int __clear_discard(struct dm_cache_metadata *cmd, dm_dblock_t b) __clear_discard() argument 919 return dm_bitset_clear_bit(&cmd->discard_info, cmd->discard_root, __clear_discard() 920 from_dblock(b), &cmd->discard_root); __clear_discard() 923 static int __is_discarded(struct dm_cache_metadata *cmd, dm_dblock_t b, __is_discarded() argument 926 return dm_bitset_test_bit(&cmd->discard_info, cmd->discard_root, __is_discarded() 927 from_dblock(b), &cmd->discard_root, __is_discarded() 931 static int __discard(struct dm_cache_metadata *cmd, __discard() argument 936 r = (discard ? __set_discard : __clear_discard)(cmd, dblock); __discard() 940 cmd->changed = true; __discard() 944 int dm_cache_set_discard(struct dm_cache_metadata *cmd, dm_cache_set_discard() argument 949 down_write(&cmd->root_lock); dm_cache_set_discard() 950 r = __discard(cmd, dblock, discard); dm_cache_set_discard() 951 up_write(&cmd->root_lock); dm_cache_set_discard() 956 static int __load_discards(struct dm_cache_metadata *cmd, __load_discards() argument 963 for (b = 0; b < from_dblock(cmd->discard_nr_blocks); b++) { __load_discards() 966 if (cmd->clean_when_opened) { __load_discards() 967 r = __is_discarded(cmd, dblock, &discard); __load_discards() 973 r = fn(context, cmd->discard_block_size, dblock, discard); __load_discards() 981 int dm_cache_load_discards(struct dm_cache_metadata *cmd, dm_cache_load_discards() argument 986 down_read(&cmd->root_lock); dm_cache_load_discards() 987 r = __load_discards(cmd, fn, context); dm_cache_load_discards() 988 up_read(&cmd->root_lock); dm_cache_load_discards() 993 dm_cblock_t dm_cache_size(struct dm_cache_metadata *cmd) dm_cache_size() argument 997 down_read(&cmd->root_lock); dm_cache_size() 998 r = cmd->cache_blocks; dm_cache_size() 999 up_read(&cmd->root_lock); dm_cache_size() 1004 static int __remove(struct dm_cache_metadata *cmd, dm_cblock_t cblock) __remove() argument 1010 r = dm_array_set_value(&cmd->info, cmd->root, from_cblock(cblock), __remove() 1011 &value, &cmd->root); __remove() 1015 cmd->changed = true; __remove() 1019 int dm_cache_remove_mapping(struct dm_cache_metadata *cmd, dm_cblock_t cblock) dm_cache_remove_mapping() argument 1023 down_write(&cmd->root_lock); dm_cache_remove_mapping() 1024 r = __remove(cmd, cblock); dm_cache_remove_mapping() 1025 up_write(&cmd->root_lock); dm_cache_remove_mapping() 1030 static int __insert(struct dm_cache_metadata *cmd, __insert() argument 1037 r = dm_array_set_value(&cmd->info, cmd->root, from_cblock(cblock), __insert() 1038 &value, &cmd->root); __insert() 1042 cmd->changed = true; __insert() 1046 int dm_cache_insert_mapping(struct dm_cache_metadata *cmd, dm_cache_insert_mapping() argument 1051 down_write(&cmd->root_lock); dm_cache_insert_mapping() 1052 r = __insert(cmd, cblock, oblock); dm_cache_insert_mapping() 1053 up_write(&cmd->root_lock); dm_cache_insert_mapping() 1062 struct dm_cache_metadata *cmd; member in struct:thunk 1067 static bool policy_unchanged(struct dm_cache_metadata *cmd, policy_unchanged() argument 1077 if (strncmp(cmd->policy_name, policy_name, sizeof(cmd->policy_name))) policy_unchanged() 1083 if (cmd->policy_version[0] != policy_version[0]) policy_unchanged() 1089 if (cmd->policy_hint_size != policy_hint_size) policy_unchanged() 1095 static bool hints_array_initialized(struct dm_cache_metadata *cmd) hints_array_initialized() argument 1097 return cmd->hint_root && cmd->policy_hint_size; hints_array_initialized() 1100 static bool hints_array_available(struct dm_cache_metadata *cmd, hints_array_available() argument 1103 return cmd->clean_when_opened && policy_unchanged(cmd, policy) && hints_array_available() 1104 hints_array_initialized(cmd); hints_array_available() 1116 struct dm_cache_metadata *cmd = thunk->cmd; __load_mapping() local 1123 r = dm_array_get_value(&cmd->hint_info, cmd->hint_root, __load_mapping() 1137 static int __load_mappings(struct dm_cache_metadata *cmd, __load_mappings() argument 1146 thunk.cmd = cmd; __load_mappings() 1147 thunk.respect_dirty_flags = cmd->clean_when_opened; __load_mappings() 1148 thunk.hints_valid = hints_array_available(cmd, policy); __load_mappings() 1150 return dm_array_walk(&cmd->info, cmd->root, __load_mapping, &thunk); __load_mappings() 1153 int dm_cache_load_mappings(struct dm_cache_metadata *cmd, dm_cache_load_mappings() argument 1159 down_read(&cmd->root_lock); dm_cache_load_mappings() 1160 r = __load_mappings(cmd, policy, fn, context); dm_cache_load_mappings() 1161 up_read(&cmd->root_lock); dm_cache_load_mappings() 1179 static int __dump_mappings(struct dm_cache_metadata *cmd) __dump_mappings() argument 1181 return dm_array_walk(&cmd->info, cmd->root, __dump_mapping, NULL); __dump_mappings() 1184 void dm_cache_dump(struct dm_cache_metadata *cmd) dm_cache_dump() argument 1186 down_read(&cmd->root_lock); dm_cache_dump() 1187 __dump_mappings(cmd); dm_cache_dump() 1188 up_read(&cmd->root_lock); dm_cache_dump() 1191 int dm_cache_changed_this_transaction(struct dm_cache_metadata *cmd) dm_cache_changed_this_transaction() argument 1195 down_read(&cmd->root_lock); dm_cache_changed_this_transaction() 1196 r = cmd->changed; dm_cache_changed_this_transaction() 1197 up_read(&cmd->root_lock); dm_cache_changed_this_transaction() 1202 static int __dirty(struct dm_cache_metadata *cmd, dm_cblock_t cblock, bool dirty) __dirty() argument 1209 r = dm_array_get_value(&cmd->info, cmd->root, from_cblock(cblock), &value); __dirty() 1222 r = dm_array_set_value(&cmd->info, cmd->root, from_cblock(cblock), __dirty() 1223 &value, &cmd->root); __dirty() 1227 cmd->changed = true; __dirty() 1232 int dm_cache_set_dirty(struct dm_cache_metadata *cmd, dm_cache_set_dirty() argument 1237 down_write(&cmd->root_lock); dm_cache_set_dirty() 1238 r = __dirty(cmd, cblock, dirty); dm_cache_set_dirty() 1239 up_write(&cmd->root_lock); dm_cache_set_dirty() 1244 void dm_cache_metadata_get_stats(struct dm_cache_metadata *cmd, dm_cache_metadata_get_stats() argument 1247 down_read(&cmd->root_lock); dm_cache_metadata_get_stats() 1248 *stats = cmd->stats; dm_cache_metadata_get_stats() 1249 up_read(&cmd->root_lock); dm_cache_metadata_get_stats() 1252 void dm_cache_metadata_set_stats(struct dm_cache_metadata *cmd, dm_cache_metadata_set_stats() argument 1255 down_write(&cmd->root_lock); dm_cache_metadata_set_stats() 1256 cmd->stats = *stats; dm_cache_metadata_set_stats() 1257 up_write(&cmd->root_lock); dm_cache_metadata_set_stats() 1260 int dm_cache_commit(struct dm_cache_metadata *cmd, bool clean_shutdown) dm_cache_commit() argument 1266 down_write(&cmd->root_lock); dm_cache_commit() 1267 r = __commit_transaction(cmd, mutator); dm_cache_commit() 1271 r = __begin_transaction(cmd); dm_cache_commit() 1274 up_write(&cmd->root_lock); dm_cache_commit() 1278 int dm_cache_get_free_metadata_block_count(struct dm_cache_metadata *cmd, dm_cache_get_free_metadata_block_count() argument 1283 down_read(&cmd->root_lock); dm_cache_get_free_metadata_block_count() 1284 r = dm_sm_get_nr_free(cmd->metadata_sm, result); dm_cache_get_free_metadata_block_count() 1285 up_read(&cmd->root_lock); dm_cache_get_free_metadata_block_count() 1290 int dm_cache_get_metadata_dev_size(struct dm_cache_metadata *cmd, dm_cache_get_metadata_dev_size() argument 1295 down_read(&cmd->root_lock); dm_cache_get_metadata_dev_size() 1296 r = dm_sm_get_nr_blocks(cmd->metadata_sm, result); dm_cache_get_metadata_dev_size() 1297 up_read(&cmd->root_lock); dm_cache_get_metadata_dev_size() 1304 static int begin_hints(struct dm_cache_metadata *cmd, struct dm_cache_policy *policy) begin_hints() argument 1313 (strlen(policy_name) > sizeof(cmd->policy_name) - 1)) begin_hints() 1316 if (!policy_unchanged(cmd, policy)) { begin_hints() 1317 strncpy(cmd->policy_name, policy_name, sizeof(cmd->policy_name)); begin_hints() 1318 memcpy(cmd->policy_version, policy_version, sizeof(cmd->policy_version)); begin_hints() 1323 cmd->policy_hint_size = hint_size; begin_hints() 1325 if (cmd->hint_root) { begin_hints() 1326 r = dm_array_del(&cmd->hint_info, cmd->hint_root); begin_hints() 1331 r = dm_array_empty(&cmd->hint_info, &cmd->hint_root); begin_hints() 1337 r = dm_array_resize(&cmd->hint_info, cmd->hint_root, 0, begin_hints() 1338 from_cblock(cmd->cache_blocks), begin_hints() 1339 &value, &cmd->hint_root); begin_hints() 1349 struct dm_cache_metadata *cmd = context; save_hint() local 1355 r = dm_array_set_value(&cmd->hint_info, cmd->hint_root, save_hint() 1356 from_cblock(cblock), &value, &cmd->hint_root); save_hint() 1357 cmd->changed = true; save_hint() 1362 static int write_hints(struct dm_cache_metadata *cmd, struct dm_cache_policy *policy) write_hints() argument 1366 r = begin_hints(cmd, policy); write_hints() 1372 return policy_walk_mappings(policy, save_hint, cmd); write_hints() 1375 int dm_cache_write_hints(struct dm_cache_metadata *cmd, struct dm_cache_policy *policy) dm_cache_write_hints() argument 1379 down_write(&cmd->root_lock); dm_cache_write_hints() 1380 r = write_hints(cmd, policy); dm_cache_write_hints() 1381 up_write(&cmd->root_lock); dm_cache_write_hints() 1386 int dm_cache_metadata_all_clean(struct dm_cache_metadata *cmd, bool *result) dm_cache_metadata_all_clean() argument 1388 return blocks_are_unmapped_or_clean(cmd, 0, cmd->cache_blocks, result); dm_cache_metadata_all_clean() 388 __check_incompat_features(struct cache_disk_superblock *disk_super, struct dm_cache_metadata *cmd) __check_incompat_features() argument
|
H A D | dm-cache-metadata.h | 61 void dm_cache_metadata_close(struct dm_cache_metadata *cmd); 68 int dm_cache_resize(struct dm_cache_metadata *cmd, dm_cblock_t new_cache_size); 69 dm_cblock_t dm_cache_size(struct dm_cache_metadata *cmd); 71 int dm_cache_discard_bitset_resize(struct dm_cache_metadata *cmd, 77 int dm_cache_load_discards(struct dm_cache_metadata *cmd, 80 int dm_cache_set_discard(struct dm_cache_metadata *cmd, dm_dblock_t dblock, bool discard); 82 int dm_cache_remove_mapping(struct dm_cache_metadata *cmd, dm_cblock_t cblock); 83 int dm_cache_insert_mapping(struct dm_cache_metadata *cmd, dm_cblock_t cblock, dm_oblock_t oblock); 84 int dm_cache_changed_this_transaction(struct dm_cache_metadata *cmd); 89 int dm_cache_load_mappings(struct dm_cache_metadata *cmd, 94 int dm_cache_set_dirty(struct dm_cache_metadata *cmd, dm_cblock_t cblock, bool dirty); 103 void dm_cache_metadata_get_stats(struct dm_cache_metadata *cmd, 105 void dm_cache_metadata_set_stats(struct dm_cache_metadata *cmd, 108 int dm_cache_commit(struct dm_cache_metadata *cmd, bool clean_shutdown); 110 int dm_cache_get_free_metadata_block_count(struct dm_cache_metadata *cmd, 113 int dm_cache_get_metadata_dev_size(struct dm_cache_metadata *cmd, 116 void dm_cache_dump(struct dm_cache_metadata *cmd); 129 int dm_cache_write_hints(struct dm_cache_metadata *cmd, struct dm_cache_policy *p); 134 int dm_cache_metadata_all_clean(struct dm_cache_metadata *cmd, bool *result);
|
/linux-4.1.27/drivers/scsi/ |
H A D | scsi_lib_dma.c | 17 * @cmd: scsi command 22 int scsi_dma_map(struct scsi_cmnd *cmd) scsi_dma_map() argument 26 if (scsi_sg_count(cmd)) { scsi_dma_map() 27 struct device *dev = cmd->device->host->dma_dev; scsi_dma_map() 29 nseg = dma_map_sg(dev, scsi_sglist(cmd), scsi_sg_count(cmd), scsi_dma_map() 30 cmd->sc_data_direction); scsi_dma_map() 40 * @cmd: scsi command 42 void scsi_dma_unmap(struct scsi_cmnd *cmd) scsi_dma_unmap() argument 44 if (scsi_sg_count(cmd)) { scsi_dma_unmap() 45 struct device *dev = cmd->device->host->dma_dev; scsi_dma_unmap() 47 dma_unmap_sg(dev, scsi_sglist(cmd), scsi_sg_count(cmd), scsi_dma_unmap() 48 cmd->sc_data_direction); scsi_dma_unmap()
|
H A D | ps3rom.c | 97 struct scsi_cmnd *cmd) ps3rom_atapi_request() 100 unsigned char opcode = cmd->cmnd[0]; ps3rom_atapi_request() 108 memcpy(&atapi_cmnd.pkt, cmd->cmnd, 12); ps3rom_atapi_request() 111 atapi_cmnd.blocks = atapi_cmnd.arglen = scsi_bufflen(cmd); ps3rom_atapi_request() 114 switch (cmd->sc_data_direction) { ps3rom_atapi_request() 116 if (scsi_bufflen(cmd) >= CD_FRAMESIZE) ps3rom_atapi_request() 124 if (scsi_bufflen(cmd) >= CD_FRAMESIZE) ps3rom_atapi_request() 129 scsi_sg_copy_to_buffer(cmd, dev->bounce_buf, dev->bounce_size); ps3rom_atapi_request() 160 static inline unsigned int srb10_lba(const struct scsi_cmnd *cmd) srb10_lba() argument 162 return cmd->cmnd[2] << 24 | cmd->cmnd[3] << 16 | cmd->cmnd[4] << 8 | srb10_lba() 163 cmd->cmnd[5]; srb10_lba() 166 static inline unsigned int srb10_len(const struct scsi_cmnd *cmd) srb10_len() argument 168 return cmd->cmnd[7] << 8 | cmd->cmnd[8]; srb10_len() 172 struct scsi_cmnd *cmd, u32 start_sector, ps3rom_read_request() 193 struct scsi_cmnd *cmd, u32 start_sector, ps3rom_write_request() 201 scsi_sg_copy_to_buffer(cmd, dev->bounce_buf, dev->bounce_size); ps3rom_write_request() 215 static int ps3rom_queuecommand_lck(struct scsi_cmnd *cmd, ps3rom_queuecommand_lck() argument 218 struct ps3rom_private *priv = shost_priv(cmd->device->host); ps3rom_queuecommand_lck() 223 priv->curr_cmd = cmd; ps3rom_queuecommand_lck() 224 cmd->scsi_done = done; ps3rom_queuecommand_lck() 226 opcode = cmd->cmnd[0]; ps3rom_queuecommand_lck() 234 res = ps3rom_read_request(dev, cmd, srb10_lba(cmd), ps3rom_queuecommand_lck() 235 srb10_len(cmd)); ps3rom_queuecommand_lck() 239 res = ps3rom_write_request(dev, cmd, srb10_lba(cmd), ps3rom_queuecommand_lck() 240 srb10_len(cmd)); ps3rom_queuecommand_lck() 244 res = ps3rom_atapi_request(dev, cmd); ps3rom_queuecommand_lck() 249 memset(cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE); ps3rom_queuecommand_lck() 250 cmd->result = res; ps3rom_queuecommand_lck() 251 cmd->sense_buffer[0] = 0x70; ps3rom_queuecommand_lck() 252 cmd->sense_buffer[2] = ILLEGAL_REQUEST; ps3rom_queuecommand_lck() 254 cmd->scsi_done(cmd); ps3rom_queuecommand_lck() 279 struct scsi_cmnd *cmd; ps3rom_interrupt() local 304 cmd = priv->curr_cmd; ps3rom_interrupt() 308 if (cmd->sc_data_direction == DMA_FROM_DEVICE) { ps3rom_interrupt() 311 len = scsi_sg_copy_from_buffer(cmd, ps3rom_interrupt() 315 scsi_set_resid(cmd, scsi_bufflen(cmd) - len); ps3rom_interrupt() 317 cmd->result = DID_OK << 16; ps3rom_interrupt() 321 if (cmd->cmnd[0] == REQUEST_SENSE) { ps3rom_interrupt() 325 cmd->result = DID_ERROR << 16 | SAM_STAT_CHECK_CONDITION; ps3rom_interrupt() 330 cmd->result = DID_ERROR << 16; ps3rom_interrupt() 334 scsi_build_sense_buffer(0, cmd->sense_buffer, sense_key, asc, ascq); ps3rom_interrupt() 335 cmd->result = SAM_STAT_CHECK_CONDITION; ps3rom_interrupt() 339 cmd->scsi_done(cmd); ps3rom_interrupt() 96 ps3rom_atapi_request(struct ps3_storage_device *dev, struct scsi_cmnd *cmd) ps3rom_atapi_request() argument 171 ps3rom_read_request(struct ps3_storage_device *dev, struct scsi_cmnd *cmd, u32 start_sector, u32 sectors) ps3rom_read_request() argument 192 ps3rom_write_request(struct ps3_storage_device *dev, struct scsi_cmnd *cmd, u32 start_sector, u32 sectors) ps3rom_write_request() argument
|
H A D | ch.c | 185 ch_do_scsi(scsi_changer *ch, unsigned char *cmd, int cmd_len, ch_do_scsi() argument 192 timeout = (cmd[0] == INITIALIZE_ELEMENT_STATUS) ch_do_scsi() 197 result = scsi_execute_req(ch->device, cmd, direction, buffer, ch_do_scsi() 236 u_char cmd[12]; ch_read_element_status() local 245 memset(cmd,0,sizeof(cmd)); ch_read_element_status() 246 cmd[0] = READ_ELEMENT_STATUS; ch_read_element_status() 247 cmd[1] = ((ch->device->lun & 0x7) << 5) | ch_read_element_status() 250 cmd[2] = (elem >> 8) & 0xff; ch_read_element_status() 251 cmd[3] = elem & 0xff; ch_read_element_status() 252 cmd[5] = 1; ch_read_element_status() 253 cmd[9] = 255; ch_read_element_status() 254 if (0 == (result = ch_do_scsi(ch, cmd, 12, ch_read_element_status() 279 u_char cmd[6]; ch_init_elem() local 282 memset(cmd,0,sizeof(cmd)); ch_init_elem() 283 cmd[0] = INITIALIZE_ELEMENT_STATUS; ch_init_elem() 284 cmd[1] = (ch->device->lun & 0x7) << 5; ch_init_elem() 285 err = ch_do_scsi(ch, cmd, 6, NULL, 0, DMA_NONE); ch_init_elem() 293 u_char cmd[10], data[16]; ch_readconfig() local 302 memset(cmd,0,sizeof(cmd)); ch_readconfig() 303 cmd[0] = MODE_SENSE; ch_readconfig() 304 cmd[1] = (ch->device->lun & 0x7) << 5; ch_readconfig() 305 cmd[2] = 0x1d; ch_readconfig() 306 cmd[4] = 255; ch_readconfig() 307 result = ch_do_scsi(ch, cmd, 10, buffer, 255, DMA_FROM_DEVICE); ch_readconfig() 309 cmd[1] |= (1<<3); ch_readconfig() 310 result = ch_do_scsi(ch, cmd, 10, buffer, 255, DMA_FROM_DEVICE); ch_readconfig() 422 u_char cmd[10]; ch_position() local 427 memset(cmd,0,sizeof(cmd)); ch_position() 428 cmd[0] = POSITION_TO_ELEMENT; ch_position() 429 cmd[1] = (ch->device->lun & 0x7) << 5; ch_position() 430 cmd[2] = (trans >> 8) & 0xff; ch_position() 431 cmd[3] = trans & 0xff; ch_position() 432 cmd[4] = (elem >> 8) & 0xff; ch_position() 433 cmd[5] = elem & 0xff; ch_position() 434 cmd[8] = rotate ? 1 : 0; ch_position() 435 return ch_do_scsi(ch, cmd, 10, NULL, 0, DMA_NONE); ch_position() 441 u_char cmd[12]; ch_move() local 446 memset(cmd,0,sizeof(cmd)); ch_move() 447 cmd[0] = MOVE_MEDIUM; ch_move() 448 cmd[1] = (ch->device->lun & 0x7) << 5; ch_move() 449 cmd[2] = (trans >> 8) & 0xff; ch_move() 450 cmd[3] = trans & 0xff; ch_move() 451 cmd[4] = (src >> 8) & 0xff; ch_move() 452 cmd[5] = src & 0xff; ch_move() 453 cmd[6] = (dest >> 8) & 0xff; ch_move() 454 cmd[7] = dest & 0xff; ch_move() 455 cmd[10] = rotate ? 1 : 0; ch_move() 456 return ch_do_scsi(ch, cmd, 12, NULL,0, DMA_NONE); ch_move() 463 u_char cmd[12]; ch_exchange() local 469 memset(cmd,0,sizeof(cmd)); ch_exchange() 470 cmd[0] = EXCHANGE_MEDIUM; ch_exchange() 471 cmd[1] = (ch->device->lun & 0x7) << 5; ch_exchange() 472 cmd[2] = (trans >> 8) & 0xff; ch_exchange() 473 cmd[3] = trans & 0xff; ch_exchange() 474 cmd[4] = (src >> 8) & 0xff; ch_exchange() 475 cmd[5] = src & 0xff; ch_exchange() 476 cmd[6] = (dest1 >> 8) & 0xff; ch_exchange() 477 cmd[7] = dest1 & 0xff; ch_exchange() 478 cmd[8] = (dest2 >> 8) & 0xff; ch_exchange() 479 cmd[9] = dest2 & 0xff; ch_exchange() 480 cmd[10] = (rotate1 ? 1 : 0) | (rotate2 ? 2 : 0); ch_exchange() 482 return ch_do_scsi(ch, cmd, 12, NULL, 0, DMA_NONE); ch_exchange() 505 u_char cmd[12]; ch_set_voltag() local 517 memset(cmd,0,sizeof(cmd)); ch_set_voltag() 518 cmd[0] = SEND_VOLUME_TAG; ch_set_voltag() 519 cmd[1] = ((ch->device->lun & 0x7) << 5) | ch_set_voltag() 521 cmd[2] = (elem >> 8) & 0xff; ch_set_voltag() 522 cmd[3] = elem & 0xff; ch_set_voltag() 523 cmd[5] = clear ch_set_voltag() 527 cmd[9] = 255; ch_set_voltag() 532 result = ch_do_scsi(ch, cmd, 12, buffer, 256, DMA_TO_DEVICE); ch_set_voltag() 607 unsigned int cmd, unsigned long arg) ch_ioctl() 613 retval = scsi_ioctl_block_when_processing_errors(ch->device, cmd, ch_ioctl() 618 switch (cmd) { ch_ioctl() 846 return scsi_ioctl(ch->device, cmd, argp); ch_ioctl() 860 unsigned int cmd, unsigned long arg) ch_ioctl_compat() 864 switch (cmd) { ch_ioctl_compat() 874 return ch_ioctl(file, cmd, arg); ch_ioctl_compat() 889 // return scsi_ioctl_compat(ch->device, cmd, (void*)arg); ch_ioctl_compat() 606 ch_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ch_ioctl() argument 859 ch_ioctl_compat(struct file * file, unsigned int cmd, unsigned long arg) ch_ioctl_compat() argument
|
H A D | mac53c94.c | 69 static int mac53c94_queue_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) mac53c94_queue_lck() argument 74 if (cmd->sc_data_direction == DMA_TO_DEVICE) { mac53c94_queue_lck() 76 printk(KERN_DEBUG "mac53c94_queue %p: command is", cmd); mac53c94_queue_lck() 77 for (i = 0; i < cmd->cmd_len; ++i) mac53c94_queue_lck() 78 printk(KERN_CONT " %.2x", cmd->cmnd[i]); mac53c94_queue_lck() 81 scsi_sg_count(cmd), scsi_bufflen(cmd), scsi_sglist(cmd)); mac53c94_queue_lck() 85 cmd->scsi_done = done; mac53c94_queue_lck() 86 cmd->host_scribble = NULL; mac53c94_queue_lck() 88 state = (struct fsc_state *) cmd->device->host->hostdata; mac53c94_queue_lck() 91 state->request_q = cmd; mac53c94_queue_lck() 93 state->request_qtail->host_scribble = (void *) cmd; mac53c94_queue_lck() 94 state->request_qtail = cmd; mac53c94_queue_lck() 104 static int mac53c94_host_reset(struct scsi_cmnd *cmd) mac53c94_host_reset() argument 106 struct fsc_state *state = (struct fsc_state *) cmd->device->host->hostdata; mac53c94_host_reset() 111 spin_lock_irqsave(cmd->device->host->host_lock, flags); mac53c94_host_reset() 121 spin_unlock_irqrestore(cmd->device->host->host_lock, flags); mac53c94_host_reset() 148 struct scsi_cmnd *cmd; mac53c94_start() local 156 state->current_req = cmd = state->request_q; mac53c94_start() 157 state->request_q = (struct scsi_cmnd *) cmd->host_scribble; mac53c94_start() 167 writeb(cmd->device->id, ®s->dest_id); mac53c94_start() 172 for (i = 0; i < cmd->cmd_len; ++i) mac53c94_start() 173 writeb(cmd->cmnd[i], ®s->fifo); mac53c94_start() 179 set_dma_cmds(state, cmd); mac53c94_start() 198 struct scsi_cmnd *cmd = state->current_req; mac53c94_interrupt() local 224 printk(KERN_ERR "53c94: invalid cmd, intr=%x stat=%x seq=%x phase=%d\n", mac53c94_interrupt() 238 if (cmd == 0) { mac53c94_interrupt() 267 && (scsi_sg_count(cmd) > 0 || scsi_bufflen(cmd))) { mac53c94_interrupt() 268 nb = cmd->SCp.this_residual; mac53c94_interrupt() 271 cmd->SCp.this_residual -= nb; mac53c94_interrupt() 285 printk(KERN_DEBUG "in unexpected phase %x after cmd\n", mac53c94_interrupt() 298 if (cmd->SCp.this_residual != 0 mac53c94_interrupt() 301 nb = cmd->SCp.this_residual; mac53c94_interrupt() 304 cmd->SCp.this_residual -= nb; mac53c94_interrupt() 315 scsi_dma_unmap(cmd); mac53c94_interrupt() 326 cmd->SCp.Status = readb(®s->fifo); mac53c94_interrupt() 327 cmd->SCp.Message = readb(®s->fifo); mac53c94_interrupt() 328 cmd->result = CMD_ACCEPT_MSG; mac53c94_interrupt() 336 cmd_done(state, (DID_OK << 16) + (cmd->SCp.Message << 8) mac53c94_interrupt() 337 + cmd->SCp.Status); mac53c94_interrupt() 346 struct scsi_cmnd *cmd; cmd_done() local 348 cmd = state->current_req; cmd_done() 349 if (cmd != 0) { cmd_done() 350 cmd->result = result; cmd_done() 351 (*cmd->scsi_done)(cmd); cmd_done() 361 static void set_dma_cmds(struct fsc_state *state, struct scsi_cmnd *cmd) set_dma_cmds() argument 369 nseg = scsi_dma_map(cmd); set_dma_cmds() 374 dma_cmd = cmd->sc_data_direction == DMA_TO_DEVICE ? set_dma_cmds() 379 scsi_for_each_sg(cmd, scl, nseg, i) { scsi_for_each_sg() 395 cmd->SCp.this_residual = total;
|
H A D | scsi_lib.c | 84 scsi_set_blocked(struct scsi_cmnd *cmd, int reason) scsi_set_blocked() argument 86 struct Scsi_Host *host = cmd->device->host; scsi_set_blocked() 87 struct scsi_device *device = cmd->device; scsi_set_blocked() 119 static void scsi_mq_requeue_cmd(struct scsi_cmnd *cmd) scsi_mq_requeue_cmd() argument 121 struct scsi_device *sdev = cmd->device; scsi_mq_requeue_cmd() 122 struct request_queue *q = cmd->request->q; scsi_mq_requeue_cmd() 124 blk_mq_requeue_request(cmd->request); scsi_mq_requeue_cmd() 131 * @cmd: The SCSI command being requeued 141 static void __scsi_queue_insert(struct scsi_cmnd *cmd, int reason, int unbusy) __scsi_queue_insert() argument 143 struct scsi_device *device = cmd->device; __scsi_queue_insert() 147 SCSI_LOG_MLQUEUE(1, scmd_printk(KERN_INFO, cmd, __scsi_queue_insert() 148 "Inserting command %p into mlqueue\n", cmd)); __scsi_queue_insert() 150 scsi_set_blocked(cmd, reason); __scsi_queue_insert() 165 cmd->result = 0; __scsi_queue_insert() 167 scsi_mq_requeue_cmd(cmd); __scsi_queue_insert() 171 blk_requeue_request(q, cmd->request); __scsi_queue_insert() 181 * Arguments: cmd - command that we are adding to queue. 195 void scsi_queue_insert(struct scsi_cmnd *cmd, int reason) scsi_queue_insert() argument 197 __scsi_queue_insert(cmd, reason, 1); scsi_queue_insert() 202 * @cmd: scsi command 215 int scsi_execute(struct scsi_device *sdev, const unsigned char *cmd, scsi_execute() argument 233 req->cmd_len = COMMAND_SIZE(cmd[0]); scsi_execute() 234 memcpy(req->cmd, cmd, req->cmd_len); scsi_execute() 265 int scsi_execute_req_flags(struct scsi_device *sdev, const unsigned char *cmd, scsi_execute_req_flags() argument 278 result = scsi_execute(sdev, cmd, data_direction, buffer, bufflen, scsi_execute_req_flags() 291 * Purpose: Initialize cmd fields related to error handling. 293 * Arguments: cmd - command that is ready to be queued. 299 static void scsi_init_cmd_errh(struct scsi_cmnd *cmd) scsi_init_cmd_errh() argument 301 cmd->serial_number = 0; scsi_init_cmd_errh() 302 scsi_set_resid(cmd, 0); scsi_init_cmd_errh() 303 memset(cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE); scsi_init_cmd_errh() 304 if (cmd->cmd_len == 0) scsi_init_cmd_errh() 305 cmd->cmd_len = scsi_command_size(cmd->cmnd); scsi_init_cmd_errh() 516 * cmd - command that may need to be requeued. 526 * Notes: Upon return, cmd is a stale pointer. 528 static void scsi_requeue_command(struct request_queue *q, struct scsi_cmnd *cmd) scsi_requeue_command() argument 530 struct scsi_device *sdev = cmd->device; scsi_requeue_command() 531 struct request *req = cmd->request; scsi_requeue_command() 537 scsi_put_command(cmd); scsi_requeue_command() 614 static void scsi_uninit_cmd(struct scsi_cmnd *cmd) scsi_uninit_cmd() argument 616 if (cmd->request->cmd_type == REQ_TYPE_FS) { scsi_uninit_cmd() 617 struct scsi_driver *drv = scsi_cmd_to_driver(cmd); scsi_uninit_cmd() 620 drv->uninit_command(cmd); scsi_uninit_cmd() 624 static void scsi_mq_free_sgtables(struct scsi_cmnd *cmd) scsi_mq_free_sgtables() argument 626 if (cmd->sdb.table.nents) scsi_mq_free_sgtables() 627 scsi_free_sgtable(&cmd->sdb, true); scsi_mq_free_sgtables() 628 if (cmd->request->next_rq && cmd->request->next_rq->special) scsi_mq_free_sgtables() 629 scsi_free_sgtable(cmd->request->next_rq->special, true); scsi_mq_free_sgtables() 630 if (scsi_prot_sg_count(cmd)) scsi_mq_free_sgtables() 631 scsi_free_sgtable(cmd->prot_sdb, true); scsi_mq_free_sgtables() 634 static void scsi_mq_uninit_cmd(struct scsi_cmnd *cmd) scsi_mq_uninit_cmd() argument 636 struct scsi_device *sdev = cmd->device; scsi_mq_uninit_cmd() 640 scsi_mq_free_sgtables(cmd); scsi_mq_uninit_cmd() 641 scsi_uninit_cmd(cmd); scsi_mq_uninit_cmd() 644 BUG_ON(list_empty(&cmd->list)); scsi_mq_uninit_cmd() 646 list_del_init(&cmd->list); scsi_mq_uninit_cmd() 656 * Arguments: cmd - command that we are bailing. 667 static void scsi_release_buffers(struct scsi_cmnd *cmd) scsi_release_buffers() argument 669 if (cmd->sdb.table.nents) scsi_release_buffers() 670 scsi_free_sgtable(&cmd->sdb, false); scsi_release_buffers() 672 memset(&cmd->sdb, 0, sizeof(cmd->sdb)); scsi_release_buffers() 674 if (scsi_prot_sg_count(cmd)) scsi_release_buffers() 675 scsi_free_sgtable(cmd->prot_sdb, false); scsi_release_buffers() 678 static void scsi_release_bidi_buffers(struct scsi_cmnd *cmd) scsi_release_bidi_buffers() argument 680 struct scsi_data_buffer *bidi_sdb = cmd->request->next_rq->special; scsi_release_bidi_buffers() 684 cmd->request->next_rq->special = NULL; scsi_release_bidi_buffers() 690 struct scsi_cmnd *cmd = req->special; scsi_end_request() local 691 struct scsi_device *sdev = cmd->device; scsi_end_request() 713 scsi_mq_uninit_cmd(cmd); scsi_end_request() 726 scsi_release_bidi_buffers(cmd); scsi_end_request() 732 scsi_release_buffers(cmd); scsi_end_request() 734 scsi_put_command(cmd); scsi_end_request() 744 * @cmd: SCSI command (unused) 756 static int __scsi_error_from_host_byte(struct scsi_cmnd *cmd, int result) __scsi_error_from_host_byte() argument 765 set_host_byte(cmd, DID_OK); __scsi_error_from_host_byte() 769 set_host_byte(cmd, DID_OK); __scsi_error_from_host_byte() 773 set_host_byte(cmd, DID_OK); __scsi_error_from_host_byte() 777 set_host_byte(cmd, DID_OK); __scsi_error_from_host_byte() 793 * Arguments: cmd - command that is finished. 817 void scsi_io_completion(struct scsi_cmnd *cmd, unsigned int good_bytes) scsi_io_completion() argument 819 int result = cmd->result; scsi_io_completion() 820 struct request_queue *q = cmd->device->request_queue; scsi_io_completion() 821 struct request *req = cmd->request; scsi_io_completion() 828 unsigned long wait_for = (cmd->allowed + 1) * req->timeout; scsi_io_completion() 831 sense_valid = scsi_command_normalize_sense(cmd, &sshdr); scsi_io_completion() 842 int len = 8 + cmd->sense_buffer[7]; scsi_io_completion() 846 memcpy(req->sense, cmd->sense_buffer, len); scsi_io_completion() 850 error = __scsi_error_from_host_byte(cmd, result); scsi_io_completion() 855 req->errors = cmd->result; scsi_io_completion() 857 req->resid_len = scsi_get_resid(cmd); scsi_io_completion() 859 if (scsi_bidi_cmnd(cmd)) { scsi_io_completion() 864 req->next_rq->resid_len = scsi_in(cmd)->resid; scsi_io_completion() 877 error = __scsi_error_from_host_byte(cmd, result); scsi_io_completion() 887 SCSI_LOG_HLCOMPLETE(1, scmd_printk(KERN_INFO, cmd, scsi_io_completion() 905 scsi_print_sense(cmd); scsi_io_completion() 923 if (error && scsi_noretry_cmd(cmd)) { scsi_io_completion() 936 error = __scsi_error_from_host_byte(cmd, result); scsi_io_completion() 947 if (cmd->device->removable) { scsi_io_completion() 951 cmd->device->changed = 1; scsi_io_completion() 971 if ((cmd->device->use_10_for_rw && scsi_io_completion() 973 (cmd->cmnd[0] == READ_10 || scsi_io_completion() 974 cmd->cmnd[0] == WRITE_10)) { scsi_io_completion() 976 cmd->device->use_10_for_rw = 0; scsi_io_completion() 1028 time_before(cmd->jiffies_at_alloc + wait_for, jiffies)) scsi_io_completion() 1048 scsi_print_result(cmd, NULL, FAILED); scsi_io_completion() 1050 scsi_print_sense(cmd); scsi_io_completion() 1051 scsi_print_command(cmd); scsi_io_completion() 1063 cmd->request->cmd_flags &= ~REQ_DONTPREP; scsi_io_completion() 1064 scsi_mq_uninit_cmd(cmd); scsi_io_completion() 1065 scsi_mq_requeue_cmd(cmd); scsi_io_completion() 1067 scsi_release_buffers(cmd); scsi_io_completion() 1068 scsi_requeue_command(q, cmd); scsi_io_completion() 1073 __scsi_queue_insert(cmd, SCSI_MLQUEUE_EH_RETRY, 0); scsi_io_completion() 1077 __scsi_queue_insert(cmd, SCSI_MLQUEUE_DEVICE_BUSY, 0); scsi_io_completion() 1109 * Arguments: cmd - Command descriptor we wish to initialize 1115 int scsi_init_io(struct scsi_cmnd *cmd) scsi_init_io() argument 1117 struct scsi_device *sdev = cmd->device; scsi_init_io() 1118 struct request *rq = cmd->request; scsi_init_io() 1124 error = scsi_init_sgtable(rq, &cmd->sdb); scsi_init_io() 1146 struct scsi_data_buffer *prot_sdb = cmd->prot_sdb; scsi_init_io() 1172 cmd->prot_sdb = prot_sdb; scsi_init_io() 1173 cmd->prot_sdb->table.nents = count; scsi_init_io() 1179 scsi_mq_free_sgtables(cmd); scsi_init_io() 1181 scsi_release_buffers(cmd); scsi_init_io() 1182 cmd->request->special = NULL; scsi_init_io() 1183 scsi_put_command(cmd); scsi_init_io() 1193 struct scsi_cmnd *cmd; scsi_get_cmd_from_req() local 1200 cmd = scsi_get_command(sdev, GFP_ATOMIC); scsi_get_cmd_from_req() 1201 if (unlikely(!cmd)) { scsi_get_cmd_from_req() 1205 req->special = cmd; scsi_get_cmd_from_req() 1207 cmd = req->special; scsi_get_cmd_from_req() 1211 cmd->tag = req->tag; scsi_get_cmd_from_req() 1212 cmd->request = req; scsi_get_cmd_from_req() 1214 cmd->cmnd = req->cmd; scsi_get_cmd_from_req() 1215 cmd->prot_op = SCSI_PROT_NORMAL; scsi_get_cmd_from_req() 1217 return cmd; scsi_get_cmd_from_req() 1222 struct scsi_cmnd *cmd = req->special; scsi_setup_blk_pc_cmnd() local 1231 int ret = scsi_init_io(cmd); scsi_setup_blk_pc_cmnd() 1237 memset(&cmd->sdb, 0, sizeof(cmd->sdb)); scsi_setup_blk_pc_cmnd() 1240 cmd->cmd_len = req->cmd_len; scsi_setup_blk_pc_cmnd() 1241 cmd->transfersize = blk_rq_bytes(req); scsi_setup_blk_pc_cmnd() 1242 cmd->allowed = req->retries; scsi_setup_blk_pc_cmnd() 1252 struct scsi_cmnd *cmd = req->special; scsi_setup_fs_cmnd() local 1261 memset(cmd->cmnd, 0, BLK_MAX_CDB); scsi_setup_fs_cmnd() 1262 return scsi_cmd_to_driver(cmd)->init_command(cmd); scsi_setup_fs_cmnd() 1267 struct scsi_cmnd *cmd = req->special; scsi_setup_cmnd() local 1270 cmd->sc_data_direction = DMA_NONE; scsi_setup_cmnd() 1272 cmd->sc_data_direction = DMA_TO_DEVICE; scsi_setup_cmnd() 1274 cmd->sc_data_direction = DMA_FROM_DEVICE; scsi_setup_cmnd() 1352 struct scsi_cmnd *cmd = req->special; scsi_prep_return() local 1353 scsi_release_buffers(cmd); scsi_prep_return() 1354 scsi_put_command(cmd); scsi_prep_return() 1378 struct scsi_cmnd *cmd; scsi_prep_fn() local 1385 cmd = scsi_get_cmd_from_req(sdev, req); scsi_prep_fn() 1386 if (unlikely(!cmd)) { scsi_prep_fn() 1589 struct scsi_cmnd *cmd = req->special; scsi_kill_request() local 1596 scmd_printk(KERN_INFO, cmd, "killing request\n"); scsi_kill_request() 1598 sdev = cmd->device; scsi_kill_request() 1601 scsi_init_cmd_errh(cmd); scsi_kill_request() 1602 cmd->result = DID_NO_CONNECT << 16; scsi_kill_request() 1603 atomic_inc(&cmd->device->iorequest_cnt); scsi_kill_request() 1620 struct scsi_cmnd *cmd = rq->special; scsi_softirq_done() local 1621 unsigned long wait_for = (cmd->allowed + 1) * rq->timeout; scsi_softirq_done() 1624 INIT_LIST_HEAD(&cmd->eh_entry); scsi_softirq_done() 1626 atomic_inc(&cmd->device->iodone_cnt); scsi_softirq_done() 1627 if (cmd->result) scsi_softirq_done() 1628 atomic_inc(&cmd->device->ioerr_cnt); scsi_softirq_done() 1630 disposition = scsi_decide_disposition(cmd); scsi_softirq_done() 1632 time_before(cmd->jiffies_at_alloc + wait_for, jiffies)) { scsi_softirq_done() 1633 sdev_printk(KERN_ERR, cmd->device, scsi_softirq_done() 1639 scsi_log_completion(cmd, disposition); scsi_softirq_done() 1643 scsi_finish_command(cmd); scsi_softirq_done() 1646 scsi_queue_insert(cmd, SCSI_MLQUEUE_EH_RETRY); scsi_softirq_done() 1649 scsi_queue_insert(cmd, SCSI_MLQUEUE_DEVICE_BUSY); scsi_softirq_done() 1652 if (!scsi_eh_scmd_add(cmd, 0)) scsi_softirq_done() 1653 scsi_finish_command(cmd); scsi_softirq_done() 1659 * @cmd: command block we are dispatching. 1664 static int scsi_dispatch_cmd(struct scsi_cmnd *cmd) scsi_dispatch_cmd() argument 1666 struct Scsi_Host *host = cmd->device->host; scsi_dispatch_cmd() 1669 atomic_inc(&cmd->device->iorequest_cnt); scsi_dispatch_cmd() 1672 if (unlikely(cmd->device->sdev_state == SDEV_DEL)) { scsi_dispatch_cmd() 1676 cmd->result = DID_NO_CONNECT << 16; scsi_dispatch_cmd() 1681 if (unlikely(scsi_device_blocked(cmd->device))) { scsi_dispatch_cmd() 1689 SCSI_LOG_MLQUEUE(3, scmd_printk(KERN_INFO, cmd, scsi_dispatch_cmd() 1695 if (cmd->device->lun_in_cdb) scsi_dispatch_cmd() 1696 cmd->cmnd[1] = (cmd->cmnd[1] & 0x1f) | scsi_dispatch_cmd() 1697 (cmd->device->lun << 5 & 0xe0); scsi_dispatch_cmd() 1699 scsi_log_send(cmd); scsi_dispatch_cmd() 1705 if (cmd->cmd_len > cmd->device->host->max_cmd_len) { scsi_dispatch_cmd() 1706 SCSI_LOG_MLQUEUE(3, scmd_printk(KERN_INFO, cmd, scsi_dispatch_cmd() 1709 cmd->cmd_len, cmd->device->host->max_cmd_len)); scsi_dispatch_cmd() 1710 cmd->result = (DID_ABORT << 16); scsi_dispatch_cmd() 1715 cmd->result = (DID_NO_CONNECT << 16); scsi_dispatch_cmd() 1720 trace_scsi_dispatch_cmd_start(cmd); scsi_dispatch_cmd() 1721 rtn = host->hostt->queuecommand(host, cmd); scsi_dispatch_cmd() 1723 trace_scsi_dispatch_cmd_error(cmd, rtn); scsi_dispatch_cmd() 1728 SCSI_LOG_MLQUEUE(3, scmd_printk(KERN_INFO, cmd, scsi_dispatch_cmd() 1734 cmd->scsi_done(cmd); scsi_dispatch_cmd() 1740 * @cmd: The SCSI Command for which a low-level device driver (LLDD) gives 1749 static void scsi_done(struct scsi_cmnd *cmd) scsi_done() argument 1751 trace_scsi_dispatch_cmd_done(cmd); scsi_done() 1752 blk_complete_request(cmd->request); scsi_done() 1772 struct scsi_cmnd *cmd; variable in typeref:struct:scsi_cmnd 1808 cmd = req->special; 1809 if (unlikely(cmd == NULL)) { 1842 cmd->flags |= SCMD_TAGGED; 1844 cmd->flags &= ~SCMD_TAGGED; 1850 scsi_init_cmd_errh(cmd); variable 1855 cmd->scsi_done = scsi_done; 1856 rtn = scsi_dispatch_cmd(cmd); 1858 scsi_queue_insert(cmd, rtn); 1901 struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(req); scsi_mq_prep_fn() local 1904 unsigned char *sense_buf = cmd->sense_buffer; scsi_mq_prep_fn() 1907 memset(cmd, 0, sizeof(struct scsi_cmnd)); scsi_mq_prep_fn() 1909 req->special = cmd; scsi_mq_prep_fn() 1911 cmd->request = req; scsi_mq_prep_fn() 1912 cmd->device = sdev; scsi_mq_prep_fn() 1913 cmd->sense_buffer = sense_buf; scsi_mq_prep_fn() 1915 cmd->tag = req->tag; scsi_mq_prep_fn() 1917 cmd->cmnd = req->cmd; scsi_mq_prep_fn() 1918 cmd->prot_op = SCSI_PROT_NORMAL; scsi_mq_prep_fn() 1920 INIT_LIST_HEAD(&cmd->list); scsi_mq_prep_fn() 1921 INIT_DELAYED_WORK(&cmd->abort_work, scmd_eh_abort_handler); scsi_mq_prep_fn() 1922 cmd->jiffies_at_alloc = jiffies; scsi_mq_prep_fn() 1926 list_add_tail(&cmd->list, &sdev->cmd_list); scsi_mq_prep_fn() 1930 sg = (void *)cmd + sizeof(struct scsi_cmnd) + shost->hostt->cmd_size; scsi_mq_prep_fn() 1931 cmd->sdb.table.sgl = sg; scsi_mq_prep_fn() 1934 cmd->prot_sdb = (void *)sg + scsi_mq_prep_fn() 1938 memset(cmd->prot_sdb, 0, sizeof(struct scsi_data_buffer)); scsi_mq_prep_fn() 1940 cmd->prot_sdb->table.sgl = scsi_mq_prep_fn() 1941 (struct scatterlist *)(cmd->prot_sdb + 1); scsi_mq_prep_fn() 1960 static void scsi_mq_done(struct scsi_cmnd *cmd) scsi_mq_done() argument 1962 trace_scsi_dispatch_cmd_done(cmd); scsi_mq_done() 1963 blk_mq_complete_request(cmd->request); scsi_mq_done() 1973 struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(req); scsi_queue_rq() local 2003 cmd->flags |= SCMD_TAGGED; scsi_queue_rq() 2005 cmd->flags &= ~SCMD_TAGGED; scsi_queue_rq() 2007 scsi_init_cmd_errh(cmd); scsi_queue_rq() 2008 cmd->scsi_done = scsi_mq_done; scsi_queue_rq() 2010 reason = scsi_dispatch_cmd(cmd); scsi_queue_rq() 2012 scsi_set_blocked(cmd, reason); scsi_queue_rq() 2043 scsi_mq_uninit_cmd(cmd); scsi_queue_rq() 2063 struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(rq); scsi_init_request() local 2065 cmd->sense_buffer = kzalloc_node(SCSI_SENSE_BUFFERSIZE, GFP_KERNEL, scsi_init_request() 2067 if (!cmd->sense_buffer) scsi_init_request() 2075 struct scsi_cmnd *cmd = blk_mq_rq_to_pdu(rq); scsi_exit_request() local 2077 kfree(cmd->sense_buffer); scsi_exit_request() 2350 unsigned char cmd[10]; scsi_mode_select() local 2354 memset(cmd, 0, sizeof(cmd)); scsi_mode_select() 2355 cmd[1] = (pf ? 0x10 : 0) | (sp ? 0x01 : 0); scsi_mode_select() 2374 cmd[0] = MODE_SELECT_10; scsi_mode_select() 2375 cmd[7] = len >> 8; scsi_mode_select() 2376 cmd[8] = len; scsi_mode_select() 2393 cmd[0] = MODE_SELECT; scsi_mode_select() 2394 cmd[4] = len; scsi_mode_select() 2397 ret = scsi_execute_req(sdev, cmd, DMA_TO_DEVICE, real_buffer, len, scsi_mode_select() 2426 unsigned char cmd[12]; scsi_mode_sense() local 2433 memset(&cmd[0], 0, 12); scsi_mode_sense() 2434 cmd[1] = dbd & 0x18; /* allows DBD and LLBA bits */ scsi_mode_sense() 2435 cmd[2] = modepage; scsi_mode_sense() 2448 cmd[0] = MODE_SENSE_10; scsi_mode_sense() 2449 cmd[8] = len; scsi_mode_sense() 2455 cmd[0] = MODE_SENSE; scsi_mode_sense() 2456 cmd[4] = len; scsi_mode_sense() 2462 result = scsi_execute_req(sdev, cmd, DMA_FROM_DEVICE, buffer, len, scsi_mode_sense() 2530 char cmd[] = { scsi_test_unit_ready() local 2543 result = scsi_execute_req(sdev, cmd, DMA_NONE, NULL, 0, sshdr, scsi_test_unit_ready()
|
H A D | in2000.c | 207 static inline void write_3393_cmd(struct IN2000_hostdata *hostdata, uchar cmd) write_3393_cmd() argument 212 write1_io(cmd, IO_WD_DATA); write_3393_cmd() 257 static int is_dir_out(Scsi_Cmnd * cmd) is_dir_out() argument 259 switch (cmd->cmnd[0]) { is_dir_out() 336 static int in2000_queuecommand_lck(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *)) in2000_queuecommand_lck() argument 342 instance = cmd->device->host; in2000_queuecommand_lck() 345 DB(DB_QUEUE_COMMAND, scmd_printk(KERN_DEBUG, cmd, "Q-%02x(", cmd->cmnd[0])) in2000_queuecommand_lck() 348 * - host_scribble is the pointer to the next cmd in the input queue in2000_queuecommand_lck() 349 * - scsi_done points to the routine we call when a cmd is finished in2000_queuecommand_lck() 352 cmd->host_scribble = NULL; in2000_queuecommand_lck() 353 cmd->scsi_done = done; in2000_queuecommand_lck() 354 cmd->result = 0; in2000_queuecommand_lck() 359 * cmd, and are preserved across disconnect-reselect. This means we in2000_queuecommand_lck() 371 if (scsi_bufflen(cmd)) { in2000_queuecommand_lck() 372 cmd->SCp.buffer = scsi_sglist(cmd); in2000_queuecommand_lck() 373 cmd->SCp.buffers_residual = scsi_sg_count(cmd) - 1; in2000_queuecommand_lck() 374 cmd->SCp.ptr = sg_virt(cmd->SCp.buffer); in2000_queuecommand_lck() 375 cmd->SCp.this_residual = cmd->SCp.buffer->length; in2000_queuecommand_lck() 377 cmd->SCp.buffer = NULL; in2000_queuecommand_lck() 378 cmd->SCp.buffers_residual = 0; in2000_queuecommand_lck() 379 cmd->SCp.ptr = NULL; in2000_queuecommand_lck() 380 cmd->SCp.this_residual = 0; in2000_queuecommand_lck() 382 cmd->SCp.have_data_in = 0; in2000_queuecommand_lck() 403 cmd->SCp.Status = ILLEGAL_STATUS_BYTE; in2000_queuecommand_lck() 410 * Add the cmd to the end of 'input_Q'. Note that REQUEST_SENSE in2000_queuecommand_lck() 415 if (!(hostdata->input_Q) || (cmd->cmnd[0] == REQUEST_SENSE)) { in2000_queuecommand_lck() 416 cmd->host_scribble = (uchar *) hostdata->input_Q; in2000_queuecommand_lck() 417 hostdata->input_Q = cmd; in2000_queuecommand_lck() 420 tmp->host_scribble = (uchar *) cmd; in2000_queuecommand_lck() 427 in2000_execute(cmd->device->host); in2000_queuecommand_lck() 448 Scsi_Cmnd *cmd, *prev; in2000_execute() local 471 cmd = (Scsi_Cmnd *) hostdata->input_Q; in2000_execute() 473 while (cmd) { in2000_execute() 474 if (!(hostdata->busy[cmd->device->id] & (1 << cmd->device->lun))) in2000_execute() 476 prev = cmd; in2000_execute() 477 cmd = (Scsi_Cmnd *) cmd->host_scribble; in2000_execute() 482 if (!cmd) { in2000_execute() 492 prev->host_scribble = cmd->host_scribble; in2000_execute() 494 hostdata->input_Q = (Scsi_Cmnd *) cmd->host_scribble; in2000_execute() 497 hostdata->cmd_cnt[cmd->device->id]++; in2000_execute() 504 if (is_dir_out(cmd)) in2000_execute() 505 write_3393(hostdata, WD_DESTINATION_ID, cmd->device->id); in2000_execute() 507 write_3393(hostdata, WD_DESTINATION_ID, cmd->device->id | DSTID_DPD); in2000_execute() 532 cmd->SCp.phase = 0; /* assume no disconnect */ in2000_execute() 537 if (cmd->device->type == 1) /* tape drive? */ in2000_execute() 544 if ((prev->device->id != cmd->device->id) || (prev->device->lun != cmd->device->lun)) { in2000_execute() 553 cmd->SCp.phase = 1; in2000_execute() 556 hostdata->disc_allowed_cnt[cmd->device->id]++; in2000_execute() 560 write_3393(hostdata, WD_SOURCE_ID, ((cmd->SCp.phase) ? SRCID_ER : 0)); in2000_execute() 562 write_3393(hostdata, WD_TARGET_LUN, cmd->device->lun); in2000_execute() 563 write_3393(hostdata, WD_SYNCHRONOUS_TRANSFER, hostdata->sync_xfer[cmd->device->id]); in2000_execute() 564 hostdata->busy[cmd->device->id] |= (1 << cmd->device->lun); in2000_execute() 566 if ((hostdata->level2 <= L2_NONE) || (hostdata->sync_stat[cmd->device->id] == SS_UNSET)) { in2000_execute() 576 hostdata->selecting = cmd; in2000_execute() 588 if (hostdata->sync_stat[cmd->device->id] == SS_UNSET) { in2000_execute() 589 if (hostdata->sync_off & (1 << cmd->device->id)) in2000_execute() 590 hostdata->sync_stat[cmd->device->id] = SS_SET; in2000_execute() 592 hostdata->sync_stat[cmd->device->id] = SS_FIRST; in2000_execute() 609 hostdata->connected = cmd; in2000_execute() 617 for (i = 0; i < cmd->cmd_len; i++) in2000_execute() 618 write1_io(cmd->cmnd[i], IO_WD_DATA); in2000_execute() 626 write_3393(hostdata, WD_OWN_ID, cmd->cmd_len); in2000_execute() 646 if (!(cmd->SCp.phase)) { in2000_execute() 647 write_3393_count(hostdata, cmd->SCp.this_residual); in2000_execute() 651 if (is_dir_out(cmd)) { in2000_execute() 653 if ((i = cmd->SCp.this_residual) > (IN2000_FIFO_SIZE - 16)) in2000_execute() 655 cmd->SCp.have_data_in = i; /* this much data in fifo */ in2000_execute() 657 sp = (unsigned short *) cmd->SCp.ptr; in2000_execute() 671 if (cmd->SCp.have_data_in <= ((IN2000_FIFO_SIZE - 16) - 32)) { in2000_execute() 690 cmd->SCp.have_data_in = 0; /* nothing transferred yet */ in2000_execute() 707 DB(DB_EXECUTE, printk("%s)EX-2 ", (cmd->SCp.phase) ? "d:" : "")) in2000_execute() 747 static void transfer_bytes(Scsi_Cmnd * cmd, int data_in_dir) transfer_bytes() argument 754 hostdata = (struct IN2000_hostdata *) cmd->device->host->hostdata; transfer_bytes() 764 if (!cmd->SCp.this_residual && cmd->SCp.buffers_residual) { transfer_bytes() 765 ++cmd->SCp.buffer; transfer_bytes() 766 --cmd->SCp.buffers_residual; transfer_bytes() 767 cmd->SCp.this_residual = cmd->SCp.buffer->length; transfer_bytes() 768 cmd->SCp.ptr = sg_virt(cmd->SCp.buffer); transfer_bytes() 773 write_3393(hostdata, WD_SYNCHRONOUS_TRANSFER, hostdata->sync_xfer[cmd->device->id]); transfer_bytes() 774 write_3393_count(hostdata, cmd->SCp.this_residual); transfer_bytes() 784 if ((hostdata->level2 >= L2_DATA) || (hostdata->level2 == L2_BASIC && cmd->SCp.phase == 0)) { transfer_bytes() 791 cmd->SCp.have_data_in = 0; transfer_bytes() 800 if ((hostdata->level2 >= L2_DATA) || (hostdata->level2 == L2_BASIC && cmd->SCp.phase == 0)) { transfer_bytes() 807 sp = (unsigned short *) cmd->SCp.ptr; transfer_bytes() 809 if ((i = cmd->SCp.this_residual) > IN2000_FIFO_SIZE) transfer_bytes() 811 cmd->SCp.have_data_in = i; transfer_bytes() 837 Scsi_Cmnd *patch, *cmd; in2000_intr() local 913 cmd = (Scsi_Cmnd *) hostdata->connected; /* assume we're connected */ in2000_intr() 914 CHECK_NULL(cmd, "fifo_int") in2000_intr() 920 sp = (unsigned short *) (cmd->SCp.ptr + cmd->SCp.have_data_in); in2000_intr() 934 i = sp - (unsigned short *) (cmd->SCp.ptr + cmd->SCp.have_data_in); in2000_intr() 936 cmd->SCp.have_data_in += i; in2000_intr() 953 if (cmd->SCp.this_residual == cmd->SCp.have_data_in) { in2000_intr() 964 sp = (unsigned short *) (cmd->SCp.ptr + cmd->SCp.have_data_in); in2000_intr() 965 i = cmd->SCp.this_residual - cmd->SCp.have_data_in; /* bytes yet to go */ in2000_intr() 973 i = sp - (unsigned short *) (cmd->SCp.ptr + cmd->SCp.have_data_in); in2000_intr() 975 cmd->SCp.have_data_in += i; in2000_intr() 995 cmd = (Scsi_Cmnd *) hostdata->connected; /* assume we're connected */ in2000_intr() 999 if (!cmd && (sr != CSR_RESEL_AM && sr != CSR_TIMEOUT && sr != CSR_SELECT)) { in2000_intr() 1026 sp = (unsigned short *) (cmd->SCp.ptr + cmd->SCp.have_data_in); in2000_intr() 1030 i = (cmd->SCp.this_residual - read_3393_count(hostdata)) - cmd->SCp.have_data_in; in2000_intr() 1044 length = cmd->SCp.this_residual; in2000_intr() 1045 cmd->SCp.this_residual = read_3393_count(hostdata); in2000_intr() 1046 cmd->SCp.ptr += (length - cmd->SCp.this_residual); in2000_intr() 1048 DB(DB_TRANSFER, printk("(%p,%d)", cmd->SCp.ptr, cmd->SCp.this_residual)) in2000_intr() 1054 length = cmd->SCp.this_residual; in2000_intr() 1055 cmd->SCp.this_residual = read_3393_count(hostdata); in2000_intr() 1056 cmd->SCp.ptr += (length - cmd->SCp.this_residual); in2000_intr() 1058 DB(DB_TRANSFER, printk("(%p,%d)", cmd->SCp.ptr, cmd->SCp.this_residual)) in2000_intr() 1072 cmd = (Scsi_Cmnd *) hostdata->selecting; /* get a valid cmd */ in2000_intr() 1073 CHECK_NULL(cmd, "csr_timeout") in2000_intr() 1077 cmd->result = DID_NO_CONNECT << 16; in2000_intr() 1078 hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun); in2000_intr() 1080 cmd->scsi_done(cmd); in2000_intr() 1094 hostdata->connected = cmd = (Scsi_Cmnd *) hostdata->selecting; in2000_intr() 1095 CHECK_NULL(cmd, "csr_select") in2000_intr() 1100 hostdata->outgoing_msg[0] = (0x80 | 0x00 | cmd->device->lun); in2000_intr() 1101 if (cmd->SCp.phase) in2000_intr() 1104 if (hostdata->sync_stat[cmd->device->id] == SS_FIRST) { in2000_intr() 1109 hostdata->sync_stat[cmd->device->id] = SS_WAITING; in2000_intr() 1129 DB(DB_INTR, printk("IN-%d.%d", cmd->SCp.this_residual, cmd->SCp.buffers_residual)) in2000_intr() 1130 transfer_bytes(cmd, DATA_IN_DIR); in2000_intr() 1139 DB(DB_INTR, printk("OUT-%d.%d", cmd->SCp.this_residual, cmd->SCp.buffers_residual)) in2000_intr() 1140 transfer_bytes(cmd, DATA_OUT_DIR); in2000_intr() 1151 DB(DB_INTR, printk("CMND-%02x", cmd->cmnd[0])) in2000_intr() 1152 transfer_pio(cmd->cmnd, cmd->cmd_len, DATA_OUT_DIR, hostdata); in2000_intr() 1162 cmd->SCp.Status = read_1_byte(hostdata); in2000_intr() 1163 DB(DB_INTR, printk("%02x", cmd->SCp.Status)) in2000_intr() 1189 cmd->SCp.Message = msg; in2000_intr() 1218 cmd->device->disconnect = 1; in2000_intr() 1228 if (hostdata->sync_stat[cmd->device->id] == SS_WAITING) in2000_intr() 1229 hostdata->sync_stat[cmd->device->id] = SS_SET; in2000_intr() 1249 if (hostdata->sync_stat[cmd->device->id] != SS_WAITING) { in2000_intr() 1267 hostdata->sync_xfer[cmd->device->id] = calc_sync_xfer(hostdata->default_sx_per / 4, 0); in2000_intr() 1269 hostdata->sync_xfer[cmd->device->id] = id; in2000_intr() 1272 printk("sync_xfer=%02x", hostdata->sync_xfer[cmd->device->id]); in2000_intr() 1274 hostdata->sync_stat[cmd->device->id] = SS_SET; in2000_intr() 1332 cmd->SCp.Message = COMMAND_COMPLETE; in2000_intr() 1334 DB(DB_INTR, printk(":%d.%d", cmd->SCp.Status, lun)) in2000_intr() 1336 hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun); in2000_intr() 1338 if (cmd->SCp.Status == ILLEGAL_STATUS_BYTE) in2000_intr() 1339 cmd->SCp.Status = lun; in2000_intr() 1340 if (cmd->cmnd[0] == REQUEST_SENSE && cmd->SCp.Status != GOOD) in2000_intr() 1341 cmd->result = (cmd->result & 0x00ffff) | (DID_ERROR << 16); in2000_intr() 1343 cmd->result = cmd->SCp.Status | (cmd->SCp.Message << 8); in2000_intr() 1344 cmd->scsi_done(cmd); in2000_intr() 1411 if (cmd == NULL) { in2000_intr() 1421 hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun); in2000_intr() 1423 if (cmd->cmnd[0] == REQUEST_SENSE && cmd->SCp.Status != GOOD) in2000_intr() 1424 cmd->result = (cmd->result & 0x00ffff) | (DID_ERROR << 16); in2000_intr() 1426 cmd->result = cmd->SCp.Status | (cmd->SCp.Message << 8); in2000_intr() 1427 cmd->scsi_done(cmd); in2000_intr() 1445 if (cmd == NULL) { in2000_intr() 1452 hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun); in2000_intr() 1454 DB(DB_INTR, printk(":%d", cmd->SCp.Status)) in2000_intr() 1455 if (cmd->cmnd[0] == REQUEST_SENSE && cmd->SCp.Status != GOOD) in2000_intr() 1456 cmd->result = (cmd->result & 0x00ffff) | (DID_ERROR << 16); in2000_intr() 1458 cmd->result = cmd->SCp.Status | (cmd->SCp.Message << 8); in2000_intr() 1459 cmd->scsi_done(cmd); in2000_intr() 1463 cmd->host_scribble = (uchar *) hostdata->disconnected_Q; in2000_intr() 1464 hostdata->disconnected_Q = cmd; in2000_intr() 1469 hostdata->disc_done_cnt[cmd->device->id]++; in2000_intr() 1495 cmd = (Scsi_Cmnd *) hostdata->selecting; in2000_intr() 1497 hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun); in2000_intr() 1498 cmd->host_scribble = (uchar *) hostdata->input_Q; in2000_intr() 1499 hostdata->input_Q = cmd; in2000_intr() 1505 if (cmd) { in2000_intr() 1507 hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun); in2000_intr() 1508 cmd->host_scribble = (uchar *) hostdata->input_Q; in2000_intr() 1509 hostdata->input_Q = cmd; in2000_intr() 1536 cmd = (Scsi_Cmnd *) hostdata->disconnected_Q; in2000_intr() 1538 while (cmd) { in2000_intr() 1539 if (id == cmd->device->id && lun == cmd->device->lun) in2000_intr() 1541 patch = cmd; in2000_intr() 1542 cmd = (Scsi_Cmnd *) cmd->host_scribble; in2000_intr() 1547 if (!cmd) { in2000_intr() 1555 patch->host_scribble = cmd->host_scribble; in2000_intr() 1557 hostdata->disconnected_Q = (Scsi_Cmnd *) cmd->host_scribble; in2000_intr() 1558 hostdata->connected = cmd; in2000_intr() 1565 if (is_dir_out(cmd)) in2000_intr() 1566 write_3393(hostdata, WD_DESTINATION_ID, cmd->device->id); in2000_intr() 1568 write_3393(hostdata, WD_DESTINATION_ID, cmd->device->id | DSTID_DPD); in2000_intr() 1642 static int in2000_bus_reset(Scsi_Cmnd * cmd) in2000_bus_reset() argument 1649 instance = cmd->device->host; in2000_bus_reset() 1672 cmd->result = DID_RESET << 16; in2000_bus_reset() 1678 static int __in2000_abort(Scsi_Cmnd * cmd) __in2000_abort() argument 1686 instance = cmd->device->host; __in2000_abort() 1690 printk("(asr=%02x,count=%ld,resid=%d,buf_resid=%d,have_data=%d,FC=%02x)- ", READ_AUX_STAT(), read_3393_count(hostdata), cmd->SCp.this_residual, cmd->SCp.buffers_residual, cmd->SCp.have_data_in, read1_io(IO_FIFO_COUNT)); __in2000_abort() 1700 if (tmp == cmd) { __in2000_abort() 1702 prev->host_scribble = cmd->host_scribble; __in2000_abort() 1703 cmd->host_scribble = NULL; __in2000_abort() 1704 cmd->result = DID_ABORT << 16; __in2000_abort() 1706 cmd->scsi_done(cmd); __in2000_abort() 1724 if (hostdata->connected == cmd) { __in2000_abort() 1760 hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun); __in2000_abort() 1763 cmd->result = DID_ABORT << 16; __in2000_abort() 1764 cmd->scsi_done(cmd); __in2000_abort() 1778 if (cmd == tmp) { __in2000_abort() 1799 static int in2000_abort(Scsi_Cmnd * cmd) in2000_abort() argument 1803 spin_lock_irq(cmd->device->host->host_lock); in2000_abort() 1804 rc = __in2000_abort(cmd); in2000_abort() 1805 spin_unlock_irq(cmd->device->host->host_lock); in2000_abort() 2218 Scsi_Cmnd *cmd; in2000_show_info() local 2253 cmd = (Scsi_Cmnd *) hd->connected; in2000_show_info() 2254 seq_printf(m, " %d:%llu(%02x)", cmd->device->id, cmd->device->lun, cmd->cmnd[0]); in2000_show_info() 2259 cmd = (Scsi_Cmnd *) hd->input_Q; in2000_show_info() 2260 while (cmd) { in2000_show_info() 2261 seq_printf(m, " %d:%llu(%02x)", cmd->device->id, cmd->device->lun, cmd->cmnd[0]); in2000_show_info() 2262 cmd = (Scsi_Cmnd *) cmd->host_scribble; in2000_show_info() 2267 cmd = (Scsi_Cmnd *) hd->disconnected_Q; in2000_show_info() 2268 while (cmd) { in2000_show_info() 2269 seq_printf(m, " %d:%llu(%02x)", cmd->device->id, cmd->device->lun, cmd->cmnd[0]); in2000_show_info() 2270 cmd = (Scsi_Cmnd *) cmd->host_scribble; in2000_show_info()
|
H A D | scsi.c | 175 * @cmd: command to release 181 scsi_host_free_command(struct Scsi_Host *shost, struct scsi_cmnd *cmd) scsi_host_free_command() argument 185 if (cmd->prot_sdb) scsi_host_free_command() 186 kmem_cache_free(scsi_sdb_cache, cmd->prot_sdb); scsi_host_free_command() 187 kmem_cache_free(pool->sense_slab, cmd->sense_buffer); scsi_host_free_command() 188 kmem_cache_free(pool->cmd_slab, cmd); scsi_host_free_command() 203 struct scsi_cmnd *cmd; scsi_host_alloc_command() local 205 cmd = kmem_cache_zalloc(pool->cmd_slab, gfp_mask | pool->gfp_mask); scsi_host_alloc_command() 206 if (!cmd) scsi_host_alloc_command() 209 cmd->sense_buffer = kmem_cache_alloc(pool->sense_slab, scsi_host_alloc_command() 211 if (!cmd->sense_buffer) scsi_host_alloc_command() 215 cmd->prot_sdb = kmem_cache_zalloc(scsi_sdb_cache, gfp_mask); scsi_host_alloc_command() 216 if (!cmd->prot_sdb) scsi_host_alloc_command() 220 return cmd; scsi_host_alloc_command() 223 kmem_cache_free(pool->sense_slab, cmd->sense_buffer); scsi_host_alloc_command() 225 kmem_cache_free(pool->cmd_slab, cmd); scsi_host_alloc_command() 241 struct scsi_cmnd *cmd = scsi_host_alloc_command(shost, gfp_mask); __scsi_get_command() local 243 if (unlikely(!cmd)) { __scsi_get_command() 248 cmd = list_entry(shost->free_list.next, __scsi_get_command() 250 list_del_init(&cmd->list); __scsi_get_command() 254 if (cmd) { __scsi_get_command() 257 buf = cmd->sense_buffer; __scsi_get_command() 258 prot = cmd->prot_sdb; __scsi_get_command() 260 memset(cmd, 0, sizeof(*cmd)); __scsi_get_command() 262 cmd->sense_buffer = buf; __scsi_get_command() 263 cmd->prot_sdb = prot; __scsi_get_command() 267 return cmd; __scsi_get_command() 279 struct scsi_cmnd *cmd = __scsi_get_command(dev->host, gfp_mask); scsi_get_command() local 282 if (unlikely(cmd == NULL)) scsi_get_command() 285 cmd->device = dev; scsi_get_command() 286 INIT_LIST_HEAD(&cmd->list); scsi_get_command() 287 INIT_DELAYED_WORK(&cmd->abort_work, scmd_eh_abort_handler); scsi_get_command() 289 list_add_tail(&cmd->list, &dev->cmd_list); scsi_get_command() 291 cmd->jiffies_at_alloc = jiffies; scsi_get_command() 292 return cmd; scsi_get_command() 298 * @cmd: Command to free 300 static void __scsi_put_command(struct Scsi_Host *shost, struct scsi_cmnd *cmd) __scsi_put_command() argument 307 list_add(&cmd->list, &shost->free_list); __scsi_put_command() 308 cmd = NULL; __scsi_put_command() 313 if (likely(cmd != NULL)) __scsi_put_command() 314 scsi_host_free_command(shost, cmd); __scsi_put_command() 319 * @cmd: command block to free 325 void scsi_put_command(struct scsi_cmnd *cmd) scsi_put_command() argument 330 spin_lock_irqsave(&cmd->device->list_lock, flags); scsi_put_command() 331 BUG_ON(list_empty(&cmd->list)); scsi_put_command() 332 list_del_init(&cmd->list); scsi_put_command() 333 spin_unlock_irqrestore(&cmd->device->list_lock, flags); scsi_put_command() 335 BUG_ON(delayed_work_pending(&cmd->abort_work)); scsi_put_command() 337 __scsi_put_command(cmd->device->host, cmd); scsi_put_command() 474 struct scsi_cmnd *cmd; scsi_setup_command_freelist() local 486 cmd = scsi_host_alloc_command(shost, gfp_mask); scsi_setup_command_freelist() 487 if (!cmd) { scsi_setup_command_freelist() 492 list_add(&cmd->list, &shost->free_list); scsi_setup_command_freelist() 510 struct scsi_cmnd *cmd; scsi_destroy_command_freelist() local 512 cmd = list_entry(shost->free_list.next, struct scsi_cmnd, list); scsi_destroy_command_freelist() 513 list_del_init(&cmd->list); scsi_destroy_command_freelist() 514 scsi_host_free_command(shost, cmd); scsi_destroy_command_freelist() 521 void scsi_log_send(struct scsi_cmnd *cmd) scsi_log_send() argument 530 * 2: log opcode + command of all commands + cmd address scsi_log_send() 540 scmd_printk(KERN_INFO, cmd, scsi_log_send() 541 "Send: scmd 0x%p\n", cmd); scsi_log_send() 542 scsi_print_command(cmd); scsi_log_send() 547 void scsi_log_completion(struct scsi_cmnd *cmd, int disposition) scsi_log_completion() argument 566 if (((level > 0) && (cmd->result || disposition != SUCCESS)) || scsi_log_completion() 568 scsi_print_result(cmd, "Done", disposition); scsi_log_completion() 569 scsi_print_command(cmd); scsi_log_completion() 570 if (status_byte(cmd->result) & CHECK_CONDITION) scsi_log_completion() 571 scsi_print_sense(cmd); scsi_log_completion() 573 scmd_printk(KERN_INFO, cmd, scsi_log_completion() 575 atomic_read(&cmd->device->host->host_busy), scsi_log_completion() 576 cmd->device->host->host_failed); scsi_log_completion() 585 * @cmd: command to assign serial number to 590 void scsi_cmd_get_serial(struct Scsi_Host *host, struct scsi_cmnd *cmd) scsi_cmd_get_serial() argument 592 cmd->serial_number = host->cmd_serial_number++; scsi_cmd_get_serial() 593 if (cmd->serial_number == 0) scsi_cmd_get_serial() 594 cmd->serial_number = host->cmd_serial_number++; scsi_cmd_get_serial() 600 * @cmd: the command 606 void scsi_finish_command(struct scsi_cmnd *cmd) scsi_finish_command() argument 608 struct scsi_device *sdev = cmd->device; scsi_finish_command() 631 if (SCSI_SENSE_VALID(cmd)) scsi_finish_command() 632 cmd->result |= (DRIVER_SENSE << 24); scsi_finish_command() 636 "(result %x)\n", cmd->result)); scsi_finish_command() 638 good_bytes = scsi_bufflen(cmd); scsi_finish_command() 639 if (cmd->request->cmd_type != REQ_TYPE_BLOCK_PC) { scsi_finish_command() 641 drv = scsi_cmd_to_driver(cmd); scsi_finish_command() 643 good_bytes = drv->done(cmd); scsi_finish_command() 651 good_bytes -= scsi_get_resid(cmd); scsi_finish_command() 653 scsi_io_completion(cmd, good_bytes); scsi_finish_command() 756 unsigned char cmd[16]; scsi_vpd_inquiry() local 761 cmd[0] = INQUIRY; scsi_vpd_inquiry() 762 cmd[1] = 1; /* EVPD */ scsi_vpd_inquiry() 763 cmd[2] = page; scsi_vpd_inquiry() 764 cmd[3] = len >> 8; scsi_vpd_inquiry() 765 cmd[4] = len & 0xff; scsi_vpd_inquiry() 766 cmd[5] = 0; /* Control byte */ scsi_vpd_inquiry() 772 result = scsi_execute_req(sdev, cmd, DMA_FROM_DEVICE, buffer, scsi_vpd_inquiry() 938 unsigned char cmd[16]; scsi_report_opcode() local 945 memset(cmd, 0, 16); scsi_report_opcode() 946 cmd[0] = MAINTENANCE_IN; scsi_report_opcode() 947 cmd[1] = MI_REPORT_SUPPORTED_OPERATION_CODES; scsi_report_opcode() 948 cmd[2] = 1; /* One command format */ scsi_report_opcode() 949 cmd[3] = opcode; scsi_report_opcode() 950 put_unaligned_be32(len, &cmd[6]); scsi_report_opcode() 953 result = scsi_execute_req(sdev, cmd, DMA_FROM_DEVICE, buffer, len, scsi_report_opcode()
|
H A D | sr_ioctl.c | 53 cgc.cmd[0] = GPCMD_READ_TOC_PMA_ATIP; sr_read_tochdr() 54 cgc.cmd[8] = 12; /* LSB of length */ sr_read_tochdr() 83 cgc.cmd[0] = GPCMD_READ_TOC_PMA_ATIP; sr_read_tocentry() 84 cgc.cmd[1] |= (tocentry->cdte_format == CDROM_MSF) ? 0x02 : 0; sr_read_tocentry() 85 cgc.cmd[6] = tocentry->cdte_track; sr_read_tocentry() 86 cgc.cmd[8] = 12; /* LSB of length */ sr_read_tocentry() 145 cgc.cmd[0] = GPCMD_PLAY_AUDIO_MSF; sr_fake_playtrkind() 146 cgc.cmd[3] = trk0_te.cdte_addr.msf.minute; sr_fake_playtrkind() 147 cgc.cmd[4] = trk0_te.cdte_addr.msf.second; sr_fake_playtrkind() 148 cgc.cmd[5] = trk0_te.cdte_addr.msf.frame; sr_fake_playtrkind() 149 cgc.cmd[6] = trk1_te.cdte_addr.msf.minute; sr_fake_playtrkind() 150 cgc.cmd[7] = trk1_te.cdte_addr.msf.second; sr_fake_playtrkind() 151 cgc.cmd[8] = trk1_te.cdte_addr.msf.frame; sr_fake_playtrkind() 167 cgc.cmd[0] = GPCMD_PLAYAUDIO_TI; sr_play_trkind() 168 cgc.cmd[4] = ti->cdti_trk0; sr_play_trkind() 169 cgc.cmd[5] = ti->cdti_ind0; sr_play_trkind() 170 cgc.cmd[7] = ti->cdti_trk1; sr_play_trkind() 171 cgc.cmd[8] = ti->cdti_ind1; sr_play_trkind() 209 result = scsi_execute(SDev, cgc->cmd, cgc->data_direction, sr_do_ioctl() 279 cgc.cmd[0] = GPCMD_START_STOP_UNIT; sr_tray_move() 280 cgc.cmd[4] = (pos == 0) ? 0x03 /* close */ : 0x02 /* eject */ ; sr_tray_move() 404 cgc.cmd[0] = GPCMD_READ_SUBCHANNEL; sr_get_mcn() 405 cgc.cmd[2] = 0x40; /* I do want the subchannel info */ sr_get_mcn() 406 cgc.cmd[3] = 0x02; /* Give me medium catalog number info */ sr_get_mcn() 407 cgc.cmd[8] = 24; sr_get_mcn() 437 cgc.cmd[0] = GPCMD_SET_SPEED; /* SET CD SPEED */ sr_select_speed() 438 cgc.cmd[2] = (speed >> 8) & 0xff; /* MSB for speed (in kbytes/sec) */ sr_select_speed() 439 cgc.cmd[3] = speed & 0xff; /* LSB */ sr_select_speed() 454 int sr_audio_ioctl(struct cdrom_device_info *cdi, unsigned int cmd, void *arg) sr_audio_ioctl() argument 456 switch (cmd) { sr_audio_ioctl() 492 cgc.cmd[0] = GPCMD_READ_CD; /* READ_CD */ sr_read_cd() 493 cgc.cmd[1] = ((format & 7) << 2); sr_read_cd() 494 cgc.cmd[2] = (unsigned char) (lba >> 24) & 0xff; sr_read_cd() 495 cgc.cmd[3] = (unsigned char) (lba >> 16) & 0xff; sr_read_cd() 496 cgc.cmd[4] = (unsigned char) (lba >> 8) & 0xff; sr_read_cd() 497 cgc.cmd[5] = (unsigned char) lba & 0xff; sr_read_cd() 498 cgc.cmd[8] = 1; sr_read_cd() 501 cgc.cmd[9] = 0x58; sr_read_cd() 504 cgc.cmd[9] = 0x78; sr_read_cd() 507 cgc.cmd[9] = 0xf8; sr_read_cd() 510 cgc.cmd[9] = 0x10; sr_read_cd() 550 cgc.cmd[0] = GPCMD_READ_10; sr_read_sector() 551 cgc.cmd[2] = (unsigned char) (lba >> 24) & 0xff; sr_read_sector() 552 cgc.cmd[3] = (unsigned char) (lba >> 16) & 0xff; sr_read_sector() 553 cgc.cmd[4] = (unsigned char) (lba >> 8) & 0xff; sr_read_sector() 554 cgc.cmd[5] = (unsigned char) lba & 0xff; sr_read_sector() 555 cgc.cmd[8] = 1; sr_read_sector()
|
H A D | atari_NCR5380.c | 230 #define NEXT(cmd) ((struct scsi_cmnd *)(cmd)->host_scribble) 231 #define SET_NEXT(cmd,next) ((cmd)->host_scribble = (void *)(next)) 232 #define NEXTADDR(cmd) ((struct scsi_cmnd **)&(cmd)->host_scribble) 235 #define H_NO(cmd) (cmd)->device->host->host_no 304 static int is_lun_busy(struct scsi_cmnd *cmd, int should_be_tagged) is_lun_busy() argument 306 u8 lun = cmd->device->lun; is_lun_busy() 307 SETUP_HOSTDATA(cmd->device->host); is_lun_busy() 309 if (hostdata->busy[cmd->device->id] & (1 << lun)) is_lun_busy() 313 !cmd->device->tagged_supported) is_lun_busy() 315 if (hostdata->TagAlloc[scmd_id(cmd)][lun].nr_allocated >= is_lun_busy() 316 hostdata->TagAlloc[scmd_id(cmd)][lun].queue_size) { is_lun_busy() 318 H_NO(cmd), cmd->device->id, lun); is_lun_busy() 330 static void cmd_get_tag(struct scsi_cmnd *cmd, int should_be_tagged) cmd_get_tag() argument 332 u8 lun = cmd->device->lun; cmd_get_tag() 333 SETUP_HOSTDATA(cmd->device->host); cmd_get_tag() 340 !cmd->device->tagged_supported) { cmd_get_tag() 341 cmd->tag = TAG_NONE; cmd_get_tag() 342 hostdata->busy[cmd->device->id] |= (1 << lun); cmd_get_tag() 344 "command\n", H_NO(cmd), cmd->device->id, lun); cmd_get_tag() 346 struct tag_alloc *ta = &hostdata->TagAlloc[scmd_id(cmd)][lun]; cmd_get_tag() 348 cmd->tag = find_first_zero_bit(ta->allocated, MAX_TAGS); cmd_get_tag() 349 set_bit(cmd->tag, ta->allocated); cmd_get_tag() 353 H_NO(cmd), cmd->tag, cmd->device->id, cmd_get_tag() 359 /* Mark the tag of command 'cmd' as free, or in case of an untagged command, 363 static void cmd_free_tag(struct scsi_cmnd *cmd) cmd_free_tag() argument 365 u8 lun = cmd->device->lun; cmd_free_tag() 366 SETUP_HOSTDATA(cmd->device->host); cmd_free_tag() 368 if (cmd->tag == TAG_NONE) { cmd_free_tag() 369 hostdata->busy[cmd->device->id] &= ~(1 << lun); cmd_free_tag() 370 dprintk(NDEBUG_TAGS, "scsi%d: target %d lun %d untagged cmd finished\n", cmd_free_tag() 371 H_NO(cmd), cmd->device->id, lun); cmd_free_tag() 372 } else if (cmd->tag >= MAX_TAGS) { cmd_free_tag() 374 H_NO(cmd), cmd->tag); cmd_free_tag() 376 struct tag_alloc *ta = &hostdata->TagAlloc[scmd_id(cmd)][lun]; cmd_free_tag() 377 clear_bit(cmd->tag, ta->allocated); cmd_free_tag() 380 H_NO(cmd), cmd->tag, cmd->device->id, lun); cmd_free_tag() 406 * Function: void merge_contiguous_buffers( struct scsi_cmnd *cmd ) 412 * Parameters: struct scsi_cmnd *cmd 417 static void merge_contiguous_buffers(struct scsi_cmnd *cmd) merge_contiguous_buffers() argument 422 unsigned long oldlen = cmd->SCp.this_residual; merge_contiguous_buffers() 426 for (endaddr = virt_to_phys(cmd->SCp.ptr + cmd->SCp.this_residual - 1) + 1; merge_contiguous_buffers() 427 cmd->SCp.buffers_residual && merge_contiguous_buffers() 428 virt_to_phys(sg_virt(&cmd->SCp.buffer[1])) == endaddr;) { merge_contiguous_buffers() 430 page_address(sg_page(&cmd->SCp.buffer[1])), endaddr); merge_contiguous_buffers() 434 ++cmd->SCp.buffer; merge_contiguous_buffers() 435 --cmd->SCp.buffers_residual; merge_contiguous_buffers() 436 cmd->SCp.this_residual += cmd->SCp.buffer->length; merge_contiguous_buffers() 437 endaddr += cmd->SCp.buffer->length; merge_contiguous_buffers() 440 if (oldlen != cmd->SCp.this_residual) merge_contiguous_buffers() 442 cnt, cmd->SCp.ptr, cmd->SCp.this_residual); merge_contiguous_buffers() 449 * @cmd: command block to set up 454 static inline void initialize_SCp(struct scsi_cmnd *cmd) initialize_SCp() argument 461 if (scsi_bufflen(cmd)) { initialize_SCp() 462 cmd->SCp.buffer = scsi_sglist(cmd); initialize_SCp() 463 cmd->SCp.buffers_residual = scsi_sg_count(cmd) - 1; initialize_SCp() 464 cmd->SCp.ptr = sg_virt(cmd->SCp.buffer); initialize_SCp() 465 cmd->SCp.this_residual = cmd->SCp.buffer->length; initialize_SCp() 469 merge_contiguous_buffers(cmd); initialize_SCp() 471 cmd->SCp.buffer = NULL; initialize_SCp() 472 cmd->SCp.buffers_residual = 0; initialize_SCp() 473 cmd->SCp.ptr = NULL; initialize_SCp() 474 cmd->SCp.this_residual = 0; initialize_SCp() 663 static void lprint_Scsi_Cmnd(struct scsi_cmnd *cmd) lprint_Scsi_Cmnd() argument 668 H_NO(cmd), cmd->device->id, cmd->device->lun); lprint_Scsi_Cmnd() 670 command = cmd->cmnd; lprint_Scsi_Cmnd() 708 static void show_Scsi_Cmnd(struct scsi_cmnd *cmd, struct seq_file *m) show_Scsi_Cmnd() argument 713 H_NO(cmd), cmd->device->id, cmd->device->lun); show_Scsi_Cmnd() 715 command = cmd->cmnd; show_Scsi_Cmnd() 820 * @cmd: SCSI command 822 * cmd is added to the per instance issue_queue, with minor 823 * twiddling done to the host specific fields of cmd. If the 828 struct scsi_cmnd *cmd) NCR5380_queue_command() 835 switch (cmd->cmnd[0]) { NCR5380_queue_command() 839 H_NO(cmd)); NCR5380_queue_command() 840 cmd->result = (DID_ERROR << 16); NCR5380_queue_command() 841 cmd->scsi_done(cmd); NCR5380_queue_command() 851 SET_NEXT(cmd, NULL); NCR5380_queue_command() 852 cmd->result = 0; NCR5380_queue_command() 855 * Insert the cmd into the issue queue. Note that REQUEST SENSE NCR5380_queue_command() 879 * Insert the cmd into the issue queue. Note that REQUEST SENSE NCR5380_queue_command() 885 if (!(hostdata->issue_queue) || (cmd->cmnd[0] == REQUEST_SENSE)) { NCR5380_queue_command() 886 LIST(cmd, hostdata->issue_queue); NCR5380_queue_command() 887 SET_NEXT(cmd, hostdata->issue_queue); NCR5380_queue_command() 888 hostdata->issue_queue = cmd; NCR5380_queue_command() 893 LIST(cmd, tmp); NCR5380_queue_command() 894 SET_NEXT(tmp, cmd); NCR5380_queue_command() 898 dprintk(NDEBUG_QUEUES, "scsi%d: command added to %s of queue\n", H_NO(cmd), NCR5380_queue_command() 899 (cmd->cmnd[0] == REQUEST_SENSE) ? "head" : "tail"); NCR5380_queue_command() 1116 "no connected cmd\n", HOSTNO); NCR5380_dma_complete() 1280 * struct scsi_cmnd *cmd) 1287 * target lives, cmd - SCSI command to execute. 1300 * instance->connected will be set to cmd. 1303 * If failed (no target) : cmd->scsi_done() will be called, and the 1304 * cmd->result host byte set to DID_BAD_TARGET. 1307 static int NCR5380_select(struct Scsi_Host *instance, struct scsi_cmnd *cmd) NCR5380_select() argument 1429 NCR5380_write(OUTPUT_DATA_REG, (hostdata->id_mask | (1 << cmd->device->id))); NCR5380_select() 1482 dprintk(NDEBUG_SELECTION, "scsi%d: selecting target %d\n", HOSTNO, cmd->device->id); NCR5380_select() 1534 if (hostdata->targets_present & (1 << cmd->device->id)) { NCR5380_select() 1542 cmd->result = DID_BAD_TARGET << 16; NCR5380_select() 1544 cmd_free_tag(cmd); NCR5380_select() 1546 cmd->scsi_done(cmd); NCR5380_select() 1553 hostdata->targets_present |= (1 << cmd->device->id); NCR5380_select() 1575 HOSTNO, cmd->device->id); NCR5380_select() 1576 tmp[0] = IDENTIFY(1, cmd->device->lun); NCR5380_select() 1579 if (cmd->tag != TAG_NONE) { NCR5380_select() 1581 tmp[2] = cmd->tag; NCR5380_select() 1587 cmd->tag = 0; NCR5380_select() 1596 hostdata->connected = cmd; NCR5380_select() 1598 hostdata->busy[cmd->device->id] |= (1 << cmd->device->lun); NCR5380_select() 1604 initialize_SCp(cmd); NCR5380_select() 1956 struct scsi_cmnd *cmd = (struct scsi_cmnd *) hostdata->connected; NCR5380_information_transfer() local 1977 if (!cmd->SCp.this_residual && cmd->SCp.buffers_residual) { NCR5380_information_transfer() 1978 count = cmd->SCp.buffer->length; NCR5380_information_transfer() 1979 d = sg_virt(cmd->SCp.buffer); NCR5380_information_transfer() 1981 count = cmd->SCp.this_residual; NCR5380_information_transfer() 1982 d = cmd->SCp.ptr; NCR5380_information_transfer() 1985 if ((count >= DMA_MIN_SIZE) && (sun3_dma_setup_done != cmd)) { NCR5380_information_transfer() 1986 if (cmd->request->cmd_type == REQ_TYPE_FS) { NCR5380_information_transfer() 1988 rq_data_dir(cmd->request)); NCR5380_information_transfer() 1989 sun3_dma_setup_done = cmd; NCR5380_information_transfer() 2019 cmd->result = DID_ERROR << 16; NCR5380_information_transfer() 2020 cmd->scsi_done(cmd); NCR5380_information_transfer() 2029 if (!cmd->SCp.this_residual && cmd->SCp.buffers_residual) { NCR5380_information_transfer() 2030 ++cmd->SCp.buffer; NCR5380_information_transfer() 2031 --cmd->SCp.buffers_residual; NCR5380_information_transfer() 2032 cmd->SCp.this_residual = cmd->SCp.buffer->length; NCR5380_information_transfer() 2033 cmd->SCp.ptr = sg_virt(cmd->SCp.buffer); NCR5380_information_transfer() 2037 merge_contiguous_buffers(cmd); NCR5380_information_transfer() 2039 HOSTNO, cmd->SCp.this_residual, NCR5380_information_transfer() 2040 cmd->SCp.buffers_residual); NCR5380_information_transfer() 2061 !cmd->device->borken && NCR5380_information_transfer() 2063 (transfersize = NCR5380_dma_xfer_len(instance, cmd, phase)) >= DMA_MIN_SIZE) { NCR5380_information_transfer() 2065 cmd->SCp.phase = phase; NCR5380_information_transfer() 2067 &len, (unsigned char **)&cmd->SCp.ptr)) { NCR5380_information_transfer() 2072 scmd_printk(KERN_INFO, cmd, NCR5380_information_transfer() 2074 cmd->device->borken = 1; NCR5380_information_transfer() 2079 cmd->result = DID_ERROR << 16; NCR5380_information_transfer() 2080 cmd->scsi_done(cmd); NCR5380_information_transfer() 2091 cmd->SCp.this_residual -= transfersize - len; NCR5380_information_transfer() 2097 (int *)&cmd->SCp.this_residual, NCR5380_information_transfer() 2098 (unsigned char **)&cmd->SCp.ptr); NCR5380_information_transfer() 2101 if (sun3_dma_setup_done == cmd) NCR5380_information_transfer() 2110 cmd->SCp.Message = tmp; NCR5380_information_transfer() 2130 "complete.\n", HOSTNO, cmd->device->id, cmd->device->lun); NCR5380_information_transfer() 2140 if (!cmd->next_link) { NCR5380_information_transfer() 2143 HOSTNO, cmd->device->id, cmd->device->lun); NCR5380_information_transfer() 2149 initialize_SCp(cmd->next_link); NCR5380_information_transfer() 2152 cmd->next_link->tag = cmd->tag; NCR5380_information_transfer() 2153 cmd->result = cmd->SCp.Status | (cmd->SCp.Message << 8); NCR5380_information_transfer() 2156 HOSTNO, cmd->device->id, cmd->device->lun); NCR5380_information_transfer() 2157 cmd->scsi_done(cmd); NCR5380_information_transfer() 2158 cmd = hostdata->connected; NCR5380_information_transfer() 2166 "completed\n", HOSTNO, cmd->device->id, cmd->device->lun); NCR5380_information_transfer() 2172 cmd_free_tag(cmd); NCR5380_information_transfer() 2173 if (status_byte(cmd->SCp.Status) == QUEUE_FULL) { NCR5380_information_transfer() 2182 struct tag_alloc *ta = &hostdata->TagAlloc[scmd_id(cmd)][cmd->device->lun]; NCR5380_information_transfer() 2185 HOSTNO, cmd->device->id, cmd->device->lun, NCR5380_information_transfer() 2191 hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun); NCR5380_information_transfer() 2212 if (cmd->cmnd[0] != REQUEST_SENSE) NCR5380_information_transfer() 2213 cmd->result = cmd->SCp.Status | (cmd->SCp.Message << 8); NCR5380_information_transfer() 2214 else if (status_byte(cmd->SCp.Status) != GOOD) NCR5380_information_transfer() 2215 cmd->result = (cmd->result & 0x00ffff) | (DID_ERROR << 16); NCR5380_information_transfer() 2217 if ((cmd->cmnd[0] == REQUEST_SENSE) && NCR5380_information_transfer() 2219 scsi_eh_restore_cmnd(cmd, &hostdata->ses); NCR5380_information_transfer() 2223 if ((cmd->cmnd[0] != REQUEST_SENSE) && NCR5380_information_transfer() 2224 (status_byte(cmd->SCp.Status) == CHECK_CONDITION)) { NCR5380_information_transfer() 2225 scsi_eh_prep_cmnd(cmd, &hostdata->ses, NULL, 0, ~0); NCR5380_information_transfer() 2229 LIST(cmd,hostdata->issue_queue); NCR5380_information_transfer() 2230 SET_NEXT(cmd, hostdata->issue_queue); NCR5380_information_transfer() 2231 hostdata->issue_queue = (struct scsi_cmnd *) cmd; NCR5380_information_transfer() 2233 "issue queue\n", H_NO(cmd)); NCR5380_information_transfer() 2235 cmd->scsi_done(cmd); NCR5380_information_transfer() 2274 cmd->device->tagged_supported = 0; NCR5380_information_transfer() 2275 hostdata->busy[cmd->device->id] |= (1 << cmd->device->lun); NCR5380_information_transfer() 2276 cmd->tag = TAG_NONE; NCR5380_information_transfer() 2280 HOSTNO, cmd->device->id, cmd->device->lun); NCR5380_information_transfer() 2288 cmd->device->disconnect = 1; NCR5380_information_transfer() 2289 LIST(cmd,hostdata->disconnected_queue); NCR5380_information_transfer() 2290 SET_NEXT(cmd, hostdata->disconnected_queue); NCR5380_information_transfer() 2292 hostdata->disconnected_queue = cmd; NCR5380_information_transfer() 2297 cmd->device->id, cmd->device->lun); NCR5380_information_transfer() 2398 scmd_printk(KERN_INFO, cmd, NCR5380_information_transfer() 2402 scmd_printk(KERN_INFO, cmd, NCR5380_information_transfer() 2419 cmd_free_tag(cmd); NCR5380_information_transfer() 2421 hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun); NCR5380_information_transfer() 2424 cmd->result = DID_ERROR << 16; NCR5380_information_transfer() 2428 cmd->scsi_done(cmd); NCR5380_information_transfer() 2434 len = cmd->cmd_len; NCR5380_information_transfer() 2435 data = cmd->cmnd; NCR5380_information_transfer() 2447 cmd->SCp.Status = tmp; NCR5380_information_transfer() 2654 * Function : int NCR5380_abort (struct scsi_cmnd *cmd) 2658 * Inputs : cmd - the scsi_cmnd to abort, code - code to set the 2671 int NCR5380_abort(struct scsi_cmnd *cmd) NCR5380_abort() argument 2673 struct Scsi_Host *instance = cmd->device->host; NCR5380_abort() 2678 scmd_printk(KERN_NOTICE, cmd, "aborting command\n"); NCR5380_abort() 2695 if (hostdata->connected == cmd) { NCR5380_abort() 2718 cmd->result = DID_ABORT << 16; NCR5380_abort() 2720 cmd_free_tag(cmd); NCR5380_abort() 2722 hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun); NCR5380_abort() 2726 cmd->scsi_done(cmd); NCR5380_abort() 2743 if (cmd == tmp) { NCR5380_abort() 2803 if (cmd == tmp) { NCR5380_abort() 2807 if (NCR5380_select(instance, cmd)) NCR5380_abort() 2818 if (cmd == tmp) { NCR5380_abort() 2830 hostdata->busy[cmd->device->id] &= ~(1 << cmd->device->lun); NCR5380_abort() 2865 * Function : int NCR5380_reset (struct scsi_cmnd *cmd) 2873 static int NCR5380_bus_reset(struct scsi_cmnd *cmd) NCR5380_bus_reset() argument 2875 struct Scsi_Host *instance = cmd->device->host; NCR5380_bus_reset() 2904 dprintk(NDEBUG_ABORT, "scsi%d: reset aborted issued command(s)\n", H_NO(cmd)); NCR5380_bus_reset() 2906 dprintk(NDEBUG_ABORT, "scsi%d: reset aborted a connected command\n", H_NO(cmd)); NCR5380_bus_reset() 2908 dprintk(NDEBUG_ABORT, "scsi%d: reset aborted disconnected command(s)\n", H_NO(cmd)); NCR5380_bus_reset() 827 NCR5380_queue_command(struct Scsi_Host *instance, struct scsi_cmnd *cmd) NCR5380_queue_command() argument
|
H A D | vmw_pvscsi.c | 60 struct scsi_cmnd *cmd; member in struct:pvscsi_ctx 160 pvscsi_find_context(const struct pvscsi_adapter *adapter, struct scsi_cmnd *cmd) pvscsi_find_context() argument 166 if (ctx->cmd == cmd) pvscsi_find_context() 173 pvscsi_acquire_context(struct pvscsi_adapter *adapter, struct scsi_cmnd *cmd) pvscsi_acquire_context() argument 181 ctx->cmd = cmd; pvscsi_acquire_context() 190 ctx->cmd = NULL; pvscsi_release_context() 251 u32 cmd, const void *desc, size_t len) pvscsi_write_cmd_desc() 257 pvscsi_reg_write(adapter, PVSCSI_REG_OFFSET_COMMAND, cmd); pvscsi_write_cmd_desc() 266 struct PVSCSICmdDescAbortCmd cmd = { 0 }; pvscsi_abort_cmd() local 268 cmd.target = ctx->cmd->device->id; pvscsi_abort_cmd() 269 cmd.context = pvscsi_map_context(adapter, ctx); pvscsi_abort_cmd() 271 pvscsi_write_cmd_desc(adapter, PVSCSI_CMD_ABORT_CMD, &cmd, sizeof(cmd)); pvscsi_abort_cmd() 322 struct PVSCSICmdDescResetDevice cmd = { 0 }; ll_device_reset() local 326 cmd.target = target; ll_device_reset() 329 &cmd, sizeof(cmd)); ll_device_reset() 353 struct pvscsi_ctx *ctx, struct scsi_cmnd *cmd, pvscsi_map_buffers() 357 unsigned bufflen = scsi_bufflen(cmd); pvscsi_map_buffers() 365 sg = scsi_sglist(cmd); pvscsi_map_buffers() 366 count = scsi_sg_count(cmd); pvscsi_map_buffers() 368 int segs = scsi_dma_map(cmd); pvscsi_map_buffers() 384 cmd->sc_data_direction); pvscsi_map_buffers() 392 struct scsi_cmnd *cmd; pvscsi_unmap_buffers() local 395 cmd = ctx->cmd; pvscsi_unmap_buffers() 396 bufflen = scsi_bufflen(cmd); pvscsi_unmap_buffers() 399 unsigned count = scsi_sg_count(cmd); pvscsi_unmap_buffers() 402 scsi_dma_unmap(cmd); pvscsi_unmap_buffers() 410 cmd->sc_data_direction); pvscsi_unmap_buffers() 412 if (cmd->sense_buffer) pvscsi_unmap_buffers() 463 struct PVSCSICmdDescSetupRings cmd = { 0 }; pvscsi_setup_all_rings() local 467 cmd.ringsStatePPN = adapter->ringStatePA >> PAGE_SHIFT; pvscsi_setup_all_rings() 468 cmd.reqRingNumPages = adapter->req_pages; pvscsi_setup_all_rings() 469 cmd.cmpRingNumPages = adapter->cmp_pages; pvscsi_setup_all_rings() 473 cmd.reqRingPPNs[i] = base >> PAGE_SHIFT; pvscsi_setup_all_rings() 479 cmd.cmpRingPPNs[i] = base >> PAGE_SHIFT; pvscsi_setup_all_rings() 488 &cmd, sizeof(cmd)); pvscsi_setup_all_rings() 522 struct scsi_cmnd *cmd; pvscsi_complete_request() local 528 cmd = ctx->cmd; pvscsi_complete_request() 535 * the request completed and swallow the actual cmd completion pvscsi_complete_request() 543 cmd->result = 0; pvscsi_complete_request() 548 cmd->result = (DID_OK << 16) | sdstat; pvscsi_complete_request() 549 if (sdstat == SAM_STAT_CHECK_CONDITION && cmd->sense_buffer) pvscsi_complete_request() 550 cmd->result |= (DRIVER_SENSE << 24); pvscsi_complete_request() 557 cmd->result = (DID_OK << 16); pvscsi_complete_request() 563 scsi_set_resid(cmd, scsi_bufflen(cmd) - e->dataLen); pvscsi_complete_request() 564 cmd->result = (DID_ERROR << 16); pvscsi_complete_request() 569 cmd->result = (DID_BAD_TARGET << 16); pvscsi_complete_request() 575 cmd->result = (DRIVER_INVALID << 24); pvscsi_complete_request() 586 cmd->result |= (DID_ERROR << 16); pvscsi_complete_request() 592 cmd->result = (DID_RESET << 16); pvscsi_complete_request() 596 cmd->result = (DID_ABORT << 16); pvscsi_complete_request() 600 cmd->result = (DID_PARITY << 16); pvscsi_complete_request() 604 cmd->result = (DID_ERROR << 16); pvscsi_complete_request() 605 scmd_printk(KERN_DEBUG, cmd, pvscsi_complete_request() 610 dev_dbg(&cmd->device->sdev_gendev, pvscsi_complete_request() 611 "cmd=%p %x ctx=%p result=0x%x status=0x%x,%x\n", pvscsi_complete_request() 612 cmd, cmd->cmnd[0], ctx, cmd->result, btstat, sdstat); pvscsi_complete_request() 614 cmd->scsi_done(cmd); pvscsi_complete_request() 656 struct pvscsi_ctx *ctx, struct scsi_cmnd *cmd) pvscsi_queue_ring() 664 sdev = cmd->device; pvscsi_queue_ring() 676 scmd_printk(KERN_ERR, cmd, "vmw_pvscsi: " pvscsi_queue_ring() 689 if (cmd->sense_buffer) { pvscsi_queue_ring() 690 ctx->sensePA = pci_map_single(adapter->dev, cmd->sense_buffer, pvscsi_queue_ring() 699 e->cdbLen = cmd->cmd_len; pvscsi_queue_ring() 701 memcpy(e->cdb, cmd->cmnd, e->cdbLen); pvscsi_queue_ring() 705 if (cmd->sc_data_direction == DMA_FROM_DEVICE) pvscsi_queue_ring() 707 else if (cmd->sc_data_direction == DMA_TO_DEVICE) pvscsi_queue_ring() 709 else if (cmd->sc_data_direction == DMA_NONE) pvscsi_queue_ring() 714 pvscsi_map_buffers(adapter, ctx, cmd, e); pvscsi_queue_ring() 725 static int pvscsi_queue_lck(struct scsi_cmnd *cmd, void (*done)(struct scsi_cmnd *)) pvscsi_queue_lck() argument 727 struct Scsi_Host *host = cmd->device->host; pvscsi_queue_lck() 734 ctx = pvscsi_acquire_context(adapter, cmd); pvscsi_queue_lck() 735 if (!ctx || pvscsi_queue_ring(adapter, ctx, cmd) != 0) { pvscsi_queue_lck() 742 cmd->scsi_done = done; pvscsi_queue_lck() 744 dev_dbg(&cmd->device->sdev_gendev, pvscsi_queue_lck() 745 "queued cmd %p, ctx %p, op=%x\n", cmd, ctx, cmd->cmnd[0]); pvscsi_queue_lck() 749 pvscsi_kick_io(adapter, cmd->cmnd[0]); pvscsi_queue_lck() 756 static int pvscsi_abort(struct scsi_cmnd *cmd) pvscsi_abort() argument 758 struct pvscsi_adapter *adapter = shost_priv(cmd->device->host); pvscsi_abort() 764 scmd_printk(KERN_DEBUG, cmd, "task abort on host %u, %p\n", pvscsi_abort() 765 adapter->host->host_no, cmd); pvscsi_abort() 779 ctx = pvscsi_find_context(adapter, cmd); pvscsi_abort() 781 scmd_printk(KERN_DEBUG, cmd, "Failed to abort cmd %p\n", cmd); pvscsi_abort() 804 scmd_printk(KERN_DEBUG, cmd, pvscsi_abort() 805 "Failed to get completion for aborted cmd %p\n", pvscsi_abort() 806 cmd); pvscsi_abort() 813 cmd->result = (DID_ABORT << 16); pvscsi_abort() 814 cmd->scsi_done(cmd); pvscsi_abort() 833 struct scsi_cmnd *cmd = ctx->cmd; pvscsi_reset_all() local 834 if (cmd) { pvscsi_reset_all() 835 scmd_printk(KERN_ERR, cmd, pvscsi_reset_all() 836 "Forced reset on cmd %p\n", cmd); pvscsi_reset_all() 839 cmd->result = (DID_RESET << 16); pvscsi_reset_all() 840 cmd->scsi_done(cmd); pvscsi_reset_all() 845 static int pvscsi_host_reset(struct scsi_cmnd *cmd) pvscsi_host_reset() argument 847 struct Scsi_Host *host = cmd->device->host; pvscsi_host_reset() 852 scmd_printk(KERN_INFO, cmd, "SCSI Host reset\n"); pvscsi_host_reset() 899 static int pvscsi_bus_reset(struct scsi_cmnd *cmd) pvscsi_bus_reset() argument 901 struct Scsi_Host *host = cmd->device->host; pvscsi_bus_reset() 905 scmd_printk(KERN_INFO, cmd, "SCSI Bus reset\n"); pvscsi_bus_reset() 924 static int pvscsi_device_reset(struct scsi_cmnd *cmd) pvscsi_device_reset() argument 926 struct Scsi_Host *host = cmd->device->host; pvscsi_device_reset() 930 scmd_printk(KERN_INFO, cmd, "SCSI device reset on scsi%u:%u\n", pvscsi_device_reset() 931 host->host_no, cmd->device->id); pvscsi_device_reset() 941 ll_device_reset(adapter, cmd->device->id); pvscsi_device_reset() 1278 struct PVSCSICmdDescConfigCmd cmd; pvscsi_get_max_targets() local 1295 cmd.configPageAddress = ((u64)PVSCSI_CONFIG_CONTROLLER_ADDRESS) << 32; pvscsi_get_max_targets() 1296 cmd.configPageNum = PVSCSI_CONFIG_PAGE_CONTROLLER; pvscsi_get_max_targets() 1297 cmd.cmpAddr = configPagePA; pvscsi_get_max_targets() 1298 cmd._pad = 0; pvscsi_get_max_targets() 1310 pvscsi_write_cmd_desc(adapter, PVSCSI_CMD_CONFIG, &cmd, sizeof cmd); pvscsi_get_max_targets() 250 pvscsi_write_cmd_desc(const struct pvscsi_adapter *adapter, u32 cmd, const void *desc, size_t len) pvscsi_write_cmd_desc() argument 352 pvscsi_map_buffers(struct pvscsi_adapter *adapter, struct pvscsi_ctx *ctx, struct scsi_cmnd *cmd, struct PVSCSIRingReqDesc *e) pvscsi_map_buffers() argument 655 pvscsi_queue_ring(struct pvscsi_adapter *adapter, struct pvscsi_ctx *ctx, struct scsi_cmnd *cmd) pvscsi_queue_ring() argument
|
H A D | mvumi.c | 250 static int mvumi_internal_cmd_sgl(struct mvumi_hba *mhba, struct mvumi_cmd *cmd, mvumi_internal_cmd_sgl() argument 264 m_sg = (struct mvumi_sgl *) &cmd->frame->payload[0]; mvumi_internal_cmd_sgl() 265 cmd->frame->sg_counts = 1; mvumi_internal_cmd_sgl() 266 cmd->data_buf = virt_addr; mvumi_internal_cmd_sgl() 279 struct mvumi_cmd *cmd; mvumi_create_internal_cmd() local 281 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mvumi_create_internal_cmd() 282 if (!cmd) { mvumi_create_internal_cmd() 283 dev_err(&mhba->pdev->dev, "failed to create a internal cmd\n"); mvumi_create_internal_cmd() 286 INIT_LIST_HEAD(&cmd->queue_pointer); mvumi_create_internal_cmd() 288 cmd->frame = pci_alloc_consistent(mhba->pdev, mvumi_create_internal_cmd() 289 mhba->ib_max_size, &cmd->frame_phys); mvumi_create_internal_cmd() 290 if (!cmd->frame) { mvumi_create_internal_cmd() 293 kfree(cmd); mvumi_create_internal_cmd() 298 if (mvumi_internal_cmd_sgl(mhba, cmd, buf_size)) { mvumi_create_internal_cmd() 302 cmd->frame, cmd->frame_phys); mvumi_create_internal_cmd() 303 kfree(cmd); mvumi_create_internal_cmd() 307 cmd->frame->sg_counts = 0; mvumi_create_internal_cmd() 309 return cmd; mvumi_create_internal_cmd() 313 struct mvumi_cmd *cmd) mvumi_delete_internal_cmd() 319 if (cmd && cmd->frame) { mvumi_delete_internal_cmd() 320 if (cmd->frame->sg_counts) { mvumi_delete_internal_cmd() 321 m_sg = (struct mvumi_sgl *) &cmd->frame->payload[0]; mvumi_delete_internal_cmd() 327 pci_free_consistent(mhba->pdev, size, cmd->data_buf, mvumi_delete_internal_cmd() 331 cmd->frame, cmd->frame_phys); mvumi_delete_internal_cmd() 332 kfree(cmd); mvumi_delete_internal_cmd() 344 struct mvumi_cmd *cmd = NULL; mvumi_get_cmd() local 347 cmd = list_entry((&mhba->cmd_pool)->next, mvumi_get_cmd() 349 list_del_init(&cmd->queue_pointer); mvumi_get_cmd() 353 return cmd; mvumi_get_cmd() 357 * mvumi_return_cmd - Return a cmd to free command pool 359 * @cmd: Command packet to be returned to free command pool 362 struct mvumi_cmd *cmd) mvumi_return_cmd() 364 cmd->scmd = NULL; mvumi_return_cmd() 365 list_add_tail(&cmd->queue_pointer, &mhba->cmd_pool); mvumi_return_cmd() 369 * mvumi_free_cmds - Free all the cmds in the free cmd pool 374 struct mvumi_cmd *cmd; mvumi_free_cmds() local 377 cmd = list_first_entry(&mhba->cmd_pool, struct mvumi_cmd, mvumi_free_cmds() 379 list_del(&cmd->queue_pointer); mvumi_free_cmds() 381 kfree(cmd->frame); mvumi_free_cmds() 382 kfree(cmd); mvumi_free_cmds() 394 struct mvumi_cmd *cmd; mvumi_alloc_cmds() local 397 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mvumi_alloc_cmds() 398 if (!cmd) mvumi_alloc_cmds() 401 INIT_LIST_HEAD(&cmd->queue_pointer); mvumi_alloc_cmds() 402 list_add_tail(&cmd->queue_pointer, &mhba->cmd_pool); mvumi_alloc_cmds() 404 cmd->frame = mhba->ib_frame + i * mhba->ib_max_size; mvumi_alloc_cmds() 405 cmd->frame_phys = mhba->ib_frame_phys mvumi_alloc_cmds() 408 cmd->frame = kzalloc(mhba->ib_max_size, GFP_KERNEL); mvumi_alloc_cmds() 409 if (!cmd->frame) mvumi_alloc_cmds() 416 "failed to allocate memory for cmd[0x%x].\n", i); mvumi_alloc_cmds() 418 cmd = list_first_entry(&mhba->cmd_pool, struct mvumi_cmd, mvumi_alloc_cmds() 420 list_del(&cmd->queue_pointer); mvumi_alloc_cmds() 422 kfree(cmd->frame); mvumi_alloc_cmds() 423 kfree(cmd); mvumi_alloc_cmds() 507 "cmd request ID:0x%x\n", request_id, mvumi_check_ob_frame() 729 scmd_printk(KERN_NOTICE, scmd, "RESET -%ld cmd=%x retries=%x\n", mvumi_host_reset() 736 struct mvumi_cmd *cmd) mvumi_issue_blocked_cmd() 740 cmd->cmd_status = REQ_STATUS_PENDING; mvumi_issue_blocked_cmd() 742 if (atomic_read(&cmd->sync_cmd)) { mvumi_issue_blocked_cmd() 744 "last blocked cmd not finished, sync_cmd = %d\n", mvumi_issue_blocked_cmd() 745 atomic_read(&cmd->sync_cmd)); mvumi_issue_blocked_cmd() 749 atomic_inc(&cmd->sync_cmd); mvumi_issue_blocked_cmd() 751 mhba->instancet->fire_cmd(mhba, cmd); mvumi_issue_blocked_cmd() 755 (cmd->cmd_status != REQ_STATUS_PENDING), mvumi_issue_blocked_cmd() 759 if (atomic_read(&cmd->sync_cmd)) { mvumi_issue_blocked_cmd() 761 atomic_dec(&cmd->sync_cmd); mvumi_issue_blocked_cmd() 762 if (mhba->tag_cmd[cmd->frame->tag]) { mvumi_issue_blocked_cmd() 763 mhba->tag_cmd[cmd->frame->tag] = 0; mvumi_issue_blocked_cmd() 765 cmd->frame->tag); mvumi_issue_blocked_cmd() 766 tag_release_one(mhba, &mhba->tag_pool, cmd->frame->tag); mvumi_issue_blocked_cmd() 768 if (!list_empty(&cmd->queue_pointer)) { mvumi_issue_blocked_cmd() 771 list_del_init(&cmd->queue_pointer); mvumi_issue_blocked_cmd() 793 struct mvumi_cmd *cmd; mvumi_flush_cache() local 802 get_cmd: cmd = mvumi_create_internal_cmd(mhba, 0); mvumi_flush_cache() 803 if (!cmd) { mvumi_flush_cache() 806 " for internal flush cache cmd for " mvumi_flush_cache() 813 cmd->scmd = NULL; mvumi_flush_cache() 814 cmd->cmd_status = REQ_STATUS_PENDING; mvumi_flush_cache() 815 atomic_set(&cmd->sync_cmd, 0); mvumi_flush_cache() 816 frame = cmd->frame; mvumi_flush_cache() 827 mvumi_issue_blocked_cmd(mhba, cmd); mvumi_flush_cache() 828 if (cmd->cmd_status != SAM_STAT_GOOD) { mvumi_flush_cache() 831 device_id, cmd->cmd_status); mvumi_flush_cache() 834 mvumi_delete_internal_cmd(mhba, cmd); mvumi_flush_cache() 1323 * @cmd: Command to be completed 1325 static void mvumi_complete_cmd(struct mvumi_hba *mhba, struct mvumi_cmd *cmd, mvumi_complete_cmd() argument 1328 struct scsi_cmnd *scmd = cmd->scmd; mvumi_complete_cmd() 1330 cmd->scmd->SCp.ptr = NULL; mvumi_complete_cmd() 1343 memcpy(cmd->scmd->sense_buffer, ob_frame->payload, mvumi_complete_cmd() 1368 cmd->scmd->scsi_done(scmd); mvumi_complete_cmd() 1369 mvumi_return_cmd(mhba, cmd); mvumi_complete_cmd() 1373 struct mvumi_cmd *cmd, mvumi_complete_internal_cmd() 1376 if (atomic_read(&cmd->sync_cmd)) { mvumi_complete_internal_cmd() 1377 cmd->cmd_status = ob_frame->req_status; mvumi_complete_internal_cmd() 1381 cmd->data_buf) { mvumi_complete_internal_cmd() 1382 memcpy(cmd->data_buf, ob_frame->payload, mvumi_complete_internal_cmd() 1385 atomic_dec(&cmd->sync_cmd); mvumi_complete_internal_cmd() 1449 unsigned int id, struct mvumi_cmd *cmd) mvumi_inquiry() 1456 if (!cmd) { mvumi_inquiry() 1457 cmd = mvumi_create_internal_cmd(mhba, data_buf_len); mvumi_inquiry() 1458 if (cmd) mvumi_inquiry() 1463 memset(cmd->data_buf, 0, data_buf_len); mvumi_inquiry() 1465 cmd->scmd = NULL; mvumi_inquiry() 1466 cmd->cmd_status = REQ_STATUS_PENDING; mvumi_inquiry() 1467 atomic_set(&cmd->sync_cmd, 0); mvumi_inquiry() 1468 frame = cmd->frame; mvumi_inquiry() 1478 mvumi_issue_blocked_cmd(mhba, cmd); mvumi_inquiry() 1480 if (cmd->cmd_status == SAM_STAT_GOOD) { mvumi_inquiry() 1485 (cmd->data_buf + MVUMI_INQUIRY_UUID_OFF), mvumi_inquiry() 1493 mvumi_delete_internal_cmd(mhba, cmd); mvumi_inquiry() 1590 struct mvumi_cmd *cmd = NULL; mvumi_probe_devices() local 1593 cmd = mvumi_create_internal_cmd(mhba, 64); mvumi_probe_devices() 1594 if (!cmd) mvumi_probe_devices() 1603 wwid = mvumi_inquiry(mhba, id, cmd); mvumi_probe_devices() 1636 if (cmd) mvumi_probe_devices() 1637 mvumi_delete_internal_cmd(mhba, cmd); mvumi_probe_devices() 1738 struct mvumi_cmd *cmd; mvumi_get_event() local 1741 cmd = mvumi_create_internal_cmd(mhba, 512); mvumi_get_event() 1742 if (!cmd) mvumi_get_event() 1744 cmd->scmd = NULL; mvumi_get_event() 1745 cmd->cmd_status = REQ_STATUS_PENDING; mvumi_get_event() 1746 atomic_set(&cmd->sync_cmd, 0); mvumi_get_event() 1747 frame = cmd->frame; mvumi_get_event() 1756 mvumi_issue_blocked_cmd(mhba, cmd); mvumi_get_event() 1758 if (cmd->cmd_status != SAM_STAT_GOOD) mvumi_get_event() 1760 cmd->cmd_status); mvumi_get_event() 1762 mvumi_notification(mhba, cmd->frame->cdb[1], cmd->data_buf); mvumi_get_event() 1764 mvumi_delete_internal_cmd(mhba, cmd); mvumi_get_event() 1804 struct mvumi_cmd *cmd; mvumi_handle_clob() local 1814 cmd = mhba->tag_cmd[ob_frame->tag]; mvumi_handle_clob() 1819 if (cmd->scmd) mvumi_handle_clob() 1820 mvumi_complete_cmd(mhba, cmd, ob_frame); mvumi_handle_clob() 1822 mvumi_complete_internal_cmd(mhba, cmd, ob_frame); mvumi_handle_clob() 1860 struct mvumi_cmd *cmd) mvumi_send_command() 1866 ib_frame = cmd->frame; mvumi_send_command() 1877 cmd->frame->tag = tag_get_one(mhba, &mhba->tag_pool); mvumi_send_command() 1878 cmd->frame->request_id = mhba->io_seq++; mvumi_send_command() 1879 cmd->request_id = cmd->frame->request_id; mvumi_send_command() 1880 mhba->tag_cmd[cmd->frame->tag] = cmd; mvumi_send_command() 1887 cpu_to_le32(lower_32_bits(cmd->frame_phys)); mvumi_send_command() 1889 cpu_to_le32(upper_32_bits(cmd->frame_phys)); mvumi_send_command() 1897 static void mvumi_fire_cmd(struct mvumi_hba *mhba, struct mvumi_cmd *cmd) mvumi_fire_cmd() argument 1903 if (cmd) mvumi_fire_cmd() 1904 list_add_tail(&cmd->queue_pointer, &mhba->waiting_req_list); mvumi_fire_cmd() 1910 cmd = list_first_entry(&mhba->waiting_req_list, mvumi_fire_cmd() 1912 list_del_init(&cmd->queue_pointer); mvumi_fire_cmd() 1913 result = mvumi_send_command(mhba, cmd); mvumi_fire_cmd() 1919 list_add(&cmd->queue_pointer, &mhba->waiting_req_list); mvumi_fire_cmd() 2057 * @cmd: Command to be prepared in 2063 struct scsi_cmnd *scmd, struct mvumi_cmd *cmd) mvumi_build_frame() 2067 cmd->scmd = scmd; mvumi_build_frame() 2068 cmd->cmd_status = REQ_STATUS_PENDING; mvumi_build_frame() 2069 pframe = cmd->frame; mvumi_build_frame() 2087 "cmd[0x%x]\n", scmd->sc_data_direction, scmd->cmnd[0]); mvumi_build_frame() 2122 struct mvumi_cmd *cmd; mvumi_queue_command() local 2131 cmd = mvumi_get_cmd(mhba); mvumi_queue_command() 2132 if (unlikely(!cmd)) { mvumi_queue_command() 2137 if (unlikely(mvumi_build_frame(mhba, scmd, cmd))) mvumi_queue_command() 2140 cmd->scmd = scmd; mvumi_queue_command() 2141 scmd->SCp.ptr = (char *) cmd; mvumi_queue_command() 2142 mhba->instancet->fire_cmd(mhba, cmd); mvumi_queue_command() 2147 mvumi_return_cmd(mhba, cmd); mvumi_queue_command() 2155 struct mvumi_cmd *cmd = (struct mvumi_cmd *) scmd->SCp.ptr; mvumi_timed_out() local 2162 if (mhba->tag_cmd[cmd->frame->tag]) { mvumi_timed_out() 2163 mhba->tag_cmd[cmd->frame->tag] = 0; mvumi_timed_out() 2164 tag_release_one(mhba, &mhba->tag_pool, cmd->frame->tag); mvumi_timed_out() 2166 if (!list_empty(&cmd->queue_pointer)) mvumi_timed_out() 2167 list_del_init(&cmd->queue_pointer); mvumi_timed_out() 2188 mvumi_return_cmd(mhba, cmd); mvumi_timed_out() 312 mvumi_delete_internal_cmd(struct mvumi_hba *mhba, struct mvumi_cmd *cmd) mvumi_delete_internal_cmd() argument 361 mvumi_return_cmd(struct mvumi_hba *mhba, struct mvumi_cmd *cmd) mvumi_return_cmd() argument 735 mvumi_issue_blocked_cmd(struct mvumi_hba *mhba, struct mvumi_cmd *cmd) mvumi_issue_blocked_cmd() argument 1372 mvumi_complete_internal_cmd(struct mvumi_hba *mhba, struct mvumi_cmd *cmd, struct mvumi_rsp_frame *ob_frame) mvumi_complete_internal_cmd() argument 1448 mvumi_inquiry(struct mvumi_hba *mhba, unsigned int id, struct mvumi_cmd *cmd) mvumi_inquiry() argument 1859 mvumi_send_command(struct mvumi_hba *mhba, struct mvumi_cmd *cmd) mvumi_send_command() argument 2062 mvumi_build_frame(struct mvumi_hba *mhba, struct scsi_cmnd *scmd, struct mvumi_cmd *cmd) mvumi_build_frame() argument
|
H A D | wd33c93.c | 219 #define write_wd33c93_cmd(regs, cmd) \ 220 write_wd33c93((regs), WD_COMMAND, (cmd)) 282 write_wd33c93_cmd(const wd33c93_regs regs, uchar cmd) write_wd33c93_cmd() argument 286 *regs.SCMD = cmd; write_wd33c93_cmd() 375 wd33c93_queuecommand_lck(struct scsi_cmnd *cmd, wd33c93_queuecommand_lck() argument 381 hostdata = (struct WD33C93_hostdata *) cmd->device->host->hostdata; wd33c93_queuecommand_lck() 384 printk("Q-%d-%02x( ", cmd->device->id, cmd->cmnd[0])) wd33c93_queuecommand_lck() 387 * - host_scribble is the pointer to the next cmd in the input queue wd33c93_queuecommand_lck() 388 * - scsi_done points to the routine we call when a cmd is finished wd33c93_queuecommand_lck() 391 cmd->host_scribble = NULL; wd33c93_queuecommand_lck() 392 cmd->scsi_done = done; wd33c93_queuecommand_lck() 393 cmd->result = 0; wd33c93_queuecommand_lck() 398 * cmd, and are preserved across disconnect-reselect. This means we wd33c93_queuecommand_lck() 410 if (scsi_bufflen(cmd)) { wd33c93_queuecommand_lck() 411 cmd->SCp.buffer = scsi_sglist(cmd); wd33c93_queuecommand_lck() 412 cmd->SCp.buffers_residual = scsi_sg_count(cmd) - 1; wd33c93_queuecommand_lck() 413 cmd->SCp.ptr = sg_virt(cmd->SCp.buffer); wd33c93_queuecommand_lck() 414 cmd->SCp.this_residual = cmd->SCp.buffer->length; wd33c93_queuecommand_lck() 416 cmd->SCp.buffer = NULL; wd33c93_queuecommand_lck() 417 cmd->SCp.buffers_residual = 0; wd33c93_queuecommand_lck() 418 cmd->SCp.ptr = NULL; wd33c93_queuecommand_lck() 419 cmd->SCp.this_residual = 0; wd33c93_queuecommand_lck() 439 cmd->SCp.Status = ILLEGAL_STATUS_BYTE; wd33c93_queuecommand_lck() 442 * Add the cmd to the end of 'input_Q'. Note that REQUEST SENSE wd33c93_queuecommand_lck() 449 if (!(hostdata->input_Q) || (cmd->cmnd[0] == REQUEST_SENSE)) { wd33c93_queuecommand_lck() 450 cmd->host_scribble = (uchar *) hostdata->input_Q; wd33c93_queuecommand_lck() 451 hostdata->input_Q = cmd; wd33c93_queuecommand_lck() 456 tmp->host_scribble = (uchar *) cmd; wd33c93_queuecommand_lck() 463 wd33c93_execute(cmd->device->host); wd33c93_queuecommand_lck() 489 struct scsi_cmnd *cmd, *prev; wd33c93_execute() local 502 cmd = (struct scsi_cmnd *) hostdata->input_Q; wd33c93_execute() 504 while (cmd) { wd33c93_execute() 505 if (!(hostdata->busy[cmd->device->id] & wd33c93_execute() 506 (1 << (cmd->device->lun & 0xff)))) wd33c93_execute() 508 prev = cmd; wd33c93_execute() 509 cmd = (struct scsi_cmnd *) cmd->host_scribble; wd33c93_execute() 514 if (!cmd) { wd33c93_execute() 522 prev->host_scribble = cmd->host_scribble; wd33c93_execute() 524 hostdata->input_Q = (struct scsi_cmnd *) cmd->host_scribble; wd33c93_execute() 527 hostdata->cmd_cnt[cmd->device->id]++; wd33c93_execute() 534 if (cmd->sc_data_direction == DMA_TO_DEVICE) wd33c93_execute() 535 write_wd33c93(regs, WD_DESTINATION_ID, cmd->device->id); wd33c93_execute() 537 write_wd33c93(regs, WD_DESTINATION_ID, cmd->device->id | DSTID_DPD); wd33c93_execute() 562 cmd->SCp.phase = 0; /* assume no disconnect */ wd33c93_execute() 567 if (cmd->device->type == 1) /* tape drive? */ wd33c93_execute() 575 if ((prev->device->id != cmd->device->id) || wd33c93_execute() 576 (prev->device->lun != cmd->device->lun)) { wd33c93_execute() 587 cmd->SCp.phase = 1; wd33c93_execute() 590 hostdata->disc_allowed_cnt[cmd->device->id]++; wd33c93_execute() 595 write_wd33c93(regs, WD_SOURCE_ID, ((cmd->SCp.phase) ? SRCID_ER : 0)); wd33c93_execute() 597 write_wd33c93(regs, WD_TARGET_LUN, (u8)cmd->device->lun); wd33c93_execute() 599 hostdata->sync_xfer[cmd->device->id]); wd33c93_execute() 600 hostdata->busy[cmd->device->id] |= (1 << (cmd->device->lun & 0xFF)); wd33c93_execute() 603 (hostdata->sync_stat[cmd->device->id] == SS_UNSET)) { wd33c93_execute() 613 hostdata->selecting = cmd; wd33c93_execute() 627 if (hostdata->sync_stat[cmd->device->id] == SS_UNSET) wd33c93_execute() 628 hostdata->sync_stat[cmd->device->id] = SS_FIRST; wd33c93_execute() 642 hostdata->connected = cmd; wd33c93_execute() 649 write_wd33c93_cdb(regs, cmd->cmd_len, cmd->cmnd); wd33c93_execute() 657 write_wd33c93(regs, WD_OWN_ID, cmd->cmd_len); wd33c93_execute() 664 if ((cmd->SCp.phase == 0) && (hostdata->no_dma == 0)) { wd33c93_execute() 665 if (hostdata->dma_setup(cmd, wd33c93_execute() 666 (cmd->sc_data_direction == DMA_TO_DEVICE) ? wd33c93_execute() 671 cmd->SCp.this_residual); wd33c93_execute() 691 printk("%s)EX-2 ", (cmd->SCp.phase) ? "d:" : "")) wd33c93_execute() 730 transfer_bytes(const wd33c93_regs regs, struct scsi_cmnd *cmd, transfer_bytes() argument 736 hostdata = (struct WD33C93_hostdata *) cmd->device->host->hostdata; transfer_bytes() 746 if (!cmd->SCp.this_residual && cmd->SCp.buffers_residual) { transfer_bytes() 747 ++cmd->SCp.buffer; transfer_bytes() 748 --cmd->SCp.buffers_residual; transfer_bytes() 749 cmd->SCp.this_residual = cmd->SCp.buffer->length; transfer_bytes() 750 cmd->SCp.ptr = sg_virt(cmd->SCp.buffer); transfer_bytes() 752 if (!cmd->SCp.this_residual) /* avoid bogus setups */ transfer_bytes() 756 hostdata->sync_xfer[cmd->device->id]); transfer_bytes() 762 if (hostdata->no_dma || hostdata->dma_setup(cmd, data_in_dir)) { transfer_bytes() 766 transfer_pio(regs, (uchar *) cmd->SCp.ptr, transfer_bytes() 767 cmd->SCp.this_residual, data_in_dir, hostdata); transfer_bytes() 768 length = cmd->SCp.this_residual; transfer_bytes() 769 cmd->SCp.this_residual = read_wd33c93_count(regs); transfer_bytes() 770 cmd->SCp.ptr += (length - cmd->SCp.this_residual); transfer_bytes() 787 write_wd33c93_count(regs, cmd->SCp.this_residual); transfer_bytes() 790 (hostdata->level2 == L2_BASIC && cmd->SCp.phase == 0)) { transfer_bytes() 807 struct scsi_cmnd *patch, *cmd; wd33c93_intr() local 821 cmd = (struct scsi_cmnd *) hostdata->connected; /* assume we're connected */ wd33c93_intr() 843 printk("[%p/%d:", cmd->SCp.ptr, cmd->SCp.this_residual)) wd33c93_intr() 844 hostdata->dma_stop(cmd->device->host, cmd, 1); wd33c93_intr() 846 length = cmd->SCp.this_residual; wd33c93_intr() 847 cmd->SCp.this_residual = read_wd33c93_count(regs); wd33c93_intr() 848 cmd->SCp.ptr += (length - cmd->SCp.this_residual); wd33c93_intr() 850 printk("%p/%d]", cmd->SCp.ptr, cmd->SCp.this_residual)) wd33c93_intr() 861 cmd = (struct scsi_cmnd *) hostdata->selecting; /* get a valid cmd */ wd33c93_intr() 865 cmd->result = DID_NO_CONNECT << 16; wd33c93_intr() 866 hostdata->busy[cmd->device->id] &= ~(1 << (cmd->device->lun & 0xff)); wd33c93_intr() 868 cmd->scsi_done(cmd); wd33c93_intr() 893 hostdata->connected = cmd = wd33c93_intr() 899 hostdata->outgoing_msg[0] = IDENTIFY(0, cmd->device->lun); wd33c93_intr() 900 if (cmd->SCp.phase) wd33c93_intr() 903 if (hostdata->sync_stat[cmd->device->id] == SS_FIRST) { wd33c93_intr() 905 hostdata->sync_stat[cmd->device->id] = SS_WAITING; wd33c93_intr() 916 if (hostdata->no_sync & (1 << cmd->device->id)) { wd33c93_intr() 942 printk("IN-%d.%d", cmd->SCp.this_residual, wd33c93_intr() 943 cmd->SCp.buffers_residual)) wd33c93_intr() 944 transfer_bytes(regs, cmd, DATA_IN_DIR); wd33c93_intr() 954 printk("OUT-%d.%d", cmd->SCp.this_residual, wd33c93_intr() 955 cmd->SCp.buffers_residual)) wd33c93_intr() 956 transfer_bytes(regs, cmd, DATA_OUT_DIR); wd33c93_intr() 967 DB(DB_INTR, printk("CMND-%02x", cmd->cmnd[0])) wd33c93_intr() 968 transfer_pio(regs, cmd->cmnd, cmd->cmd_len, DATA_OUT_DIR, wd33c93_intr() 978 cmd->SCp.Status = read_1_byte(regs); wd33c93_intr() 979 DB(DB_INTR, printk("%02x", cmd->SCp.Status)) wd33c93_intr() 1007 cmd->SCp.Message = msg; wd33c93_intr() 1036 cmd->device->disconnect = 1; wd33c93_intr() 1046 if (hostdata->sync_stat[cmd->device->id] == SS_WAITING) { wd33c93_intr() 1047 hostdata->sync_stat[cmd->device->id] = SS_SET; wd33c93_intr() 1049 hostdata->sync_xfer[cmd->device->id] = wd33c93_intr() 1076 if (hostdata->sync_stat[cmd->device->id] != wd33c93_intr() 1107 hostdata->sync_xfer[cmd->device->id] = id; wd33c93_intr() 1110 hostdata->sync_xfer[cmd->device->id]); wd33c93_intr() 1112 hostdata->sync_stat[cmd->device->id] = wd33c93_intr() 1179 cmd->SCp.Message = COMMAND_COMPLETE; wd33c93_intr() 1181 DB(DB_INTR, printk(":%d.%d", cmd->SCp.Status, lun)) wd33c93_intr() 1183 hostdata->busy[cmd->device->id] &= ~(1 << (cmd->device->lun & 0xff)); wd33c93_intr() 1185 if (cmd->SCp.Status == ILLEGAL_STATUS_BYTE) wd33c93_intr() 1186 cmd->SCp.Status = lun; wd33c93_intr() 1187 if (cmd->cmnd[0] == REQUEST_SENSE wd33c93_intr() 1188 && cmd->SCp.Status != GOOD) wd33c93_intr() 1189 cmd->result = wd33c93_intr() 1190 (cmd-> wd33c93_intr() 1193 cmd->result = wd33c93_intr() 1194 cmd->SCp.Status | (cmd->SCp.Message << 8); wd33c93_intr() 1195 cmd->scsi_done(cmd); wd33c93_intr() 1264 if (cmd == NULL) { wd33c93_intr() 1272 hostdata->busy[cmd->device->id] &= ~(1 << (cmd->device->lun & 0xff)); wd33c93_intr() 1274 if (cmd->cmnd[0] == REQUEST_SENSE && cmd->SCp.Status != GOOD) wd33c93_intr() 1275 cmd->result = wd33c93_intr() 1276 (cmd->result & 0x00ffff) | (DID_ERROR << 16); wd33c93_intr() 1278 cmd->result = cmd->SCp.Status | (cmd->SCp.Message << 8); wd33c93_intr() 1279 cmd->scsi_done(cmd); wd33c93_intr() 1297 if (cmd == NULL) { wd33c93_intr() 1304 hostdata->busy[cmd->device->id] &= ~(1 << (cmd->device->lun & 0xff)); wd33c93_intr() 1306 DB(DB_INTR, printk(":%d", cmd->SCp.Status)) wd33c93_intr() 1307 if (cmd->cmnd[0] == REQUEST_SENSE wd33c93_intr() 1308 && cmd->SCp.Status != GOOD) wd33c93_intr() 1309 cmd->result = wd33c93_intr() 1310 (cmd-> wd33c93_intr() 1313 cmd->result = wd33c93_intr() 1314 cmd->SCp.Status | (cmd->SCp.Message << 8); wd33c93_intr() 1315 cmd->scsi_done(cmd); wd33c93_intr() 1319 cmd->host_scribble = (uchar *) hostdata->disconnected_Q; wd33c93_intr() 1320 hostdata->disconnected_Q = cmd; wd33c93_intr() 1325 hostdata->disc_done_cnt[cmd->device->id]++; wd33c93_intr() 1355 cmd = (struct scsi_cmnd *) hostdata->selecting; wd33c93_intr() 1357 hostdata->busy[cmd->device->id] &= ~(1 << (cmd->device->lun & 0xff)); wd33c93_intr() 1358 cmd->host_scribble = wd33c93_intr() 1360 hostdata->input_Q = cmd; wd33c93_intr() 1366 if (cmd) { wd33c93_intr() 1368 hostdata->busy[cmd->device->id] &= wd33c93_intr() 1369 ~(1 << (cmd->device->lun & 0xff)); wd33c93_intr() 1370 cmd->host_scribble = wd33c93_intr() 1372 hostdata->input_Q = cmd; wd33c93_intr() 1449 cmd = (struct scsi_cmnd *) hostdata->disconnected_Q; wd33c93_intr() 1451 while (cmd) { wd33c93_intr() 1452 if (id == cmd->device->id && lun == (u8)cmd->device->lun) wd33c93_intr() 1454 patch = cmd; wd33c93_intr() 1455 cmd = (struct scsi_cmnd *) cmd->host_scribble; wd33c93_intr() 1460 if (!cmd) { wd33c93_intr() 1471 patch->host_scribble = cmd->host_scribble; wd33c93_intr() 1474 (struct scsi_cmnd *) cmd->host_scribble; wd33c93_intr() 1475 hostdata->connected = cmd; wd33c93_intr() 1482 if (cmd->sc_data_direction == DMA_TO_DEVICE) wd33c93_intr() 1483 write_wd33c93(regs, WD_DESTINATION_ID, cmd->device->id); wd33c93_intr() 1486 cmd->device->id | DSTID_DPD); wd33c93_intr() 1610 wd33c93_abort(struct scsi_cmnd * cmd) wd33c93_abort() argument 1617 disable_irq(cmd->device->host->irq); wd33c93_abort() 1619 instance = cmd->device->host; wd33c93_abort() 1631 if (tmp == cmd) { wd33c93_abort() 1633 prev->host_scribble = cmd->host_scribble; wd33c93_abort() 1636 (struct scsi_cmnd *) cmd->host_scribble; wd33c93_abort() 1637 cmd->host_scribble = NULL; wd33c93_abort() 1638 cmd->result = DID_ABORT << 16; wd33c93_abort() 1642 enable_irq(cmd->device->host->irq); wd33c93_abort() 1643 cmd->scsi_done(cmd); wd33c93_abort() 1661 if (hostdata->connected == cmd) { wd33c93_abort() 1670 hostdata->dma_stop(instance, cmd, 0); wd33c93_abort() 1709 hostdata->busy[cmd->device->id] &= ~(1 << (cmd->device->lun & 0xff)); wd33c93_abort() 1712 cmd->result = DID_ABORT << 16; wd33c93_abort() 1717 enable_irq(cmd->device->host->irq); wd33c93_abort() 1718 cmd->scsi_done(cmd); wd33c93_abort() 1730 if (tmp == cmd) { wd33c93_abort() 1735 enable_irq(cmd->device->host->irq); wd33c93_abort() 1754 enable_irq(cmd->device->host->irq); wd33c93_abort() 2132 struct scsi_cmnd *cmd; wd33c93_show_info() local 2172 cmd = (struct scsi_cmnd *) hd->connected; wd33c93_show_info() 2174 cmd->device->id, cmd->device->lun, cmd->cmnd[0]); wd33c93_show_info() 2179 cmd = (struct scsi_cmnd *) hd->input_Q; wd33c93_show_info() 2180 while (cmd) { wd33c93_show_info() 2182 cmd->device->id, cmd->device->lun, cmd->cmnd[0]); wd33c93_show_info() 2183 cmd = (struct scsi_cmnd *) cmd->host_scribble; wd33c93_show_info() 2188 cmd = (struct scsi_cmnd *) hd->disconnected_Q; wd33c93_show_info() 2189 while (cmd) { wd33c93_show_info() 2191 cmd->device->id, cmd->device->lun, cmd->cmnd[0]); wd33c93_show_info() 2192 cmd = (struct scsi_cmnd *) cmd->host_scribble; wd33c93_show_info()
|
H A D | pmcraid.c | 302 * @cmd: pointer to struct pmcraid_cmd to be initialized 308 void pmcraid_init_cmdblk(struct pmcraid_cmd *cmd, int index) pmcraid_init_cmdblk() argument 310 struct pmcraid_ioarcb *ioarcb = &(cmd->ioa_cb->ioarcb); pmcraid_init_cmdblk() 311 dma_addr_t dma_addr = cmd->ioa_cb_bus_addr; pmcraid_init_cmdblk() 318 cmd->index = index; pmcraid_init_cmdblk() 327 memset(&cmd->ioa_cb->ioarcb.cdb, 0, PMCRAID_MAX_CDB_LEN); pmcraid_init_cmdblk() 338 cmd->ioa_cb->ioasa.ioasc = 0; pmcraid_init_cmdblk() 339 cmd->ioa_cb->ioasa.residual_data_length = 0; pmcraid_init_cmdblk() 340 cmd->time_left = 0; pmcraid_init_cmdblk() 343 cmd->cmd_done = NULL; pmcraid_init_cmdblk() 344 cmd->scsi_cmd = NULL; pmcraid_init_cmdblk() 345 cmd->release = 0; pmcraid_init_cmdblk() 346 cmd->completion_req = 0; pmcraid_init_cmdblk() 347 cmd->sense_buffer = 0; pmcraid_init_cmdblk() 348 cmd->sense_buffer_dma = 0; pmcraid_init_cmdblk() 349 cmd->dma_handle = 0; pmcraid_init_cmdblk() 350 init_timer(&cmd->timer); pmcraid_init_cmdblk() 356 * @cmd: pointer to struct pmcraid_cmd to be reinitialized 361 static void pmcraid_reinit_cmdblk(struct pmcraid_cmd *cmd) pmcraid_reinit_cmdblk() argument 363 pmcraid_init_cmdblk(cmd, -1); pmcraid_reinit_cmdblk() 367 * pmcraid_get_free_cmd - get a free cmd block from command block pool 371 * returns pointer to cmd block or NULL if no blocks are available 377 struct pmcraid_cmd *cmd = NULL; pmcraid_get_free_cmd() local 380 /* free cmd block list is protected by free_pool_lock */ pmcraid_get_free_cmd() 384 cmd = list_entry(pinstance->free_cmd_pool.next, pmcraid_get_free_cmd() 386 list_del(&cmd->free_list); pmcraid_get_free_cmd() 391 if (cmd != NULL) pmcraid_get_free_cmd() 392 pmcraid_reinit_cmdblk(cmd); pmcraid_get_free_cmd() 393 return cmd; pmcraid_get_free_cmd() 398 * @cmd: pointer to the command block 403 void pmcraid_return_cmd(struct pmcraid_cmd *cmd) pmcraid_return_cmd() argument 405 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_return_cmd() 409 list_add_tail(&cmd->free_list, &pinstance->free_cmd_pool); pmcraid_return_cmd() 552 * @cmd: pointer to reset command 559 static void pmcraid_bist_done(struct pmcraid_cmd *cmd) pmcraid_bist_done() argument 561 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_bist_done() 570 cmd->time_left > 0) { pmcraid_bist_done() 572 cmd->timer.expires = jiffies + cmd->time_left; pmcraid_bist_done() 573 cmd->time_left = 0; pmcraid_bist_done() 574 cmd->timer.data = (unsigned long)cmd; pmcraid_bist_done() 575 cmd->timer.function = pmcraid_bist_done() 577 add_timer(&cmd->timer); pmcraid_bist_done() 579 cmd->time_left = 0; pmcraid_bist_done() 582 pmcraid_ioa_reset(cmd); pmcraid_bist_done() 589 * @cmd: pointer to reset cmd 593 static void pmcraid_start_bist(struct pmcraid_cmd *cmd) pmcraid_start_bist() argument 595 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_start_bist() 606 cmd->time_left = msecs_to_jiffies(PMCRAID_BIST_TIMEOUT); pmcraid_start_bist() 607 cmd->timer.data = (unsigned long)cmd; pmcraid_start_bist() 608 cmd->timer.expires = jiffies + msecs_to_jiffies(PMCRAID_BIST_TIMEOUT); pmcraid_start_bist() 609 cmd->timer.function = (void (*)(unsigned long))pmcraid_bist_done; pmcraid_start_bist() 610 add_timer(&cmd->timer); pmcraid_start_bist() 615 * @cmd: pointer to command block used in reset sequence 619 static void pmcraid_reset_alert_done(struct pmcraid_cmd *cmd) pmcraid_reset_alert_done() argument 621 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_reset_alert_done() 630 cmd->time_left <= 0) { pmcraid_reset_alert_done() 633 pmcraid_ioa_reset(cmd); pmcraid_reset_alert_done() 638 cmd->time_left -= PMCRAID_CHECK_FOR_RESET_TIMEOUT; pmcraid_reset_alert_done() 639 cmd->timer.data = (unsigned long)cmd; pmcraid_reset_alert_done() 640 cmd->timer.expires = jiffies + PMCRAID_CHECK_FOR_RESET_TIMEOUT; pmcraid_reset_alert_done() 641 cmd->timer.function = pmcraid_reset_alert_done() 643 add_timer(&cmd->timer); pmcraid_reset_alert_done() 649 * @cmd : command block to be used for reset sequence. 657 static void pmcraid_reset_alert(struct pmcraid_cmd *cmd) pmcraid_reset_alert() argument 659 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_reset_alert() 677 cmd->time_left = PMCRAID_RESET_TIMEOUT; pmcraid_reset_alert() 678 cmd->timer.data = (unsigned long)cmd; pmcraid_reset_alert() 679 cmd->timer.expires = jiffies + PMCRAID_CHECK_FOR_RESET_TIMEOUT; pmcraid_reset_alert() 680 cmd->timer.function = pmcraid_reset_alert() 682 add_timer(&cmd->timer); pmcraid_reset_alert() 692 pmcraid_start_bist(cmd); pmcraid_reset_alert() 699 * @cmd : pointer to command structure, that got timedout 706 static void pmcraid_timeout_handler(struct pmcraid_cmd *cmd) pmcraid_timeout_handler() argument 708 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_timeout_handler() 712 "Adapter being reset due to cmd(CDB[0] = %x) timeout\n", pmcraid_timeout_handler() 713 cmd->ioa_cb->ioarcb.cdb[0]); pmcraid_timeout_handler() 724 cmd = pmcraid_get_free_cmd(pinstance); pmcraid_timeout_handler() 729 if (cmd == NULL) { pmcraid_timeout_handler() 736 pinstance->reset_cmd = cmd; pmcraid_timeout_handler() 741 if (pinstance->reset_cmd != cmd) { pmcraid_timeout_handler() 746 pmcraid_err("cmd is pending but reset in progress\n"); pmcraid_timeout_handler() 754 if (cmd == pinstance->reset_cmd) pmcraid_timeout_handler() 755 cmd->cmd_done = pmcraid_ioa_reset; pmcraid_timeout_handler() 766 pmcraid_reset_alert(cmd); pmcraid_timeout_handler() 773 * @cmd: command that got response from IOA 778 static void pmcraid_internal_done(struct pmcraid_cmd *cmd) pmcraid_internal_done() argument 780 pmcraid_info("response internal cmd CDB[0] = %x ioasc = %x\n", pmcraid_internal_done() 781 cmd->ioa_cb->ioarcb.cdb[0], pmcraid_internal_done() 782 le32_to_cpu(cmd->ioa_cb->ioasa.ioasc)); pmcraid_internal_done() 785 * response. Same will be indicated as part of cmd->completion_req pmcraid_internal_done() 786 * field. Response path needs to wake up any waiters waiting for cmd pmcraid_internal_done() 789 if (cmd->completion_req) { pmcraid_internal_done() 790 cmd->completion_req = 0; pmcraid_internal_done() 791 complete(&cmd->wait_for_completion); pmcraid_internal_done() 798 if (cmd->release) { pmcraid_internal_done() 799 cmd->release = 0; pmcraid_internal_done() 800 pmcraid_return_cmd(cmd); pmcraid_internal_done() 807 * @cmd: command that got response from IOA 816 static void pmcraid_reinit_cfgtable_done(struct pmcraid_cmd *cmd) pmcraid_reinit_cfgtable_done() argument 818 pmcraid_info("response internal cmd CDB[0] = %x ioasc = %x\n", pmcraid_reinit_cfgtable_done() 819 cmd->ioa_cb->ioarcb.cdb[0], pmcraid_reinit_cfgtable_done() 820 le32_to_cpu(cmd->ioa_cb->ioasa.ioasc)); pmcraid_reinit_cfgtable_done() 822 if (cmd->release) { pmcraid_reinit_cfgtable_done() 823 cmd->release = 0; pmcraid_reinit_cfgtable_done() 824 pmcraid_return_cmd(cmd); pmcraid_reinit_cfgtable_done() 827 schedule_work(&cmd->drv_inst->worker_q); pmcraid_reinit_cfgtable_done() 832 * @cmd: pmcraid_command 840 static void pmcraid_erp_done(struct pmcraid_cmd *cmd) pmcraid_erp_done() argument 842 struct scsi_cmnd *scsi_cmd = cmd->scsi_cmd; pmcraid_erp_done() 843 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_erp_done() 844 u32 ioasc = le32_to_cpu(cmd->ioa_cb->ioasa.ioasc); pmcraid_erp_done() 850 cmd->ioa_cb->ioarcb.cdb[0], ioasc); pmcraid_erp_done() 856 if (cmd->sense_buffer != NULL) { pmcraid_erp_done() 858 cmd->sense_buffer, pmcraid_erp_done() 862 cmd->sense_buffer, cmd->sense_buffer_dma); pmcraid_erp_done() 863 cmd->sense_buffer = NULL; pmcraid_erp_done() 864 cmd->sense_buffer_dma = 0; pmcraid_erp_done() 868 pmcraid_return_cmd(cmd); pmcraid_erp_done() 878 * @cmd : command to be sent to the device 883 static void _pmcraid_fire_command(struct pmcraid_cmd *cmd) _pmcraid_fire_command() argument 885 struct pmcraid_instance *pinstance = cmd->drv_inst; _pmcraid_fire_command() 888 /* Add this command block to pending cmd pool. We do this prior to _pmcraid_fire_command() 891 * (isr/tasklet) looks for cmd block in the pending pending list. _pmcraid_fire_command() 894 list_add_tail(&cmd->free_list, &pinstance->pending_cmd_pool); _pmcraid_fire_command() 900 iowrite32(le32_to_cpu(cmd->ioa_cb->ioarcb.ioarcb_bus_addr), _pmcraid_fire_command() 910 * @cmd: pointer to the command block to be fired to IOA 919 struct pmcraid_cmd *cmd, pmcraid_send_cmd() 926 cmd->cmd_done = cmd_done; pmcraid_send_cmd() 930 cmd->timer.data = (unsigned long)cmd; pmcraid_send_cmd() 931 cmd->timer.expires = jiffies + timeout; pmcraid_send_cmd() 932 cmd->timer.function = (void (*)(unsigned long))timeout_func; pmcraid_send_cmd() 933 add_timer(&cmd->timer); pmcraid_send_cmd() 937 _pmcraid_fire_command(cmd); pmcraid_send_cmd() 942 * @cmd: pointer to the command block used for sending IOA shutdown command 947 static void pmcraid_ioa_shutdown_done(struct pmcraid_cmd *cmd) pmcraid_ioa_shutdown_done() argument 949 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_ioa_shutdown_done() 953 pmcraid_ioa_reset(cmd); pmcraid_ioa_shutdown_done() 960 * @cmd: pointer to the command block used as part of reset sequence 965 static void pmcraid_ioa_shutdown(struct pmcraid_cmd *cmd) pmcraid_ioa_shutdown() argument 968 cmd->ioa_cb->ioarcb.cdb[0], pmcraid_ioa_shutdown() 969 le32_to_cpu(cmd->ioa_cb->ioasa.ioasc)); pmcraid_ioa_shutdown() 974 pmcraid_reinit_cmdblk(cmd); pmcraid_ioa_shutdown() 975 cmd->ioa_cb->ioarcb.request_type = REQ_TYPE_IOACMD; pmcraid_ioa_shutdown() 976 cmd->ioa_cb->ioarcb.resource_handle = pmcraid_ioa_shutdown() 978 cmd->ioa_cb->ioarcb.cdb[0] = PMCRAID_IOA_SHUTDOWN; pmcraid_ioa_shutdown() 979 cmd->ioa_cb->ioarcb.cdb[1] = PMCRAID_SHUTDOWN_NORMAL; pmcraid_ioa_shutdown() 983 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle)); pmcraid_ioa_shutdown() 985 pmcraid_notify_ioastate(cmd->drv_inst, PMC_DEVICE_EVENT_SHUTDOWN_START); pmcraid_ioa_shutdown() 987 pmcraid_send_cmd(cmd, pmcraid_ioa_shutdown_done, pmcraid_ioa_shutdown() 995 * @cmd: pointer to command block used to send INQUIRY command 1002 static void pmcraid_get_fwversion_done(struct pmcraid_cmd *cmd) pmcraid_get_fwversion_done() argument 1004 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_get_fwversion_done() 1005 u32 ioasc = le32_to_cpu(cmd->ioa_cb->ioasa.ioasc); pmcraid_get_fwversion_done() 1016 pmcraid_reset_alert(cmd); pmcraid_get_fwversion_done() 1019 pmcraid_querycfg(cmd); pmcraid_get_fwversion_done() 1026 * @cmd: pointer to command block used to send INQUIRY command 1031 static void pmcraid_get_fwversion(struct pmcraid_cmd *cmd) pmcraid_get_fwversion() argument 1033 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; pmcraid_get_fwversion() 1035 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_get_fwversion() 1038 pmcraid_reinit_cmdblk(cmd); pmcraid_get_fwversion() 1049 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) + pmcraid_get_fwversion() 1062 pmcraid_send_cmd(cmd, pmcraid_get_fwversion_done, pmcraid_get_fwversion() 1068 * @cmd: pointer to command block to be used for identify hrrq 1073 static void pmcraid_identify_hrrq(struct pmcraid_cmd *cmd) pmcraid_identify_hrrq() argument 1075 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_identify_hrrq() 1076 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; pmcraid_identify_hrrq() 1077 int index = cmd->hrrq_index; pmcraid_identify_hrrq() 1082 pmcraid_reinit_cmdblk(cmd); pmcraid_identify_hrrq() 1083 cmd->hrrq_index = index + 1; pmcraid_identify_hrrq() 1085 if (cmd->hrrq_index < pinstance->num_hrrq) { pmcraid_identify_hrrq() 1088 cmd->hrrq_index = 0; pmcraid_identify_hrrq() 1114 pmcraid_send_cmd(cmd, done_function, pmcraid_identify_hrrq() 1119 static void pmcraid_process_ccn(struct pmcraid_cmd *cmd); 1120 static void pmcraid_process_ldn(struct pmcraid_cmd *cmd); 1125 * @cmd: initialized command block pointer 1130 static void pmcraid_send_hcam_cmd(struct pmcraid_cmd *cmd) pmcraid_send_hcam_cmd() argument 1132 if (cmd->ioa_cb->ioarcb.cdb[1] == PMCRAID_HCAM_CODE_CONFIG_CHANGE) pmcraid_send_hcam_cmd() 1133 atomic_set(&(cmd->drv_inst->ccn.ignore), 0); pmcraid_send_hcam_cmd() 1135 atomic_set(&(cmd->drv_inst->ldn.ignore), 0); pmcraid_send_hcam_cmd() 1137 pmcraid_send_cmd(cmd, cmd->cmd_done, 0, NULL); pmcraid_send_hcam_cmd() 1155 struct pmcraid_cmd *cmd; pmcraid_init_hcam() local 1163 cmd = pmcraid_get_free_cmd(pinstance); pmcraid_init_hcam() 1165 if (!cmd) { pmcraid_init_hcam() 1167 return cmd; pmcraid_init_hcam() 1183 hcam->cmd = cmd; pmcraid_init_hcam() 1185 ioarcb = &cmd->ioa_cb->ioarcb; pmcraid_init_hcam() 1186 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) + pmcraid_init_hcam() 1206 cmd->cmd_done = cmd_done; pmcraid_init_hcam() 1207 return cmd; pmcraid_init_hcam() 1222 struct pmcraid_cmd *cmd = pmcraid_init_hcam(pinstance, type); pmcraid_send_hcam() local 1223 pmcraid_send_hcam_cmd(cmd); pmcraid_send_hcam() 1230 * @cmd: pointer to cmd that is used as cancelling command 1234 struct pmcraid_cmd *cmd, pmcraid_prepare_cancel_cmd() 1238 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; pmcraid_prepare_cancel_cmd() 1260 * @cmd: command to be used as cancelling command 1265 struct pmcraid_cmd *cmd, pmcraid_cancel_hcam() 1273 pinstance = cmd->drv_inst; pmcraid_cancel_hcam() 1278 * currently not pending with IOA, we would have hcam->cmd as non-null pmcraid_cancel_hcam() 1280 if (hcam->cmd == NULL) pmcraid_cancel_hcam() 1283 pmcraid_prepare_cancel_cmd(cmd, hcam->cmd); pmcraid_cancel_hcam() 1288 pmcraid_send_cmd(cmd, cmd_done, pmcraid_cancel_hcam() 1296 * @cmd: command block to be used for cancelling the HCAM 1298 static void pmcraid_cancel_ccn(struct pmcraid_cmd *cmd) pmcraid_cancel_ccn() argument 1301 cmd->ioa_cb->ioarcb.cdb[0], pmcraid_cancel_ccn() 1302 le32_to_cpu(cmd->ioa_cb->ioasa.ioasc)); pmcraid_cancel_ccn() 1304 pmcraid_reinit_cmdblk(cmd); pmcraid_cancel_ccn() 1306 pmcraid_cancel_hcam(cmd, pmcraid_cancel_ccn() 1314 * @cmd: command block to be used for cancelling the HCAM 1316 static void pmcraid_cancel_ldn(struct pmcraid_cmd *cmd) pmcraid_cancel_ldn() argument 1318 pmcraid_cancel_hcam(cmd, pmcraid_cancel_ldn() 1547 struct pmcraid_cmd *cmd; pmcraid_handle_config_change() local 1590 pmcraid_err("lost CCN, no free cmd for querycfg\n"); pmcraid_handle_config_change() 1686 cmd = pmcraid_init_hcam(pinstance, PMCRAID_HCAM_CODE_CONFIG_CHANGE); pmcraid_handle_config_change() 1687 if (cmd) pmcraid_handle_config_change() 1688 pmcraid_send_hcam_cmd(cmd); pmcraid_handle_config_change() 1710 * @cmd: pointer to command that resulted in 'ioasc' 1712 void pmcraid_ioasc_logger(u32 ioasc, struct pmcraid_cmd *cmd) pmcraid_ioasc_logger() argument 1717 cmd->drv_inst->current_log_level < error_info->log_level) pmcraid_ioasc_logger() 1721 pmcraid_err("cmd [%x] for resource %x failed with %x(%s)\n", pmcraid_ioasc_logger() 1722 cmd->ioa_cb->ioarcb.cdb[0], pmcraid_ioasc_logger() 1723 cmd->ioa_cb->ioarcb.resource_handle, pmcraid_ioasc_logger() 1776 * @cmd: pointer to command struct 1784 static void pmcraid_process_ccn(struct pmcraid_cmd *cmd) pmcraid_process_ccn() argument 1786 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_process_ccn() 1787 u32 ioasc = le32_to_cpu(cmd->ioa_cb->ioasa.ioasc); pmcraid_process_ccn() 1790 pinstance->ccn.cmd = NULL; pmcraid_process_ccn() 1791 pmcraid_return_cmd(cmd); pmcraid_process_ccn() 1813 * @cmd: pointer to command block 1819 static void pmcraid_set_timestamp(struct pmcraid_cmd *cmd); 1821 static void pmcraid_process_ldn(struct pmcraid_cmd *cmd) pmcraid_process_ldn() argument 1823 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_process_ldn() 1826 u32 ioasc = le32_to_cpu(cmd->ioa_cb->ioasa.ioasc); pmcraid_process_ldn() 1831 pinstance->ldn.cmd = NULL; pmcraid_process_ldn() 1832 pmcraid_return_cmd(cmd); pmcraid_process_ldn() 1853 pmcraid_set_timestamp(cmd); pmcraid_process_ldn() 1863 cmd = pmcraid_init_hcam(pinstance, PMCRAID_HCAM_CODE_LOG_DATA); pmcraid_process_ldn() 1864 if (cmd) pmcraid_process_ldn() 1865 pmcraid_send_hcam_cmd(cmd); pmcraid_process_ldn() 1884 * @cmd: pointer to command used as part of reset sequence 1886 static void pmcraid_unregister_hcams(struct pmcraid_cmd *cmd) pmcraid_unregister_hcams() argument 1888 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_unregister_hcams() 1907 pmcraid_reset_alert(cmd); pmcraid_unregister_hcams() 1915 pmcraid_cancel_ldn(cmd); pmcraid_unregister_hcams() 1951 * @cmd : pointer to reset command block 1956 static void pmcraid_soft_reset(struct pmcraid_cmd *cmd) pmcraid_soft_reset() argument 1958 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_soft_reset() 1966 cmd->cmd_done = pmcraid_ioa_reset; pmcraid_soft_reset() 1967 cmd->timer.data = (unsigned long)cmd; pmcraid_soft_reset() 1968 cmd->timer.expires = jiffies + pmcraid_soft_reset() 1970 cmd->timer.function = (void (*)(unsigned long))pmcraid_timeout_handler; pmcraid_soft_reset() 1972 if (!timer_pending(&cmd->timer)) pmcraid_soft_reset() 1973 add_timer(&cmd->timer); pmcraid_soft_reset() 2018 * otherwise just completes the commands and returns the cmd blocks to free 2026 struct pmcraid_cmd *cmd, *temp; pmcraid_fail_outstanding_cmds() local 2033 list_for_each_entry_safe(cmd, temp, &pinstance->pending_cmd_pool, pmcraid_fail_outstanding_cmds() 2035 list_del(&cmd->free_list); pmcraid_fail_outstanding_cmds() 2038 cmd->ioa_cb->ioasa.ioasc = pmcraid_fail_outstanding_cmds() 2040 cmd->ioa_cb->ioasa.ilid = pmcraid_fail_outstanding_cmds() 2044 del_timer(&cmd->timer); pmcraid_fail_outstanding_cmds() 2051 if (cmd->scsi_cmd) { pmcraid_fail_outstanding_cmds() 2053 struct scsi_cmnd *scsi_cmd = cmd->scsi_cmd; pmcraid_fail_outstanding_cmds() 2054 __le32 resp = cmd->ioa_cb->ioarcb.response_handle; pmcraid_fail_outstanding_cmds() 2059 pmcraid_return_cmd(cmd); pmcraid_fail_outstanding_cmds() 2063 cmd->ioa_cb->ioarcb.cdb[0], pmcraid_fail_outstanding_cmds() 2066 } else if (cmd->cmd_done == pmcraid_internal_done || pmcraid_fail_outstanding_cmds() 2067 cmd->cmd_done == pmcraid_erp_done) { pmcraid_fail_outstanding_cmds() 2068 cmd->cmd_done(cmd); pmcraid_fail_outstanding_cmds() 2069 } else if (cmd->cmd_done != pmcraid_ioa_reset && pmcraid_fail_outstanding_cmds() 2070 cmd->cmd_done != pmcraid_ioa_shutdown_done) { pmcraid_fail_outstanding_cmds() 2071 pmcraid_return_cmd(cmd); pmcraid_fail_outstanding_cmds() 2084 * @cmd: pointer to the cmd block to be used for entire reset process 2096 static void pmcraid_ioa_reset(struct pmcraid_cmd *cmd) pmcraid_ioa_reset() argument 2098 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_ioa_reset() 2103 if (pinstance->reset_cmd != cmd) { pmcraid_ioa_reset() 2105 pinstance->reset_cmd = cmd; pmcraid_ioa_reset() 2109 pinstance->ioa_state, cmd); pmcraid_ioa_reset() 2129 pmcraid_reset_alert(cmd); pmcraid_ioa_reset() 2147 pmcraid_reinit_cmdblk(cmd); pmcraid_ioa_reset() 2148 pmcraid_identify_hrrq(cmd); pmcraid_ioa_reset() 2151 pmcraid_soft_reset(cmd); pmcraid_ioa_reset() 2158 pmcraid_reset_alert(cmd); pmcraid_ioa_reset() 2169 pmcraid_start_bist(cmd); pmcraid_ioa_reset() 2206 pmcraid_reset_alert(cmd); pmcraid_ioa_reset() 2230 pmcraid_reinit_cmdblk(cmd); pmcraid_ioa_reset() 2231 pmcraid_identify_hrrq(cmd); pmcraid_ioa_reset() 2234 pmcraid_soft_reset(cmd); pmcraid_ioa_reset() 2250 pmcraid_identify_hrrq(cmd); pmcraid_ioa_reset() 2276 pmcraid_reinit_cmdblk(cmd); pmcraid_ioa_reset() 2277 pmcraid_unregister_hcams(cmd); pmcraid_ioa_reset() 2293 pmcraid_return_cmd(cmd); pmcraid_ioa_reset() 2320 struct pmcraid_cmd *cmd; pmcraid_initiate_reset() local 2327 cmd = pmcraid_get_free_cmd(pinstance); pmcraid_initiate_reset() 2329 if (cmd == NULL) { pmcraid_initiate_reset() 2335 pinstance->reset_cmd = cmd; pmcraid_initiate_reset() 2339 pmcraid_ioa_reset(cmd); pmcraid_initiate_reset() 2457 * @cmd: pmcraid command struct 2462 static void pmcraid_request_sense(struct pmcraid_cmd *cmd) pmcraid_request_sense() argument 2464 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; pmcraid_request_sense() 2468 cmd->sense_buffer = pci_alloc_consistent(cmd->drv_inst->pdev, pmcraid_request_sense() 2470 &cmd->sense_buffer_dma); pmcraid_request_sense() 2472 if (cmd->sense_buffer == NULL) { pmcraid_request_sense() 2475 pmcraid_erp_done(cmd); pmcraid_request_sense() 2480 memset(&cmd->ioa_cb->ioasa, 0, sizeof(struct pmcraid_ioasa)); pmcraid_request_sense() 2489 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) + pmcraid_request_sense() 2496 ioadl->address = cpu_to_le64(cmd->sense_buffer_dma); pmcraid_request_sense() 2505 pmcraid_send_cmd(cmd, pmcraid_erp_done, pmcraid_request_sense() 2512 * @cmd: command that failed 2517 static void pmcraid_cancel_all(struct pmcraid_cmd *cmd, u32 sense) pmcraid_cancel_all() argument 2519 struct scsi_cmnd *scsi_cmd = cmd->scsi_cmd; pmcraid_cancel_all() 2520 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; pmcraid_cancel_all() 2541 pmcraid_send_cmd(cmd, cmd_done, pmcraid_cancel_all() 2549 * @cmd: pointer to failing command block 2554 static void pmcraid_frame_auto_sense(struct pmcraid_cmd *cmd) pmcraid_frame_auto_sense() argument 2556 u8 *sense_buf = cmd->scsi_cmd->sense_buffer; pmcraid_frame_auto_sense() 2557 struct pmcraid_resource_entry *res = cmd->scsi_cmd->device->hostdata; pmcraid_frame_auto_sense() 2558 struct pmcraid_ioasa *ioasa = &cmd->ioa_cb->ioasa; pmcraid_frame_auto_sense() 2563 cmd->scsi_cmd->result = SAM_STAT_CHECK_CONDITION; pmcraid_frame_auto_sense() 2616 * @cmd: pointer to pmcraid_cmd that has failed 2626 static int pmcraid_error_handler(struct pmcraid_cmd *cmd) pmcraid_error_handler() argument 2628 struct scsi_cmnd *scsi_cmd = cmd->scsi_cmd; pmcraid_error_handler() 2630 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_error_handler() 2631 struct pmcraid_ioasa *ioasa = &cmd->ioa_cb->ioasa; pmcraid_error_handler() 2649 pmcraid_frame_auto_sense(cmd); pmcraid_error_handler() 2653 pmcraid_ioasc_logger(ioasc, cmd); pmcraid_error_handler() 2710 pmcraid_cancel_all(cmd, sense_copied); pmcraid_error_handler() 2712 pmcraid_erp_done(cmd); pmcraid_error_handler() 2714 pmcraid_request_sense(cmd); pmcraid_error_handler() 2748 struct pmcraid_cmd *cmd; pmcraid_reset_device() local 2782 /* get a free cmd block */ pmcraid_reset_device() 2783 cmd = pmcraid_get_free_cmd(pinstance); pmcraid_reset_device() 2785 if (cmd == NULL) { pmcraid_reset_device() 2787 pmcraid_err("%s: no cmd blocks are available\n", __func__); pmcraid_reset_device() 2791 ioarcb = &cmd->ioa_cb->ioarcb; pmcraid_reset_device() 2802 init_completion(&cmd->wait_for_completion); pmcraid_reset_device() 2803 cmd->completion_req = 1; pmcraid_reset_device() 2805 pmcraid_info("cmd(CDB[0] = %x) for %x with index = %d\n", pmcraid_reset_device() 2806 cmd->ioa_cb->ioarcb.cdb[0], pmcraid_reset_device() 2807 le32_to_cpu(cmd->ioa_cb->ioarcb.resource_handle), pmcraid_reset_device() 2808 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle) >> 2); pmcraid_reset_device() 2810 pmcraid_send_cmd(cmd, pmcraid_reset_device() 2821 wait_for_completion(&cmd->wait_for_completion); pmcraid_reset_device() 2826 pmcraid_return_cmd(cmd); pmcraid_reset_device() 2828 ioasc = le32_to_cpu(cmd->ioa_cb->ioasa.ioasc); pmcraid_reset_device() 2837 * @cmd: pointer to pmcraid command struct 2850 static int _pmcraid_io_done(struct pmcraid_cmd *cmd, int reslen, int ioasc) _pmcraid_io_done() argument 2852 struct scsi_cmnd *scsi_cmd = cmd->scsi_cmd; _pmcraid_io_done() 2858 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle) >> 2, _pmcraid_io_done() 2859 cmd->ioa_cb->ioarcb.cdb[0], _pmcraid_io_done() 2863 rc = pmcraid_error_handler(cmd); _pmcraid_io_done() 2876 * @cmd: pointer to pmcraid command struct 2885 static void pmcraid_io_done(struct pmcraid_cmd *cmd) pmcraid_io_done() argument 2887 u32 ioasc = le32_to_cpu(cmd->ioa_cb->ioasa.ioasc); pmcraid_io_done() 2888 u32 reslen = le32_to_cpu(cmd->ioa_cb->ioasa.residual_data_length); pmcraid_io_done() 2890 if (_pmcraid_io_done(cmd, reslen, ioasc) == 0) pmcraid_io_done() 2891 pmcraid_return_cmd(cmd); pmcraid_io_done() 2897 * @cmd: command block of the command to be aborted 2900 * returns pointer to command structure used as cancelling cmd 2902 static struct pmcraid_cmd *pmcraid_abort_cmd(struct pmcraid_cmd *cmd) pmcraid_abort_cmd() argument 2908 pinstance = (struct pmcraid_instance *)cmd->drv_inst; pmcraid_abort_cmd() 2909 res = cmd->scsi_cmd->device->hostdata; pmcraid_abort_cmd() 2914 pmcraid_err("%s: no cmd blocks are available\n", __func__); pmcraid_abort_cmd() 2918 pmcraid_prepare_cancel_cmd(cancel_cmd, cmd); pmcraid_abort_cmd() 2921 cmd->ioa_cb->ioarcb.cdb[0], pmcraid_abort_cmd() 2922 cmd->ioa_cb->ioarcb.response_handle >> 2); pmcraid_abort_cmd() 2988 struct pmcraid_cmd *cmd; pmcraid_eh_abort_handler() local 3021 /* loop over pending cmd list to find cmd corresponding to this pmcraid_eh_abort_handler() 3027 list_for_each_entry(cmd, &pinstance->pending_cmd_pool, free_list) { pmcraid_eh_abort_handler() 3029 if (cmd->scsi_cmd == scsi_cmd) { pmcraid_eh_abort_handler() 3042 cancel_cmd = pmcraid_abort_cmd(cmd); pmcraid_eh_abort_handler() 3048 cancel_cmd->res = cmd->scsi_cmd->device->hostdata; pmcraid_eh_abort_handler() 3132 * @cmd: pmcraid command struct 3140 pmcraid_init_ioadls(struct pmcraid_cmd *cmd, int sgcount) pmcraid_init_ioadls() argument 3143 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; pmcraid_init_ioadls() 3159 cpu_to_le64((cmd->ioa_cb_bus_addr) + pmcraid_init_ioadls() 3165 cpu_to_le64((cmd->ioa_cb_bus_addr) + pmcraid_init_ioadls() 3180 * @cmd: pmcraid command struct 3190 struct pmcraid_cmd *cmd pmcraid_build_ioadl() 3196 struct scsi_cmnd *scsi_cmd = cmd->scsi_cmd; pmcraid_build_ioadl() 3197 struct pmcraid_ioarcb *ioarcb = &(cmd->ioa_cb->ioarcb); pmcraid_build_ioadl() 3223 ioadl = pmcraid_init_ioadls(cmd, nseg); pmcraid_build_ioadl() 3403 * would use cmd block queue locks (free_pool_lock and pending_pool_lock) 3418 struct pmcraid_cmd *cmd; pmcraid_queuecommand_lck() local 3453 cmd = pmcraid_get_free_cmd(pinstance); pmcraid_queuecommand_lck() 3455 if (cmd == NULL) { pmcraid_queuecommand_lck() 3460 cmd->scsi_cmd = scsi_cmd; pmcraid_queuecommand_lck() 3461 ioarcb = &(cmd->ioa_cb->ioarcb); pmcraid_queuecommand_lck() 3467 * generated internally uses hrrq_id 0, exception to this is the cmd pmcraid_queuecommand_lck() 3473 cmd->cmd_done = pmcraid_io_done; pmcraid_queuecommand_lck() 3493 rc = pmcraid_build_ioadl(pinstance, cmd); pmcraid_queuecommand_lck() 3508 _pmcraid_fire_command(cmd); pmcraid_queuecommand_lck() 3511 pmcraid_return_cmd(cmd); pmcraid_queuecommand_lck() 3561 * @cmd : pointer to struct pmcraid_cmd 3569 struct pmcraid_cmd *cmd, pmcraid_build_passthrough_ioadls() 3576 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; pmcraid_build_passthrough_ioadls() 3587 sglist->num_dma_sg = pci_map_sg(cmd->drv_inst->pdev, pmcraid_build_passthrough_ioadls() 3592 dev_err(&cmd->drv_inst->pdev->dev, pmcraid_build_passthrough_ioadls() 3598 cmd->sglist = sglist; pmcraid_build_passthrough_ioadls() 3601 ioadl = pmcraid_init_ioadls(cmd, sglist->num_dma_sg); pmcraid_build_passthrough_ioadls() 3620 * @cmd: pointer to struct pmcraid_cmd for which ioadls were allocated 3628 struct pmcraid_cmd *cmd, pmcraid_release_passthrough_ioadls() 3633 struct pmcraid_sglist *sglist = cmd->sglist; pmcraid_release_passthrough_ioadls() 3636 pci_unmap_sg(cmd->drv_inst->pdev, pmcraid_release_passthrough_ioadls() 3641 cmd->sglist = NULL; pmcraid_release_passthrough_ioadls() 3649 * @cmd: ioctl code 3664 struct pmcraid_cmd *cmd; pmcraid_ioctl_passthrough() local 3750 cmd = pmcraid_get_free_cmd(pinstance); pmcraid_ioctl_passthrough() 3752 if (!cmd) { pmcraid_ioctl_passthrough() 3758 cmd->scsi_cmd = NULL; pmcraid_ioctl_passthrough() 3759 ioarcb = &(cmd->ioa_cb->ioarcb); pmcraid_ioctl_passthrough() 3781 * generated internally uses hrrq_id 0, exception to this is the cmd pmcraid_ioctl_passthrough() 3789 rc = pmcraid_build_passthrough_ioadls(cmd, pmcraid_ioctl_passthrough() 3805 rc = pmcraid_copy_sglist(cmd->sglist, pmcraid_ioctl_passthrough() 3818 cmd->cmd_done = pmcraid_internal_done; pmcraid_ioctl_passthrough() 3819 init_completion(&cmd->wait_for_completion); pmcraid_ioctl_passthrough() 3820 cmd->completion_req = 1; pmcraid_ioctl_passthrough() 3823 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle) >> 2, pmcraid_ioctl_passthrough() 3824 cmd->ioa_cb->ioarcb.cdb[0], pmcraid_ioctl_passthrough() 3825 le32_to_cpu(cmd->ioa_cb->ioarcb.resource_handle)); pmcraid_ioctl_passthrough() 3828 _pmcraid_fire_command(cmd); pmcraid_ioctl_passthrough() 3844 wait_for_completion(&cmd->wait_for_completion); pmcraid_ioctl_passthrough() 3846 &cmd->wait_for_completion, pmcraid_ioctl_passthrough() 3849 pmcraid_info("aborting cmd %d (CDB[0] = %x) due to timeout\n", pmcraid_ioctl_passthrough() 3850 le32_to_cpu(cmd->ioa_cb->ioarcb.response_handle >> 2), pmcraid_ioctl_passthrough() 3851 cmd->ioa_cb->ioarcb.cdb[0]); pmcraid_ioctl_passthrough() 3854 cancel_cmd = pmcraid_abort_cmd(cmd); pmcraid_ioctl_passthrough() 3881 &cmd->wait_for_completion, pmcraid_ioctl_passthrough() 3883 pmcraid_reset_bringup(cmd->drv_inst); pmcraid_ioctl_passthrough() 3893 if (copy_to_user(ioasa, &cmd->ioa_cb->ioasa, pmcraid_ioctl_passthrough() 3903 rc = pmcraid_copy_sglist(cmd->sglist, pmcraid_ioctl_passthrough() 3914 pmcraid_release_passthrough_ioadls(cmd, request_size, direction); pmcraid_ioctl_passthrough() 3915 pmcraid_return_cmd(cmd); pmcraid_ioctl_passthrough() 3930 * @cmd: ioctl command passed in 3939 unsigned int cmd, pmcraid_ioctl_driver() 3946 if (!access_ok(VERIFY_READ, user_buffer, _IOC_SIZE(cmd))) { pmcraid_ioctl_driver() 3951 switch (cmd) { pmcraid_ioctl_driver() 3967 * @cmd: ioctl command 3977 int cmd, pmcraid_check_ioctl_buffer() 4000 if ((_IOC_DIR(cmd) & _IOC_READ) == _IOC_READ) pmcraid_check_ioctl_buffer() 4020 unsigned int cmd, pmcraid_chr_ioctl() 4035 retval = pmcraid_check_ioctl_buffer(cmd, (void *)arg, hdr); pmcraid_chr_ioctl() 4051 switch (_IOC_TYPE(cmd)) { pmcraid_chr_ioctl() 4057 if (cmd == PMCRAID_IOCTL_DOWNLOAD_MICROCODE) pmcraid_chr_ioctl() 4061 cmd, pmcraid_chr_ioctl() 4065 if (cmd == PMCRAID_IOCTL_DOWNLOAD_MICROCODE) pmcraid_chr_ioctl() 4072 cmd, pmcraid_chr_ioctl() 4536 struct pmcraid_cmd *cmd = NULL; pmcraid_tasklet_function() local 4552 cmd = pinstance->cmd_list[cmd_index]; pmcraid_tasklet_function() 4557 list_del(&cmd->free_list); pmcraid_tasklet_function() 4560 del_timer(&cmd->timer); pmcraid_tasklet_function() 4563 if (cmd->cmd_done == pmcraid_ioa_reset) { pmcraid_tasklet_function() 4566 cmd->cmd_done(cmd); pmcraid_tasklet_function() 4569 } else if (cmd->cmd_done != NULL) { pmcraid_tasklet_function() 4570 cmd->cmd_done(cmd); pmcraid_tasklet_function() 4726 * pmcraid_allocate_cmd_blocks - allocate memory for cmd block structures 5110 pmcraid_err("couldn't allocate memory for cmd blocks\n"); pmcraid_init_buffers() 5496 * @cmd: pointer to reset command block 5498 static void pmcraid_complete_ioa_reset(struct pmcraid_cmd *cmd) pmcraid_complete_ioa_reset() argument 5500 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_complete_ioa_reset() 5504 pmcraid_ioa_reset(cmd); pmcraid_complete_ioa_reset() 5513 * @cmd: pointer to pmcraid_cmd structure 5518 static void pmcraid_set_supported_devs(struct pmcraid_cmd *cmd) pmcraid_set_supported_devs() argument 5520 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; pmcraid_set_supported_devs() 5523 pmcraid_reinit_cmdblk(cmd); pmcraid_set_supported_devs() 5534 if (cmd->drv_inst->reinit_cfg_table) { pmcraid_set_supported_devs() 5535 cmd->drv_inst->reinit_cfg_table = 0; pmcraid_set_supported_devs() 5536 cmd->release = 1; pmcraid_set_supported_devs() 5544 pmcraid_send_cmd(cmd, pmcraid_set_supported_devs() 5554 * @cmd: pointer to pmcraid_cmd structure 5559 static void pmcraid_set_timestamp(struct pmcraid_cmd *cmd) pmcraid_set_timestamp() argument 5561 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_set_timestamp() 5562 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; pmcraid_set_timestamp() 5579 pmcraid_reinit_cmdblk(cmd); pmcraid_set_timestamp() 5586 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) + pmcraid_set_timestamp() 5603 pmcraid_send_cmd(cmd, pmcraid_set_supported_devs, pmcraid_set_timestamp() 5606 pmcraid_send_cmd(cmd, pmcraid_return_cmd, pmcraid_set_timestamp() 5615 * @cmd: pointer to pmcraid command struct 5625 static void pmcraid_init_res_table(struct pmcraid_cmd *cmd) pmcraid_init_res_table() argument 5627 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_init_res_table() 5724 pmcraid_set_timestamp(cmd); pmcraid_init_res_table() 5729 * @cmd: pointer pmcraid_cmd struct 5737 static void pmcraid_querycfg(struct pmcraid_cmd *cmd) pmcraid_querycfg() argument 5739 struct pmcraid_ioarcb *ioarcb = &cmd->ioa_cb->ioarcb; pmcraid_querycfg() 5741 struct pmcraid_instance *pinstance = cmd->drv_inst; pmcraid_querycfg() 5763 ioarcb->ioadl_bus_addr = cpu_to_le64((cmd->ioa_cb_bus_addr) + pmcraid_querycfg() 5778 pmcraid_send_cmd(cmd, pmcraid_init_res_table, pmcraid_querycfg() 918 pmcraid_send_cmd( struct pmcraid_cmd *cmd, void (*cmd_done) (struct pmcraid_cmd *), unsigned long timeout, void (*timeout_func) (struct pmcraid_cmd *) ) pmcraid_send_cmd() argument 1233 pmcraid_prepare_cancel_cmd( struct pmcraid_cmd *cmd, struct pmcraid_cmd *cmd_to_cancel ) pmcraid_prepare_cancel_cmd() argument 1264 pmcraid_cancel_hcam( struct pmcraid_cmd *cmd, u8 type, void (*cmd_done) (struct pmcraid_cmd *) ) pmcraid_cancel_hcam() argument 3568 pmcraid_build_passthrough_ioadls( struct pmcraid_cmd *cmd, int buflen, int direction ) pmcraid_build_passthrough_ioadls() argument 3627 pmcraid_release_passthrough_ioadls( struct pmcraid_cmd *cmd, int buflen, int direction ) pmcraid_release_passthrough_ioadls() argument 3937 pmcraid_ioctl_driver( struct pmcraid_instance *pinstance, unsigned int cmd, unsigned int buflen, void __user *user_buffer ) pmcraid_ioctl_driver() argument 3976 pmcraid_check_ioctl_buffer( int cmd, void __user *arg, struct pmcraid_ioctl_header *hdr ) pmcraid_check_ioctl_buffer() argument 4018 pmcraid_chr_ioctl( struct file *filep, unsigned int cmd, unsigned long arg ) pmcraid_chr_ioctl() argument
|
H A D | eata_pio.c | 161 struct scsi_cmnd *cmd; eata_pio_int_handler() local 184 cmd = cp->cmd; eata_pio_int_handler() 185 base = cmd->device->host->base; eata_pio_int_handler() 193 while ((cmd->SCp.Status) && ((z > 0) || (odd))) { eata_pio_int_handler() 195 *(cmd->SCp.ptr) = zwickel >> 8; eata_pio_int_handler() 196 IncStat(&cmd->SCp, 1); eata_pio_int_handler() 199 x = min_t(unsigned int, z, cmd->SCp.this_residual / 2); eata_pio_int_handler() 200 insw(base + HA_RDATA, cmd->SCp.ptr, x); eata_pio_int_handler() 202 IncStat(&cmd->SCp, 2 * x); eata_pio_int_handler() 203 if ((z > 0) && (cmd->SCp.this_residual == 1)) { eata_pio_int_handler() 205 *(cmd->SCp.ptr) = zwickel & 0xff; eata_pio_int_handler() 206 IncStat(&cmd->SCp, 1); eata_pio_int_handler() 219 while ((cmd->SCp.Status) && ((z > 0) || (odd))) { eata_pio_int_handler() 221 zwickel += *(cmd->SCp.ptr) << 8; eata_pio_int_handler() 222 IncStat(&cmd->SCp, 1); eata_pio_int_handler() 227 x = min_t(unsigned int, z, cmd->SCp.this_residual / 2); eata_pio_int_handler() 228 outsw(base + HA_RDATA, cmd->SCp.ptr, x); eata_pio_int_handler() 230 IncStat(&cmd->SCp, 2 * x); eata_pio_int_handler() 231 if ((z > 0) && (cmd->SCp.this_residual == 1)) { eata_pio_int_handler() 232 zwickel = *(cmd->SCp.ptr); eata_pio_int_handler() 234 IncStat(&cmd->SCp, 1); eata_pio_int_handler() 258 cmd->result = (DID_OK << 16); eata_pio_int_handler() 261 cmd->result = (DID_OK << 16) + 0x02; eata_pio_int_handler() 263 cmd->result = (DID_NO_CONNECT << 16); eata_pio_int_handler() 273 printk(KERN_DEBUG "stat: %#.2x, result: %#.8x\n", stat, cmd->result); eata_pio_int_handler() 278 cmd->scsi_done(cmd); eata_pio_int_handler() 302 static int eata_pio_queue_lck(struct scsi_cmnd *cmd, eata_pio_queue_lck() argument 314 hd = HD(cmd); eata_pio_queue_lck() 315 sh = cmd->device->host; eata_pio_queue_lck() 318 /* use only slot 0, as 2001 can handle only one cmd at a time */ eata_pio_queue_lck() 338 DBG(DBG_QUEUE, scmd_printk(KERN_DEBUG, cmd, eata_pio_queue_lck() 339 "eata_pio_queue 0x%p, y %d\n", cmd, y)); eata_pio_queue_lck() 341 cmd->scsi_done = (void *) done; eata_pio_queue_lck() 343 if (cmd->sc_data_direction == DMA_TO_DEVICE) eata_pio_queue_lck() 348 cp->Interpret = (cmd->device->id == hd->hostid); eata_pio_queue_lck() 349 cp->cp_datalen = cpu_to_be32(scsi_bufflen(cmd)); eata_pio_queue_lck() 354 cp->cp_id = cmd->device->id; eata_pio_queue_lck() 355 cp->cp_lun = cmd->device->lun; eata_pio_queue_lck() 358 memcpy(cp->cp_cdb, cmd->cmnd, COMMAND_SIZE(*cmd->cmnd)); eata_pio_queue_lck() 363 cp->cmd = cmd; eata_pio_queue_lck() 364 cmd->host_scribble = (char *) &hd->ccb[y]; eata_pio_queue_lck() 366 if (!scsi_bufflen(cmd)) { eata_pio_queue_lck() 367 cmd->SCp.buffers_residual = 1; eata_pio_queue_lck() 368 cmd->SCp.ptr = NULL; eata_pio_queue_lck() 369 cmd->SCp.this_residual = 0; eata_pio_queue_lck() 370 cmd->SCp.buffer = NULL; eata_pio_queue_lck() 372 cmd->SCp.buffer = scsi_sglist(cmd); eata_pio_queue_lck() 373 cmd->SCp.buffers_residual = scsi_sg_count(cmd); eata_pio_queue_lck() 374 cmd->SCp.ptr = sg_virt(cmd->SCp.buffer); eata_pio_queue_lck() 375 cmd->SCp.this_residual = cmd->SCp.buffer->length; eata_pio_queue_lck() 377 cmd->SCp.Status = (cmd->SCp.this_residual != 0); /* TRUE as long as bytes eata_pio_queue_lck() 381 cmd->result = DID_BUS_BUSY << 16; eata_pio_queue_lck() 382 scmd_printk(KERN_NOTICE, cmd, eata_pio_queue_lck() 384 "returning DID_BUS_BUSY, done.\n", cmd); eata_pio_queue_lck() 385 done(cmd); eata_pio_queue_lck() 397 DBG(DBG_QUEUE, scmd_printk(KERN_DEBUG, cmd, eata_pio_queue_lck() 398 "Queued base %#.4lx cmd: 0x%p " eata_pio_queue_lck() 399 "slot %d irq %d\n", sh->base, cmd, y, sh->irq)); eata_pio_queue_lck() 406 static int eata_pio_abort(struct scsi_cmnd *cmd) eata_pio_abort() argument 410 DBG(DBG_ABNORM, scmd_printk(KERN_WARNING, cmd, eata_pio_abort() 411 "eata_pio_abort called pid: 0x%p\n", cmd)); eata_pio_abort() 413 while (inb(cmd->device->host->base + HA_RAUXSTAT) & HA_ABUSY) eata_pio_abort() 418 if (CD(cmd)->status == FREE) { eata_pio_abort() 422 if (CD(cmd)->status == USED) { eata_pio_abort() 427 if (CD(cmd)->status == RESET) { eata_pio_abort() 431 if (CD(cmd)->status == LOCKED) { eata_pio_abort() 438 static int eata_pio_host_reset(struct scsi_cmnd *cmd) eata_pio_host_reset() argument 443 struct Scsi_Host *host = cmd->device->host; eata_pio_host_reset() 445 DBG(DBG_ABNORM, scmd_printk(KERN_WARNING, cmd, eata_pio_host_reset() 450 if (HD(cmd)->state == RESET) { eata_pio_host_reset() 458 for (x = 0; x < cmd->device->host->can_queue; x++) { eata_pio_host_reset() 460 if (HD(cmd)->ccb[x].status == FREE) eata_pio_host_reset() 463 sp = HD(cmd)->ccb[x].cmd; eata_pio_host_reset() 464 HD(cmd)->ccb[x].status = RESET; eata_pio_host_reset() 472 outb(EATA_CMD_RESET, cmd->device->host->base + HA_WCOMMAND); eata_pio_host_reset() 475 HD(cmd)->state = RESET; eata_pio_host_reset() 483 for (x = 0; x < cmd->device->host->can_queue; x++) { eata_pio_host_reset() 486 if (HD(cmd)->ccb[x].status != RESET) eata_pio_host_reset() 489 sp = HD(cmd)->ccb[x].cmd; eata_pio_host_reset() 494 HD(cmd)->ccb[x].status = FREE; eata_pio_host_reset() 499 HD(cmd)->state = 0; eata_pio_host_reset()
|
H A D | mvme147.c | 30 static int dma_setup(struct scsi_cmnd *cmd, int dir_in) dma_setup() argument 32 struct Scsi_Host *instance = cmd->device->host; dma_setup() 35 unsigned long addr = virt_to_bus(cmd->SCp.ptr); dma_setup() 46 cache_clear(addr, cmd->SCp.this_residual); dma_setup() 49 cache_push(addr, cmd->SCp.this_residual); dma_setup() 53 m147_pcc->dma_bcr = cmd->SCp.this_residual | (1 << 24); dma_setup() 124 static int mvme147_bus_reset(struct scsi_cmnd *cmd) mvme147_bus_reset() argument 131 spin_lock_irq(cmd->device->host->host_lock); mvme147_bus_reset() 132 wd33c93_host_reset(cmd); mvme147_bus_reset() 133 spin_unlock_irq(cmd->device->host->host_lock); mvme147_bus_reset()
|
H A D | scsi_logging.c | 220 void scsi_print_command(struct scsi_cmnd *cmd) scsi_print_command() argument 226 if (!cmd->cmnd) scsi_print_command() 234 scmd_name(cmd), cmd->request->tag); scsi_print_command() 242 cmd->cmnd); scsi_print_command() 247 if (cmd->cmd_len > 16) { scsi_print_command() 250 dev_printk(KERN_INFO, &cmd->device->sdev_gendev, "%s", logbuf); scsi_print_command() 252 for (k = 0; k < cmd->cmd_len; k += 16) { scsi_print_command() 253 size_t linelen = min(cmd->cmd_len - k, 16); scsi_print_command() 259 scmd_name(cmd), scsi_print_command() 260 cmd->request->tag); scsi_print_command() 264 hex_dump_to_buffer(&cmd->cmnd[k], linelen, scsi_print_command() 268 dev_printk(KERN_INFO, &cmd->device->sdev_gendev, "%s", scsi_print_command() 276 hex_dump_to_buffer(cmd->cmnd, cmd->cmd_len, 16, 1, scsi_print_command() 281 dev_printk(KERN_INFO, &cmd->device->sdev_gendev, "%s", logbuf); scsi_print_command() 421 void scsi_print_sense(const struct scsi_cmnd *cmd) scsi_print_sense() argument 423 scsi_log_print_sense(cmd->device, scmd_name(cmd), cmd->request->tag, scsi_print_sense() 424 cmd->sense_buffer, SCSI_SENSE_BUFFERSIZE); scsi_print_sense() 428 void scsi_print_result(const struct scsi_cmnd *cmd, const char *msg, scsi_print_result() argument 434 const char *hb_string = scsi_hostbyte_string(cmd->result); scsi_print_result() 435 const char *db_string = scsi_driverbyte_string(cmd->result); scsi_print_result() 442 scmd_name(cmd), cmd->request->tag); scsi_print_result() 471 "hostbyte=0x%02x ", host_byte(cmd->result)); scsi_print_result() 480 "driverbyte=0x%02x", driver_byte(cmd->result)); scsi_print_result() 482 dev_printk(KERN_INFO, &cmd->device->sdev_gendev, "%s", logbuf); scsi_print_result()
|
/linux-4.1.27/drivers/ide/ |
H A D | ide-taskfile.c | 27 void ide_tf_readback(ide_drive_t *drive, struct ide_cmd *cmd) ide_tf_readback() argument 35 tp_ops->tf_read(drive, &cmd->tf, cmd->valid.in.tf); ide_tf_readback() 37 if (cmd->tf_flags & IDE_TFLAG_LBA48) { ide_tf_readback() 40 tp_ops->tf_read(drive, &cmd->hob, cmd->valid.in.hob); ide_tf_readback() 44 void ide_tf_dump(const char *s, struct ide_cmd *cmd) ide_tf_dump() argument 48 "lbam 0x%02x lbah 0x%02x dev 0x%02x cmd 0x%02x\n", ide_tf_dump() 49 s, cmd->tf.feature, cmd->tf.nsect, ide_tf_dump() 50 cmd->tf.lbal, cmd->tf.lbam, cmd->tf.lbah, ide_tf_dump() 51 cmd->tf.device, cmd->tf.command); ide_tf_dump() 53 s, cmd->hob.nsect, cmd->hob.lbal, cmd->hob.lbam, cmd->hob.lbah); ide_tf_dump() 59 struct ide_cmd cmd; taskfile_lib_get_identify() local 61 memset(&cmd, 0, sizeof(cmd)); taskfile_lib_get_identify() 62 cmd.tf.nsect = 0x01; taskfile_lib_get_identify() 64 cmd.tf.command = ATA_CMD_ID_ATA; taskfile_lib_get_identify() 66 cmd.tf.command = ATA_CMD_ID_ATAPI; taskfile_lib_get_identify() 67 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; taskfile_lib_get_identify() 68 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; taskfile_lib_get_identify() 69 cmd.protocol = ATA_PROT_PIO; taskfile_lib_get_identify() 71 return ide_raw_taskfile(drive, &cmd, buf, 1); taskfile_lib_get_identify() 81 struct ide_cmd *cmd = &hwif->cmd; do_rw_taskfile() local 82 struct ide_taskfile *tf = &cmd->tf; do_rw_taskfile() 97 memcpy(cmd, orig_cmd, sizeof(*cmd)); do_rw_taskfile() 99 if ((cmd->tf_flags & IDE_TFLAG_DMA_PIO_FALLBACK) == 0) { do_rw_taskfile() 100 ide_tf_dump(drive->name, cmd); do_rw_taskfile() 103 if (cmd->ftf_flags & IDE_FTFLAG_OUT_DATA) { do_rw_taskfile() 104 u8 data[2] = { cmd->tf.data, cmd->hob.data }; do_rw_taskfile() 106 tp_ops->output_data(drive, cmd, data, 2); do_rw_taskfile() 109 if (cmd->valid.out.tf & IDE_VALID_DEVICE) { do_rw_taskfile() 110 u8 HIHI = (cmd->tf_flags & IDE_TFLAG_LBA48) ? do_rw_taskfile() 113 if (!(cmd->ftf_flags & IDE_FTFLAG_FLAGGED)) do_rw_taskfile() 114 cmd->tf.device &= HIHI; do_rw_taskfile() 115 cmd->tf.device |= drive->select; do_rw_taskfile() 118 tp_ops->tf_load(drive, &cmd->hob, cmd->valid.out.hob); do_rw_taskfile() 119 tp_ops->tf_load(drive, &cmd->tf, cmd->valid.out.tf); do_rw_taskfile() 122 switch (cmd->protocol) { do_rw_taskfile() 124 if (cmd->tf_flags & IDE_TFLAG_WRITE) { do_rw_taskfile() 127 return pre_task_out_intr(drive, cmd); do_rw_taskfile() 134 ide_execute_command(drive, cmd, handler, WAIT_WORSTCASE); do_rw_taskfile() 137 if (ide_dma_prepare(drive, cmd)) do_rw_taskfile() 140 ide_execute_command(drive, cmd, ide_dma_intr, 2 * WAIT_CMD); do_rw_taskfile() 151 struct ide_cmd *cmd = &hwif->cmd; task_no_data_intr() local 152 struct ide_taskfile *tf = &cmd->tf; task_no_data_intr() 153 int custom = (cmd->tf_flags & IDE_TFLAG_CUSTOM_HANDLER) ? 1 : 0; task_no_data_intr() 192 ide_finish_cmd(drive, cmd, stat); task_no_data_intr() 223 void ide_pio_bytes(ide_drive_t *drive, struct ide_cmd *cmd, ide_pio_bytes() argument 228 struct scatterlist *cursg = cmd->cursg; ide_pio_bytes() 234 cursg = cmd->cursg; ide_pio_bytes() 236 cursg = cmd->cursg = sg; ide_pio_bytes() 239 unsigned nr_bytes = min(len, cursg->length - cmd->cursg_ofs); ide_pio_bytes() 243 offset = cursg->offset + cmd->cursg_ofs; ide_pio_bytes() 257 cmd->nleft -= nr_bytes; ide_pio_bytes() 258 cmd->cursg_ofs += nr_bytes; ide_pio_bytes() 260 if (cmd->cursg_ofs == cursg->length) { ide_pio_bytes() 261 cursg = cmd->cursg = sg_next(cmd->cursg); ide_pio_bytes() 262 cmd->cursg_ofs = 0; ide_pio_bytes() 267 hwif->tp_ops->output_data(drive, cmd, buf, nr_bytes); ide_pio_bytes() 269 hwif->tp_ops->input_data(drive, cmd, buf, nr_bytes); ide_pio_bytes() 281 static void ide_pio_datablock(ide_drive_t *drive, struct ide_cmd *cmd, ide_pio_datablock() argument 288 if (cmd->tf_flags & IDE_TFLAG_FS) ide_pio_datablock() 289 cmd->rq->errors = 0; ide_pio_datablock() 291 if (cmd->tf_flags & IDE_TFLAG_IO_16BIT) ide_pio_datablock() 296 if (cmd->tf_flags & IDE_TFLAG_MULTI_PIO) ide_pio_datablock() 297 nr_bytes = min_t(unsigned, cmd->nleft, drive->mult_count << 9); ide_pio_datablock() 301 ide_pio_bytes(drive, cmd, write, nr_bytes); ide_pio_datablock() 306 static void ide_error_cmd(ide_drive_t *drive, struct ide_cmd *cmd) ide_error_cmd() argument 308 if (cmd->tf_flags & IDE_TFLAG_FS) { ide_error_cmd() 309 int nr_bytes = cmd->nbytes - cmd->nleft; ide_error_cmd() 311 if (cmd->protocol == ATA_PROT_PIO && ide_error_cmd() 312 ((cmd->tf_flags & IDE_TFLAG_WRITE) || cmd->nleft == 0)) { ide_error_cmd() 313 if (cmd->tf_flags & IDE_TFLAG_MULTI_PIO) ide_error_cmd() 324 void ide_finish_cmd(ide_drive_t *drive, struct ide_cmd *cmd, u8 stat) ide_finish_cmd() argument 327 u8 err = ide_read_error(drive), nsect = cmd->tf.nsect; ide_finish_cmd() 328 u8 set_xfer = !!(cmd->tf_flags & IDE_TFLAG_SET_XFER); ide_finish_cmd() 330 ide_complete_cmd(drive, cmd, stat, err); ide_finish_cmd() 347 struct ide_cmd *cmd = &drive->hwif->cmd; task_pio_intr() local 349 u8 write = !!(cmd->tf_flags & IDE_TFLAG_WRITE); task_pio_intr() 370 if (((stat & ATA_DRQ) == 0) ^ (cmd->nleft == 0)) task_pio_intr() 374 if (write && cmd->nleft == 0) task_pio_intr() 378 ide_pio_datablock(drive, cmd, write); task_pio_intr() 381 if (write == 0 && cmd->nleft == 0) { task_pio_intr() 393 if ((cmd->tf_flags & IDE_TFLAG_FS) == 0) task_pio_intr() 394 ide_finish_cmd(drive, cmd, stat); task_pio_intr() 396 ide_complete_rq(drive, 0, blk_rq_sectors(cmd->rq) << 9); task_pio_intr() 399 ide_error_cmd(drive, cmd); task_pio_intr() 404 struct ide_cmd *cmd) pre_task_out_intr() 411 (cmd->tf_flags & IDE_TFLAG_MULTI_PIO) ? "MULT" : "", pre_task_out_intr() 421 ide_pio_datablock(drive, cmd, 1); pre_task_out_intr() 426 int ide_raw_taskfile(ide_drive_t *drive, struct ide_cmd *cmd, u8 *buf, ide_raw_taskfile() argument 431 int rw = !(cmd->tf_flags & IDE_TFLAG_WRITE) ? READ : WRITE; ide_raw_taskfile() 449 rq->special = cmd; ide_raw_taskfile() 450 cmd->rq = rq; ide_raw_taskfile() 460 int ide_no_data_taskfile(ide_drive_t *drive, struct ide_cmd *cmd) ide_no_data_taskfile() argument 462 cmd->protocol = ATA_PROT_NODATA; ide_no_data_taskfile() 464 return ide_raw_taskfile(drive, cmd, NULL, 0); ide_no_data_taskfile() 472 struct ide_cmd cmd; ide_taskfile_ioctl() local 521 memset(&cmd, 0, sizeof(cmd)); ide_taskfile_ioctl() 523 memcpy(&cmd.hob, req_task->hob_ports, HDIO_DRIVE_HOB_HDR_SIZE - 2); ide_taskfile_ioctl() 524 memcpy(&cmd.tf, req_task->io_ports, HDIO_DRIVE_TASK_HDR_SIZE); ide_taskfile_ioctl() 526 cmd.valid.out.tf = IDE_VALID_DEVICE; ide_taskfile_ioctl() 527 cmd.valid.in.tf = IDE_VALID_DEVICE | IDE_VALID_IN_TF; ide_taskfile_ioctl() 528 cmd.tf_flags = IDE_TFLAG_IO_16BIT; ide_taskfile_ioctl() 531 cmd.tf_flags |= IDE_TFLAG_LBA48; ide_taskfile_ioctl() 532 cmd.valid.in.hob = IDE_VALID_IN_HOB; ide_taskfile_ioctl() 536 cmd.ftf_flags |= IDE_FTFLAG_FLAGGED; ide_taskfile_ioctl() 539 cmd.ftf_flags |= IDE_FTFLAG_OUT_DATA; ide_taskfile_ioctl() 542 cmd.valid.out.hob |= IDE_VALID_NSECT; ide_taskfile_ioctl() 544 cmd.valid.out.hob |= IDE_VALID_LBAL; ide_taskfile_ioctl() 546 cmd.valid.out.hob |= IDE_VALID_LBAM; ide_taskfile_ioctl() 548 cmd.valid.out.hob |= IDE_VALID_LBAH; ide_taskfile_ioctl() 551 cmd.valid.out.tf |= IDE_VALID_FEATURE; ide_taskfile_ioctl() 553 cmd.valid.out.tf |= IDE_VALID_NSECT; ide_taskfile_ioctl() 555 cmd.valid.out.tf |= IDE_VALID_LBAL; ide_taskfile_ioctl() 557 cmd.valid.out.tf |= IDE_VALID_LBAM; ide_taskfile_ioctl() 559 cmd.valid.out.tf |= IDE_VALID_LBAH; ide_taskfile_ioctl() 561 cmd.valid.out.tf |= IDE_VALID_OUT_TF; ide_taskfile_ioctl() 562 if (cmd.tf_flags & IDE_TFLAG_LBA48) ide_taskfile_ioctl() 563 cmd.valid.out.hob |= IDE_VALID_OUT_HOB; ide_taskfile_ioctl() 567 cmd.ftf_flags |= IDE_FTFLAG_IN_DATA; ide_taskfile_ioctl() 573 cmd.tf_flags |= IDE_TFLAG_WRITE; ide_taskfile_ioctl() 576 cmd.protocol = ATA_PROT_DMA; ide_taskfile_ioctl() 587 cmd.tf_flags |= IDE_TFLAG_MULTI_PIO; ide_taskfile_ioctl() 590 cmd.protocol = ATA_PROT_PIO; ide_taskfile_ioctl() 594 cmd.tf_flags |= IDE_TFLAG_WRITE; ide_taskfile_ioctl() 606 cmd.tf_flags |= IDE_TFLAG_MULTI_PIO; ide_taskfile_ioctl() 609 cmd.protocol = ATA_PROT_PIO; ide_taskfile_ioctl() 617 cmd.protocol = ATA_PROT_NODATA; ide_taskfile_ioctl() 627 nsect = (cmd.hob.nsect << 8) | cmd.tf.nsect; ide_taskfile_ioctl() 637 err = ide_raw_taskfile(drive, &cmd, data_buf, nsect); ide_taskfile_ioctl() 639 memcpy(req_task->hob_ports, &cmd.hob, HDIO_DRIVE_HOB_HDR_SIZE - 2); ide_taskfile_ioctl() 640 memcpy(req_task->io_ports, &cmd.tf, HDIO_DRIVE_TASK_HDR_SIZE); ide_taskfile_ioctl() 642 if ((cmd.ftf_flags & IDE_FTFLAG_SET_IN_FLAGS) && ide_taskfile_ioctl() 403 pre_task_out_intr(ide_drive_t *drive, struct ide_cmd *cmd) pre_task_out_intr() argument
|
H A D | ide-disk_ioctl.c | 19 unsigned int cmd, unsigned long arg) ide_disk_ioctl() 24 err = ide_setting_ioctl(drive, bdev, cmd, arg, ide_disk_ioctl_settings); ide_disk_ioctl() 28 err = generic_ide_ioctl(drive, bdev, cmd, arg); ide_disk_ioctl() 18 ide_disk_ioctl(ide_drive_t *drive, struct block_device *bdev, fmode_t mode, unsigned int cmd, unsigned long arg) ide_disk_ioctl() argument
|
H A D | ide-disk.c | 55 static void ide_tf_set_cmd(ide_drive_t *drive, struct ide_cmd *cmd, u8 dma) ide_tf_set_cmd() argument 59 lba48 = (cmd->tf_flags & IDE_TFLAG_LBA48) ? 2 : 0; ide_tf_set_cmd() 60 write = (cmd->tf_flags & IDE_TFLAG_WRITE) ? 1 : 0; ide_tf_set_cmd() 63 cmd->protocol = ATA_PROT_DMA; ide_tf_set_cmd() 66 cmd->protocol = ATA_PROT_PIO; ide_tf_set_cmd() 68 cmd->tf_flags |= IDE_TFLAG_MULTI_PIO; ide_tf_set_cmd() 74 cmd->tf.command = ide_rw_cmds[index + lba48 + write]; ide_tf_set_cmd() 88 struct ide_cmd cmd; __ide_do_rw_disk() local 89 struct ide_taskfile *tf = &cmd.tf; __ide_do_rw_disk() 99 memset(&cmd, 0, sizeof(cmd)); __ide_do_rw_disk() 100 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; __ide_do_rw_disk() 101 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; __ide_do_rw_disk() 114 tf = &cmd.hob; __ide_do_rw_disk() 122 cmd.valid.out.hob = IDE_VALID_OUT_HOB; __ide_do_rw_disk() 123 cmd.valid.in.hob = IDE_VALID_IN_HOB; __ide_do_rw_disk() 124 cmd.tf_flags |= IDE_TFLAG_LBA48; __ide_do_rw_disk() 149 cmd.tf_flags |= IDE_TFLAG_FS; __ide_do_rw_disk() 152 cmd.tf_flags |= IDE_TFLAG_WRITE; __ide_do_rw_disk() 154 ide_tf_set_cmd(drive, &cmd, dma); __ide_do_rw_disk() 155 cmd.rq = rq; __ide_do_rw_disk() 158 ide_init_sg_cmd(&cmd, nsectors << 9); __ide_do_rw_disk() 159 ide_map_sg(drive, &cmd); __ide_do_rw_disk() 162 rc = do_rw_taskfile(drive, &cmd); __ide_do_rw_disk() 166 cmd.tf_flags |= IDE_TFLAG_DMA_PIO_FALLBACK; __ide_do_rw_disk() 167 ide_tf_set_cmd(drive, &cmd, 0); __ide_do_rw_disk() 168 ide_init_sg_cmd(&cmd, nsectors << 9); __ide_do_rw_disk() 169 rc = do_rw_taskfile(drive, &cmd); __ide_do_rw_disk() 207 struct ide_cmd cmd; idedisk_read_native_max_address() local 208 struct ide_taskfile *tf = &cmd.tf; idedisk_read_native_max_address() 211 memset(&cmd, 0, sizeof(cmd)); idedisk_read_native_max_address() 218 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; idedisk_read_native_max_address() 219 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; idedisk_read_native_max_address() 221 cmd.valid.out.hob = IDE_VALID_OUT_HOB; idedisk_read_native_max_address() 222 cmd.valid.in.hob = IDE_VALID_IN_HOB; idedisk_read_native_max_address() 223 cmd.tf_flags = IDE_TFLAG_LBA48; idedisk_read_native_max_address() 226 ide_no_data_taskfile(drive, &cmd); idedisk_read_native_max_address() 230 addr = ide_get_lba_addr(&cmd, lba48) + 1; idedisk_read_native_max_address() 241 struct ide_cmd cmd; idedisk_set_max_address() local 242 struct ide_taskfile *tf = &cmd.tf; idedisk_set_max_address() 247 memset(&cmd, 0, sizeof(cmd)); idedisk_set_max_address() 252 cmd.hob.lbal = (addr_req >>= 8) & 0xff; idedisk_set_max_address() 253 cmd.hob.lbam = (addr_req >>= 8) & 0xff; idedisk_set_max_address() 254 cmd.hob.lbah = (addr_req >>= 8) & 0xff; idedisk_set_max_address() 262 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; idedisk_set_max_address() 263 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; idedisk_set_max_address() 265 cmd.valid.out.hob = IDE_VALID_OUT_HOB; idedisk_set_max_address() 266 cmd.valid.in.hob = IDE_VALID_IN_HOB; idedisk_set_max_address() 267 cmd.tf_flags = IDE_TFLAG_LBA48; idedisk_set_max_address() 270 ide_no_data_taskfile(drive, &cmd); idedisk_set_max_address() 274 addr_set = ide_get_lba_addr(&cmd, lba48) + 1; idedisk_set_max_address() 432 struct ide_cmd *cmd; idedisk_prep_fn() local 438 cmd = rq->special; idedisk_prep_fn() 439 memset(cmd, 0, sizeof(*cmd)); idedisk_prep_fn() 441 cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC); idedisk_prep_fn() 444 /* FIXME: map struct ide_taskfile on rq->cmd[] */ idedisk_prep_fn() 445 BUG_ON(cmd == NULL); idedisk_prep_fn() 449 cmd->tf.command = ATA_CMD_FLUSH_EXT; idedisk_prep_fn() 451 cmd->tf.command = ATA_CMD_FLUSH; idedisk_prep_fn() 452 cmd->valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; idedisk_prep_fn() 453 cmd->tf_flags = IDE_TFLAG_DYN; idedisk_prep_fn() 454 cmd->protocol = ATA_PROT_NODATA; idedisk_prep_fn() 457 rq->special = cmd; idedisk_prep_fn() 458 cmd->rq = rq; idedisk_prep_fn() 510 struct ide_cmd cmd; ide_do_setfeature() local 512 memset(&cmd, 0, sizeof(cmd)); ide_do_setfeature() 513 cmd.tf.feature = feature; ide_do_setfeature() 514 cmd.tf.nsect = nsect; ide_do_setfeature() 515 cmd.tf.command = ATA_CMD_SET_FEATURES; ide_do_setfeature() 516 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; ide_do_setfeature() 517 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; ide_do_setfeature() 519 return ide_no_data_taskfile(drive, &cmd); ide_do_setfeature() 584 struct ide_cmd cmd; do_idedisk_flushcache() local 586 memset(&cmd, 0, sizeof(cmd)); do_idedisk_flushcache() 588 cmd.tf.command = ATA_CMD_FLUSH_EXT; do_idedisk_flushcache() 590 cmd.tf.command = ATA_CMD_FLUSH; do_idedisk_flushcache() 591 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; do_idedisk_flushcache() 592 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; do_idedisk_flushcache() 594 return ide_no_data_taskfile(drive, &cmd); do_idedisk_flushcache() 768 struct ide_cmd cmd; ide_disk_set_doorlock() local 774 memset(&cmd, 0, sizeof(cmd)); ide_disk_set_doorlock() 775 cmd.tf.command = on ? ATA_CMD_MEDIA_LOCK : ATA_CMD_MEDIA_UNLOCK; ide_disk_set_doorlock() 776 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; ide_disk_set_doorlock() 777 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; ide_disk_set_doorlock() 779 ret = ide_no_data_taskfile(drive, &cmd); ide_disk_set_doorlock()
|
H A D | ide-disk_proc.c | 11 struct ide_cmd cmd; smart_enable() local 12 struct ide_taskfile *tf = &cmd.tf; smart_enable() 14 memset(&cmd, 0, sizeof(cmd)); smart_enable() 19 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; smart_enable() 20 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; smart_enable() 22 return ide_no_data_taskfile(drive, &cmd); smart_enable() 27 struct ide_cmd cmd; get_smart_data() local 28 struct ide_taskfile *tf = &cmd.tf; get_smart_data() 30 memset(&cmd, 0, sizeof(cmd)); get_smart_data() 36 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; get_smart_data() 37 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; get_smart_data() 38 cmd.protocol = ATA_PROT_PIO; get_smart_data() 40 return ide_raw_taskfile(drive, &cmd, buf, 1); get_smart_data()
|
H A D | ide-ioctls.c | 20 unsigned int cmd, unsigned long arg, ide_setting_ioctl() 27 if (ds->get && s->get_ioctl == cmd) ide_setting_ioctl() 29 else if (ds->set && s->set_ioctl == cmd) ide_setting_ioctl() 57 static int ide_get_identity_ioctl(ide_drive_t *drive, unsigned int cmd, ide_get_identity_ioctl() argument 61 int size = (cmd == HDIO_GET_IDENTITY) ? (ATA_ID_WORDS * 2) : 142; ide_get_identity_ioctl() 122 struct ide_cmd cmd; ide_cmd_ioctl() local 123 struct ide_taskfile *tf = &cmd.tf; ide_cmd_ioctl() 139 memset(&cmd, 0, sizeof(cmd)); ide_cmd_ioctl() 146 cmd.valid.out.tf = IDE_VALID_OUT_TF; ide_cmd_ioctl() 147 cmd.valid.in.tf = IDE_VALID_NSECT; ide_cmd_ioctl() 150 cmd.valid.out.tf = IDE_VALID_FEATURE | IDE_VALID_NSECT; ide_cmd_ioctl() 151 cmd.valid.in.tf = IDE_VALID_NSECT; ide_cmd_ioctl() 154 cmd.protocol = args[3] ? ATA_PROT_PIO : ATA_PROT_NODATA; ide_cmd_ioctl() 157 cmd.tf_flags |= IDE_TFLAG_IO_16BIT; ide_cmd_ioctl() 173 cmd.tf_flags |= IDE_TFLAG_SET_XFER; ide_cmd_ioctl() 176 err = ide_raw_taskfile(drive, &cmd, buf, args[3]); ide_cmd_ioctl() 197 struct ide_cmd cmd; ide_task_ioctl() local 202 memset(&cmd, 0, sizeof(cmd)); ide_task_ioctl() 203 memcpy(&cmd.tf.feature, &args[1], 6); ide_task_ioctl() 204 cmd.tf.command = args[0]; ide_task_ioctl() 205 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; ide_task_ioctl() 206 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; ide_task_ioctl() 208 err = ide_no_data_taskfile(drive, &cmd); ide_task_ioctl() 210 args[0] = cmd.tf.command; ide_task_ioctl() 211 memcpy(&args[1], &cmd.tf.feature, 6); ide_task_ioctl() 227 rq->cmd[0] = REQ_DRIVE_RESET; generic_drive_reset() 235 unsigned int cmd, unsigned long arg) generic_ide_ioctl() 239 err = ide_setting_ioctl(drive, bdev, cmd, arg, ide_ioctl_settings); generic_ide_ioctl() 243 switch (cmd) { generic_ide_ioctl() 248 return ide_get_identity_ioctl(drive, cmd, arg); generic_ide_ioctl() 19 ide_setting_ioctl(ide_drive_t *drive, struct block_device *bdev, unsigned int cmd, unsigned long arg, const struct ide_ioctl_devset *s) ide_setting_ioctl() argument 234 generic_ide_ioctl(ide_drive_t *drive, struct block_device *bdev, unsigned int cmd, unsigned long arg) generic_ide_ioctl() argument
|
H A D | ide-park.c | 35 rq->cmd[0] = REQ_PARK_HEADS; issue_park_cmd() 52 rq->cmd[0] = REQ_UNPARK_HEADS; issue_park_cmd() 63 struct ide_cmd cmd; ide_do_park_unpark() local 64 struct ide_taskfile *tf = &cmd.tf; ide_do_park_unpark() 66 memset(&cmd, 0, sizeof(cmd)); ide_do_park_unpark() 67 if (rq->cmd[0] == REQ_PARK_HEADS) { ide_do_park_unpark() 75 cmd.valid.out.tf = IDE_VALID_OUT_TF | IDE_VALID_DEVICE; ide_do_park_unpark() 76 cmd.valid.in.tf = IDE_VALID_IN_TF | IDE_VALID_DEVICE; ide_do_park_unpark() 77 } else /* cmd == REQ_UNPARK_HEADS */ ide_do_park_unpark() 80 cmd.tf_flags |= IDE_TFLAG_CUSTOM_HANDLER; ide_do_park_unpark() 81 cmd.protocol = ATA_PROT_NODATA; ide_do_park_unpark() 83 cmd.rq = rq; ide_do_park_unpark() 85 return do_rw_taskfile(drive, &cmd); ide_do_park_unpark()
|
H A D | ide-cd_ioctl.c | 113 unsigned char cmd[BLK_MAX_CDB]; cdrom_eject() local 126 memset(cmd, 0, BLK_MAX_CDB); cdrom_eject() 128 cmd[0] = GPCMD_START_STOP_UNIT; cdrom_eject() 129 cmd[4] = loej | (ejectflag != 0); cdrom_eject() 131 return ide_cd_queue_pc(drive, cmd, 0, NULL, NULL, sense, 0, 0); cdrom_eject() 149 unsigned char cmd[BLK_MAX_CDB]; ide_cd_lockdoor() local 151 memset(cmd, 0, BLK_MAX_CDB); ide_cd_lockdoor() 153 cmd[0] = GPCMD_PREVENT_ALLOW_MEDIUM_REMOVAL; ide_cd_lockdoor() 154 cmd[4] = lockflag ? 1 : 0; ide_cd_lockdoor() 156 stat = ide_cd_queue_pc(drive, cmd, 0, NULL, NULL, ide_cd_lockdoor() 218 unsigned char cmd[BLK_MAX_CDB]; ide_cdrom_select_speed() local 225 memset(cmd, 0, BLK_MAX_CDB); ide_cdrom_select_speed() 227 cmd[0] = GPCMD_SET_SPEED; ide_cdrom_select_speed() 229 cmd[2] = (speed >> 8) & 0xff; ide_cdrom_select_speed() 230 cmd[3] = speed & 0xff; ide_cdrom_select_speed() 234 cmd[4] = (speed >> 8) & 0xff; ide_cdrom_select_speed() 235 cmd[5] = speed & 0xff; ide_cdrom_select_speed() 238 stat = ide_cd_queue_pc(drive, cmd, 0, NULL, NULL, &sense, 0, 0); ide_cdrom_select_speed() 276 unsigned char cmd[BLK_MAX_CDB]; ide_cdrom_get_mcn() local 279 memset(cmd, 0, BLK_MAX_CDB); ide_cdrom_get_mcn() 281 cmd[0] = GPCMD_READ_SUBCHANNEL; ide_cdrom_get_mcn() 282 cmd[1] = 2; /* MSF addressing */ ide_cdrom_get_mcn() 283 cmd[2] = 0x40; /* request subQ data */ ide_cdrom_get_mcn() 284 cmd[3] = 2; /* format */ ide_cdrom_get_mcn() 285 cmd[8] = len; ide_cdrom_get_mcn() 287 stat = ide_cd_queue_pc(drive, cmd, 0, buf, &len, NULL, 0, 0); ide_cdrom_get_mcn() 357 unsigned char cmd[BLK_MAX_CDB]; ide_cd_fake_play_trkind() local 375 memset(cmd, 0, BLK_MAX_CDB); ide_cd_fake_play_trkind() 377 cmd[0] = GPCMD_PLAY_AUDIO_MSF; ide_cd_fake_play_trkind() 378 lba_to_msf(lba_start, &cmd[3], &cmd[4], &cmd[5]); ide_cd_fake_play_trkind() 379 lba_to_msf(lba_end - 1, &cmd[6], &cmd[7], &cmd[8]); ide_cd_fake_play_trkind() 381 return ide_cd_queue_pc(drive, cmd, 0, NULL, NULL, &sense, 0, 0); ide_cd_fake_play_trkind() 427 unsigned int cmd, void *arg) ide_cdrom_audio_ioctl() 431 switch (cmd) { ide_cdrom_audio_ioctl() 471 cgc->stat = ide_cd_queue_pc(drive, cgc->cmd, ide_cdrom_packet() 426 ide_cdrom_audio_ioctl(struct cdrom_device_info *cdi, unsigned int cmd, void *arg) ide_cdrom_audio_ioctl() argument
|
H A D | ide-lib.c | 35 u64 ide_get_lba_addr(struct ide_cmd *cmd, int lba48) ide_get_lba_addr() argument 37 struct ide_taskfile *tf = &cmd->tf; ide_get_lba_addr() 42 tf = &cmd->hob; ide_get_lba_addr() 53 struct ide_cmd cmd; ide_dump_sector() local 54 struct ide_taskfile *tf = &cmd.tf; ide_dump_sector() 57 memset(&cmd, 0, sizeof(cmd)); ide_dump_sector() 59 cmd.valid.in.tf = IDE_VALID_LBA; ide_dump_sector() 60 cmd.valid.in.hob = IDE_VALID_LBA; ide_dump_sector() 61 cmd.tf_flags = IDE_TFLAG_LBA48; ide_dump_sector() 63 cmd.valid.in.tf = IDE_VALID_LBA | IDE_VALID_DEVICE; ide_dump_sector() 65 ide_tf_readback(drive, &cmd); ide_dump_sector() 69 (unsigned long long)ide_get_lba_addr(&cmd, lba48)); ide_dump_sector() 167 drive->name, drive->hwif->cmd.tf.command); ide_dump_status()
|
/linux-4.1.27/drivers/net/wireless/ti/wl1251/ |
H A D | cmd.c | 1 #include "cmd.h" 23 struct wl1251_cmd_header *cmd; wl1251_cmd_send() local 28 cmd = buf; wl1251_cmd_send() 29 cmd->id = id; wl1251_cmd_send() 30 cmd->status = 0; wl1251_cmd_send() 72 wl1251_debug(DEBUG_CMD, "cmd test"); wl1251_cmd_test() 114 wl1251_debug(DEBUG_CMD, "cmd interrogate"); wl1251_cmd_interrogate() 131 if (acx->cmd.status != CMD_STATUS_SUCCESS) wl1251_cmd_interrogate() 133 acx->cmd.status); wl1251_cmd_interrogate() 152 wl1251_debug(DEBUG_CMD, "cmd configure"); wl1251_cmd_configure() 174 wl1251_debug(DEBUG_CMD, "cmd vbm"); wl1251_cmd_vbm() 185 wl1251_warning("cmd vbm len is %d B, truncating to %d", wl1251_cmd_vbm() 208 struct cmd_enabledisable_path *cmd; wl1251_cmd_data_path_rx() local 212 wl1251_debug(DEBUG_CMD, "cmd data path"); wl1251_cmd_data_path_rx() 214 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl1251_cmd_data_path_rx() 215 if (!cmd) { wl1251_cmd_data_path_rx() 220 cmd->channel = channel; wl1251_cmd_data_path_rx() 227 ret = wl1251_cmd_send(wl, cmd_rx, cmd, sizeof(*cmd)); wl1251_cmd_data_path_rx() 229 wl1251_error("rx %s cmd for channel %d failed", wl1251_cmd_data_path_rx() 234 wl1251_debug(DEBUG_BOOT, "rx %s cmd channel %d", wl1251_cmd_data_path_rx() 238 kfree(cmd); wl1251_cmd_data_path_rx() 244 struct cmd_enabledisable_path *cmd; wl1251_cmd_data_path_tx() local 248 wl1251_debug(DEBUG_CMD, "cmd data path"); wl1251_cmd_data_path_tx() 250 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl1251_cmd_data_path_tx() 251 if (!cmd) wl1251_cmd_data_path_tx() 254 cmd->channel = channel; wl1251_cmd_data_path_tx() 261 ret = wl1251_cmd_send(wl, cmd_tx, cmd, sizeof(*cmd)); wl1251_cmd_data_path_tx() 263 wl1251_error("tx %s cmd for channel %d failed", wl1251_cmd_data_path_tx() 266 wl1251_debug(DEBUG_BOOT, "tx %s cmd channel %d", wl1251_cmd_data_path_tx() 269 kfree(cmd); wl1251_cmd_data_path_tx() 286 wl1251_debug(DEBUG_CMD, "cmd join%s ch %d %d/%d", wl1251_cmd_join() 309 wl1251_error("failed to initiate cmd join"); wl1251_cmd_join() 323 wl1251_debug(DEBUG_CMD, "cmd set ps mode"); wl1251_cmd_ps_mode() 340 wl1251_error("cmd set_ps_mode failed"); wl1251_cmd_ps_mode() 352 struct cmd_read_write_memory *cmd; wl1251_cmd_read_memory() local 355 wl1251_debug(DEBUG_CMD, "cmd read memory"); wl1251_cmd_read_memory() 357 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl1251_cmd_read_memory() 358 if (!cmd) { wl1251_cmd_read_memory() 366 cmd->addr = addr; wl1251_cmd_read_memory() 367 cmd->size = len; wl1251_cmd_read_memory() 369 ret = wl1251_cmd_send(wl, CMD_READ_MEMORY, cmd, sizeof(*cmd)); wl1251_cmd_read_memory() 376 wl1251_mem_read(wl, wl->cmd_box_addr, cmd, sizeof(*cmd)); wl1251_cmd_read_memory() 378 if (cmd->header.status != CMD_STATUS_SUCCESS) wl1251_cmd_read_memory() 380 cmd->header.status); wl1251_cmd_read_memory() 382 memcpy(answer, cmd->value, len); wl1251_cmd_read_memory() 385 kfree(cmd); wl1251_cmd_read_memory() 392 struct wl1251_cmd_packet_template *cmd; wl1251_cmd_template_set() local 396 wl1251_debug(DEBUG_CMD, "cmd template %d", cmd_id); wl1251_cmd_template_set() 400 cmd_len = ALIGN(sizeof(*cmd) + buf_len, 4); wl1251_cmd_template_set() 402 cmd = kzalloc(cmd_len, GFP_KERNEL); wl1251_cmd_template_set() 403 if (!cmd) { wl1251_cmd_template_set() 408 cmd->size = cpu_to_le16(buf_len); wl1251_cmd_template_set() 411 memcpy(cmd->data, buf, buf_len); wl1251_cmd_template_set() 413 ret = wl1251_cmd_send(wl, cmd_id, cmd, cmd_len); wl1251_cmd_template_set() 415 wl1251_warning("cmd set_template failed: %d", ret); wl1251_cmd_template_set() 420 kfree(cmd); wl1251_cmd_template_set() 428 struct wl1251_cmd_scan *cmd; wl1251_cmd_scan() local 431 wl1251_debug(DEBUG_CMD, "cmd scan channels %d", n_channels); wl1251_cmd_scan() 435 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl1251_cmd_scan() 436 if (!cmd) wl1251_cmd_scan() 439 cmd->params.rx_config_options = cpu_to_le32(CFG_RX_ALL_GOOD); wl1251_cmd_scan() 440 cmd->params.rx_filter_options = cpu_to_le32(CFG_RX_PRSP_EN | wl1251_cmd_scan() 443 cmd->params.scan_options = 0; wl1251_cmd_scan() 450 cmd->params.scan_options |= cpu_to_le16(WL1251_SCAN_OPT_PRIORITY_HIGH); wl1251_cmd_scan() 451 cmd->params.num_channels = n_channels; wl1251_cmd_scan() 452 cmd->params.num_probe_requests = n_probes; wl1251_cmd_scan() 453 cmd->params.tx_rate = cpu_to_le16(1 << 1); /* 2 Mbps */ wl1251_cmd_scan() 454 cmd->params.tid_trigger = 0; wl1251_cmd_scan() 457 cmd->channels[i].min_duration = wl1251_cmd_scan() 459 cmd->channels[i].max_duration = wl1251_cmd_scan() 461 memset(&cmd->channels[i].bssid_lsb, 0xff, 4); wl1251_cmd_scan() 462 memset(&cmd->channels[i].bssid_msb, 0xff, 2); wl1251_cmd_scan() 463 cmd->channels[i].early_termination = 0; wl1251_cmd_scan() 464 cmd->channels[i].tx_power_att = 0; wl1251_cmd_scan() 465 cmd->channels[i].channel = channels[i]->hw_value; wl1251_cmd_scan() 468 cmd->params.ssid_len = ssid_len; wl1251_cmd_scan() 470 memcpy(cmd->params.ssid, ssid, ssid_len); wl1251_cmd_scan() 472 ret = wl1251_cmd_send(wl, CMD_SCAN, cmd, sizeof(*cmd)); wl1251_cmd_scan() 474 wl1251_error("cmd scan failed: %d", ret); wl1251_cmd_scan() 478 wl1251_mem_read(wl, wl->cmd_box_addr, cmd, sizeof(*cmd)); wl1251_cmd_scan() 480 if (cmd->header.status != CMD_STATUS_SUCCESS) { wl1251_cmd_scan() 481 wl1251_error("cmd scan status wasn't success: %d", wl1251_cmd_scan() 482 cmd->header.status); wl1251_cmd_scan() 488 kfree(cmd); wl1251_cmd_scan() 494 struct wl1251_cmd_trigger_scan_to *cmd; wl1251_cmd_trigger_scan_to() local 497 wl1251_debug(DEBUG_CMD, "cmd trigger scan to"); wl1251_cmd_trigger_scan_to() 499 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl1251_cmd_trigger_scan_to() 500 if (!cmd) wl1251_cmd_trigger_scan_to() 503 cmd->timeout = timeout; wl1251_cmd_trigger_scan_to() 505 ret = wl1251_cmd_send(wl, CMD_TRIGGER_SCAN_TO, cmd, sizeof(*cmd)); wl1251_cmd_trigger_scan_to() 507 wl1251_error("cmd trigger scan to failed: %d", ret); wl1251_cmd_trigger_scan_to() 512 kfree(cmd); wl1251_cmd_trigger_scan_to()
|
H A D | spi.c | 59 u8 *cmd; wl1251_spi_reset() local 63 cmd = kzalloc(WSPI_INIT_CMD_LEN, GFP_KERNEL); wl1251_spi_reset() 64 if (!cmd) { wl1251_spi_reset() 65 wl1251_error("could not allocate cmd for spi reset"); wl1251_spi_reset() 72 memset(cmd, 0xff, WSPI_INIT_CMD_LEN); wl1251_spi_reset() 74 t.tx_buf = cmd; wl1251_spi_reset() 80 wl1251_dump(DEBUG_SPI, "spi reset -> ", cmd, WSPI_INIT_CMD_LEN); wl1251_spi_reset() 82 kfree(cmd); wl1251_spi_reset() 89 u8 *cmd = kzalloc(WSPI_INIT_CMD_LEN, GFP_KERNEL); wl1251_spi_wake() local 91 if (!cmd) { wl1251_spi_wake() 92 wl1251_error("could not allocate cmd for spi init"); wl1251_spi_wake() 102 cmd[0] = 0xff; wl1251_spi_wake() 103 cmd[1] = 0xff; wl1251_spi_wake() 104 cmd[2] = WSPI_INIT_CMD_START | WSPI_INIT_CMD_TX; wl1251_spi_wake() 105 cmd[3] = 0; wl1251_spi_wake() 106 cmd[4] = 0; wl1251_spi_wake() 107 cmd[5] = HW_ACCESS_WSPI_INIT_CMD_MASK << 3; wl1251_spi_wake() 108 cmd[5] |= HW_ACCESS_WSPI_FIXED_BUSY_LEN & WSPI_INIT_CMD_FIXEDBUSY_LEN; wl1251_spi_wake() 110 cmd[6] = WSPI_INIT_CMD_IOD | WSPI_INIT_CMD_IP | WSPI_INIT_CMD_CS wl1251_spi_wake() 114 cmd[6] |= WSPI_INIT_CMD_DIS_FIXEDBUSY; wl1251_spi_wake() 116 cmd[6] |= WSPI_INIT_CMD_EN_FIXEDBUSY; wl1251_spi_wake() 118 cmd[7] = crc7_be(0, cmd+2, WSPI_INIT_CMD_CRC_LEN) | WSPI_INIT_CMD_END; wl1251_spi_wake() 123 __swab32s((u32 *)cmd); wl1251_spi_wake() 124 __swab32s((u32 *)cmd+1); wl1251_spi_wake() 126 t.tx_buf = cmd; wl1251_spi_wake() 132 wl1251_dump(DEBUG_SPI, "spi init -> ", cmd, WSPI_INIT_CMD_LEN); wl1251_spi_wake() 134 kfree(cmd); wl1251_spi_wake() 149 u32 *cmd; wl1251_spi_read() local 151 cmd = &wl->buffer_cmd; wl1251_spi_read() 154 *cmd = 0; wl1251_spi_read() 155 *cmd |= WSPI_CMD_READ; wl1251_spi_read() 156 *cmd |= (len << WSPI_CMD_BYTE_LENGTH_OFFSET) & WSPI_CMD_BYTE_LENGTH; wl1251_spi_read() 157 *cmd |= addr & WSPI_CMD_BYTE_ADDR; wl1251_spi_read() 162 t[0].tx_buf = cmd; wl1251_spi_read() 179 wl1251_dump(DEBUG_SPI, "spi_read cmd -> ", cmd, sizeof(*cmd)); wl1251_spi_read() 188 u32 *cmd; wl1251_spi_write() local 190 cmd = &wl->buffer_cmd; wl1251_spi_write() 192 *cmd = 0; wl1251_spi_write() 193 *cmd |= WSPI_CMD_WRITE; wl1251_spi_write() 194 *cmd |= (len << WSPI_CMD_BYTE_LENGTH_OFFSET) & WSPI_CMD_BYTE_LENGTH; wl1251_spi_write() 195 *cmd |= addr & WSPI_CMD_BYTE_ADDR; wl1251_spi_write() 200 t[0].tx_buf = cmd; wl1251_spi_write() 201 t[0].len = sizeof(*cmd); wl1251_spi_write() 210 wl1251_dump(DEBUG_SPI, "spi_write cmd -> ", cmd, sizeof(*cmd)); wl1251_spi_write()
|
H A D | Makefile | 1 wl1251-objs = main.o event.o tx.o rx.o ps.o cmd.o \
|
/linux-4.1.27/drivers/mmc/core/ |
H A D | sd_ops.c | 28 struct mmc_command cmd = {0}; mmc_app_cmd() local 33 cmd.opcode = MMC_APP_CMD; mmc_app_cmd() 36 cmd.arg = card->rca << 16; mmc_app_cmd() 37 cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_AC; mmc_app_cmd() 39 cmd.arg = 0; mmc_app_cmd() 40 cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_BCR; mmc_app_cmd() 43 err = mmc_wait_for_cmd(host, &cmd, 0); mmc_app_cmd() 48 if (!mmc_host_is_spi(host) && !(cmd.resp[0] & R1_APP_CMD)) mmc_app_cmd() 60 * @cmd: MMC command to start 69 struct mmc_command *cmd, int retries) mmc_wait_for_app_cmd() 75 BUG_ON(!cmd); mmc_wait_for_app_cmd() 89 if (cmd->resp[0] & R1_SPI_ILLEGAL_COMMAND) mmc_wait_for_app_cmd() 97 memset(cmd->resp, 0, sizeof(cmd->resp)); mmc_wait_for_app_cmd() 98 cmd->retries = 0; mmc_wait_for_app_cmd() 100 mrq.cmd = cmd; mmc_wait_for_app_cmd() 101 cmd->data = NULL; mmc_wait_for_app_cmd() 105 err = cmd->error; mmc_wait_for_app_cmd() 106 if (!cmd->error) mmc_wait_for_app_cmd() 111 if (cmd->resp[0] & R1_SPI_ILLEGAL_COMMAND) mmc_wait_for_app_cmd() 124 struct mmc_command cmd = {0}; mmc_app_set_bus_width() local 129 cmd.opcode = SD_APP_SET_BUS_WIDTH; mmc_app_set_bus_width() 130 cmd.flags = MMC_RSP_R1 | MMC_CMD_AC; mmc_app_set_bus_width() 134 cmd.arg = SD_BUS_WIDTH_1; mmc_app_set_bus_width() 137 cmd.arg = SD_BUS_WIDTH_4; mmc_app_set_bus_width() 143 err = mmc_wait_for_app_cmd(card->host, card, &cmd, MMC_CMD_RETRIES); mmc_app_set_bus_width() 152 struct mmc_command cmd = {0}; mmc_send_app_op_cond() local 157 cmd.opcode = SD_APP_OP_COND; mmc_send_app_op_cond() 159 cmd.arg = ocr & (1 << 30); /* SPI only defines one bit */ mmc_send_app_op_cond() 161 cmd.arg = ocr; mmc_send_app_op_cond() 162 cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R3 | MMC_CMD_BCR; mmc_send_app_op_cond() 165 err = mmc_wait_for_app_cmd(host, NULL, &cmd, MMC_CMD_RETRIES); mmc_send_app_op_cond() 175 if (!(cmd.resp[0] & R1_SPI_IDLE)) mmc_send_app_op_cond() 178 if (cmd.resp[0] & MMC_CARD_BUSY) mmc_send_app_op_cond() 191 *rocr = cmd.resp[0]; mmc_send_app_op_cond() 198 struct mmc_command cmd = {0}; mmc_send_if_cond() local 208 cmd.opcode = SD_SEND_IF_COND; mmc_send_if_cond() 209 cmd.arg = ((ocr & 0xFF8000) != 0) << 8 | test_pattern; mmc_send_if_cond() 210 cmd.flags = MMC_RSP_SPI_R7 | MMC_RSP_R7 | MMC_CMD_BCR; mmc_send_if_cond() 212 err = mmc_wait_for_cmd(host, &cmd, 0); mmc_send_if_cond() 217 result_pattern = cmd.resp[1] & 0xFF; mmc_send_if_cond() 219 result_pattern = cmd.resp[0] & 0xFF; mmc_send_if_cond() 230 struct mmc_command cmd = {0}; mmc_send_relative_addr() local 235 cmd.opcode = SD_SEND_RELATIVE_ADDR; mmc_send_relative_addr() 236 cmd.arg = 0; mmc_send_relative_addr() 237 cmd.flags = MMC_RSP_R6 | MMC_CMD_BCR; mmc_send_relative_addr() 239 err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); mmc_send_relative_addr() 243 *rca = cmd.resp[0] >> 16; mmc_send_relative_addr() 252 struct mmc_command cmd = {0}; mmc_app_send_scr() local 274 mrq.cmd = &cmd; mmc_app_send_scr() 277 cmd.opcode = SD_APP_SEND_SCR; mmc_app_send_scr() 278 cmd.arg = 0; mmc_app_send_scr() 279 cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_ADTC; mmc_app_send_scr() 296 if (cmd.error) mmc_app_send_scr() 297 return cmd.error; mmc_app_send_scr() 311 struct mmc_command cmd = {0}; mmc_sd_switch() local 323 mrq.cmd = &cmd; mmc_sd_switch() 326 cmd.opcode = SD_SWITCH; mmc_sd_switch() 327 cmd.arg = mode << 31 | 0x00FFFFFF; mmc_sd_switch() 328 cmd.arg &= ~(0xF << (group * 4)); mmc_sd_switch() 329 cmd.arg |= value << (group * 4); mmc_sd_switch() 330 cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_ADTC; mmc_sd_switch() 344 if (cmd.error) mmc_sd_switch() 345 return cmd.error; mmc_sd_switch() 356 struct mmc_command cmd = {0}; mmc_app_sd_status() local 370 mrq.cmd = &cmd; mmc_app_sd_status() 373 cmd.opcode = SD_APP_SD_STATUS; mmc_app_sd_status() 374 cmd.arg = 0; mmc_app_sd_status() 375 cmd.flags = MMC_RSP_SPI_R2 | MMC_RSP_R1 | MMC_CMD_ADTC; mmc_app_sd_status() 389 if (cmd.error) mmc_app_sd_status() 390 return cmd.error; mmc_app_sd_status() 68 mmc_wait_for_app_cmd(struct mmc_host *host, struct mmc_card *card, struct mmc_command *cmd, int retries) mmc_wait_for_app_cmd() argument
|
H A D | sdio_ops.c | 24 struct mmc_command cmd = {0}; mmc_send_io_op_cond() local 29 cmd.opcode = SD_IO_SEND_OP_COND; mmc_send_io_op_cond() 30 cmd.arg = ocr; mmc_send_io_op_cond() 31 cmd.flags = MMC_RSP_SPI_R4 | MMC_RSP_R4 | MMC_CMD_BCR; mmc_send_io_op_cond() 34 err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); mmc_send_io_op_cond() 50 if (cmd.resp[1] & MMC_CARD_BUSY) mmc_send_io_op_cond() 53 if (cmd.resp[0] & MMC_CARD_BUSY) mmc_send_io_op_cond() 63 *rocr = cmd.resp[mmc_host_is_spi(host) ? 1 : 0]; mmc_send_io_op_cond() 71 struct mmc_command cmd = {0}; mmc_io_rw_direct_host() local 81 cmd.opcode = SD_IO_RW_DIRECT; mmc_io_rw_direct_host() 82 cmd.arg = write ? 0x80000000 : 0x00000000; mmc_io_rw_direct_host() 83 cmd.arg |= fn << 28; mmc_io_rw_direct_host() 84 cmd.arg |= (write && out) ? 0x08000000 : 0x00000000; mmc_io_rw_direct_host() 85 cmd.arg |= addr << 9; mmc_io_rw_direct_host() 86 cmd.arg |= in; mmc_io_rw_direct_host() 87 cmd.flags = MMC_RSP_SPI_R5 | MMC_RSP_R5 | MMC_CMD_AC; mmc_io_rw_direct_host() 89 err = mmc_wait_for_cmd(host, &cmd, 0); mmc_io_rw_direct_host() 96 if (cmd.resp[0] & R5_ERROR) mmc_io_rw_direct_host() 98 if (cmd.resp[0] & R5_FUNCTION_NUMBER) mmc_io_rw_direct_host() 100 if (cmd.resp[0] & R5_OUT_OF_RANGE) mmc_io_rw_direct_host() 106 *out = (cmd.resp[0] >> 8) & 0xFF; mmc_io_rw_direct_host() 108 *out = cmd.resp[0] & 0xFF; mmc_io_rw_direct_host() 125 struct mmc_command cmd = {0}; mmc_io_rw_extended() local 140 mrq.cmd = &cmd; mmc_io_rw_extended() 143 cmd.opcode = SD_IO_RW_EXTENDED; mmc_io_rw_extended() 144 cmd.arg = write ? 0x80000000 : 0x00000000; mmc_io_rw_extended() 145 cmd.arg |= fn << 28; mmc_io_rw_extended() 146 cmd.arg |= incr_addr ? 0x04000000 : 0x00000000; mmc_io_rw_extended() 147 cmd.arg |= addr << 9; mmc_io_rw_extended() 149 cmd.arg |= (blksz == 512) ? 0 : blksz; /* byte mode */ mmc_io_rw_extended() 151 cmd.arg |= 0x08000000 | blocks; /* block mode */ mmc_io_rw_extended() 152 cmd.flags = MMC_RSP_SPI_R5 | MMC_RSP_R5 | MMC_CMD_ADTC; mmc_io_rw_extended() 188 if (cmd.error) 189 return cmd.error; 196 if (cmd.resp[0] & R5_ERROR) 198 if (cmd.resp[0] & R5_FUNCTION_NUMBER) 200 if (cmd.resp[0] & R5_OUT_OF_RANGE)
|
H A D | mmc_ops.c | 60 struct mmc_command cmd = {0}; __mmc_send_status() local 65 cmd.opcode = MMC_SEND_STATUS; __mmc_send_status() 67 cmd.arg = card->rca << 16; __mmc_send_status() 68 cmd.flags = MMC_RSP_SPI_R2 | MMC_RSP_R1 | MMC_CMD_AC; __mmc_send_status() 70 cmd.flags &= ~MMC_RSP_CRC; __mmc_send_status() 72 err = mmc_wait_for_cmd(card->host, &cmd, MMC_CMD_RETRIES); __mmc_send_status() 80 *status = cmd.resp[0]; __mmc_send_status() 93 struct mmc_command cmd = {0}; _mmc_select_card() local 97 cmd.opcode = MMC_SELECT_CARD; _mmc_select_card() 100 cmd.arg = card->rca << 16; _mmc_select_card() 101 cmd.flags = MMC_RSP_R1 | MMC_CMD_AC; _mmc_select_card() 103 cmd.arg = 0; _mmc_select_card() 104 cmd.flags = MMC_RSP_NONE | MMC_CMD_AC; _mmc_select_card() 107 err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); _mmc_select_card() 136 struct mmc_command cmd = {0}; mmc_set_dsr() local 138 cmd.opcode = MMC_SET_DSR; mmc_set_dsr() 140 cmd.arg = (host->dsr << 16) | 0xffff; mmc_set_dsr() 141 cmd.flags = MMC_RSP_NONE | MMC_CMD_AC; mmc_set_dsr() 143 return mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); mmc_set_dsr() 149 struct mmc_command cmd = {0}; mmc_go_idle() local 165 cmd.opcode = MMC_GO_IDLE_STATE; mmc_go_idle() 166 cmd.arg = 0; mmc_go_idle() 167 cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_NONE | MMC_CMD_BC; mmc_go_idle() 169 err = mmc_wait_for_cmd(host, &cmd, 0); mmc_go_idle() 185 struct mmc_command cmd = {0}; mmc_send_op_cond() local 190 cmd.opcode = MMC_SEND_OP_COND; mmc_send_op_cond() 191 cmd.arg = mmc_host_is_spi(host) ? 0 : ocr; mmc_send_op_cond() 192 cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R3 | MMC_CMD_BCR; mmc_send_op_cond() 195 err = mmc_wait_for_cmd(host, &cmd, 0); mmc_send_op_cond() 205 if (!(cmd.resp[0] & R1_SPI_IDLE)) mmc_send_op_cond() 208 if (cmd.resp[0] & MMC_CARD_BUSY) mmc_send_op_cond() 218 *rocr = cmd.resp[0]; mmc_send_op_cond() 226 struct mmc_command cmd = {0}; mmc_all_send_cid() local 231 cmd.opcode = MMC_ALL_SEND_CID; mmc_all_send_cid() 232 cmd.arg = 0; mmc_all_send_cid() 233 cmd.flags = MMC_RSP_R2 | MMC_CMD_BCR; mmc_all_send_cid() 235 err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); mmc_all_send_cid() 239 memcpy(cid, cmd.resp, sizeof(u32) * 4); mmc_all_send_cid() 247 struct mmc_command cmd = {0}; mmc_set_relative_addr() local 252 cmd.opcode = MMC_SET_RELATIVE_ADDR; mmc_set_relative_addr() 253 cmd.arg = card->rca << 16; mmc_set_relative_addr() 254 cmd.flags = MMC_RSP_R1 | MMC_CMD_AC; mmc_set_relative_addr() 256 err = mmc_wait_for_cmd(card->host, &cmd, MMC_CMD_RETRIES); mmc_set_relative_addr() 267 struct mmc_command cmd = {0}; mmc_send_cxd_native() local 272 cmd.opcode = opcode; mmc_send_cxd_native() 273 cmd.arg = arg; mmc_send_cxd_native() 274 cmd.flags = MMC_RSP_R2 | MMC_CMD_AC; mmc_send_cxd_native() 276 err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); mmc_send_cxd_native() 280 memcpy(cxd, cmd.resp, sizeof(u32) * 4); mmc_send_cxd_native() 294 struct mmc_command cmd = {0}; mmc_send_cxd_data() local 298 mrq.cmd = &cmd; mmc_send_cxd_data() 301 cmd.opcode = opcode; mmc_send_cxd_data() 302 cmd.arg = 0; mmc_send_cxd_data() 309 cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_ADTC; mmc_send_cxd_data() 331 if (cmd.error) mmc_send_cxd_data() 332 return cmd.error; mmc_send_cxd_data() 424 struct mmc_command cmd = {0}; mmc_spi_read_ocr() local 427 cmd.opcode = MMC_SPI_READ_OCR; mmc_spi_read_ocr() 428 cmd.arg = highcap ? (1 << 30) : 0; mmc_spi_read_ocr() 429 cmd.flags = MMC_RSP_SPI_R3; mmc_spi_read_ocr() 431 err = mmc_wait_for_cmd(host, &cmd, 0); mmc_spi_read_ocr() 433 *ocrp = cmd.resp[1]; mmc_spi_read_ocr() 439 struct mmc_command cmd = {0}; mmc_spi_set_crc() local 442 cmd.opcode = MMC_SPI_CRC_ON_OFF; mmc_spi_set_crc() 443 cmd.flags = MMC_RSP_SPI_R1; mmc_spi_set_crc() 444 cmd.arg = use_crc; mmc_spi_set_crc() 446 err = mmc_wait_for_cmd(host, &cmd, 0); mmc_spi_set_crc() 455 * @set: cmd set values 461 * @send_status: send status cmd to poll for busy 462 * @ignore_crc: ignore CRC errors when sending status cmd to poll for busy 472 struct mmc_command cmd = {0}; __mmc_switch() local 478 * If the cmd timeout and the max_busy_timeout of the host are both __mmc_switch() 487 cmd.opcode = MMC_SWITCH; __mmc_switch() 488 cmd.arg = (MMC_SWITCH_MODE_WRITE_BYTE << 24) | __mmc_switch() 492 cmd.flags = MMC_CMD_AC; __mmc_switch() 494 cmd.flags |= MMC_RSP_SPI_R1B | MMC_RSP_R1B; __mmc_switch() 499 cmd.busy_timeout = timeout_ms; __mmc_switch() 501 cmd.flags |= MMC_RSP_SPI_R1 | MMC_RSP_R1; __mmc_switch() 505 cmd.sanitize_busy = true; __mmc_switch() 507 err = mmc_wait_for_cmd(host, &cmd, MMC_CMD_RETRIES); __mmc_switch() 522 /* We have an unspecified cmd timeout, use the fallback value. */ __mmc_switch() 583 struct mmc_command cmd = {0}; mmc_send_tuning() local 607 mrq.cmd = &cmd; mmc_send_tuning() 610 cmd.opcode = opcode; mmc_send_tuning() 611 cmd.flags = MMC_RSP_R1 | MMC_CMD_ADTC; mmc_send_tuning() 630 if (cmd.error) { mmc_send_tuning() 631 err = cmd.error; mmc_send_tuning() 654 struct mmc_command cmd = {0}; mmc_send_bus_test() local 684 mrq.cmd = &cmd; mmc_send_bus_test() 686 cmd.opcode = opcode; mmc_send_bus_test() 687 cmd.arg = 0; mmc_send_bus_test() 694 cmd.flags = MMC_RSP_SPI_R1 | MMC_RSP_R1 | MMC_CMD_ADTC; mmc_send_bus_test() 718 if (cmd.error) mmc_send_bus_test() 719 return cmd.error; mmc_send_bus_test() 750 struct mmc_command cmd = {0}; mmc_send_hpi_cmd() local 762 cmd.flags = MMC_RSP_R1B | MMC_CMD_AC; mmc_send_hpi_cmd() 764 cmd.flags = MMC_RSP_R1 | MMC_CMD_AC; mmc_send_hpi_cmd() 766 cmd.opcode = opcode; mmc_send_hpi_cmd() 767 cmd.arg = card->rca << 16 | 1; mmc_send_hpi_cmd() 769 err = mmc_wait_for_cmd(card->host, &cmd, 0); mmc_send_hpi_cmd() 773 err, cmd.resp[0]); mmc_send_hpi_cmd() 777 *status = cmd.resp[0]; mmc_send_hpi_cmd()
|
/linux-4.1.27/drivers/net/wireless/ti/wlcore/ |
H A D | cmd.c | 36 #include "cmd.h" 51 * return the cmd status code on success. 56 struct wl1271_cmd_header *cmd; __wlcore_cmd_send() local 67 if (WARN_ON_ONCE(len < sizeof(*cmd))) __wlcore_cmd_send() 70 cmd = buf; __wlcore_cmd_send() 71 cmd->id = cpu_to_le16(id); __wlcore_cmd_send() 72 cmd->status = 0; __wlcore_cmd_send() 116 ret = wlcore_read(wl, wl->cmd_box_addr, cmd, res_len, false); __wlcore_cmd_send() 120 status = le16_to_cpu(cmd->status); __wlcore_cmd_send() 131 * send command to fw and return cmd status on success 233 struct wl12xx_cmd_role_enable *cmd; wl12xx_cmd_role_enable() local 236 wl1271_debug(DEBUG_CMD, "cmd role enable"); wl12xx_cmd_role_enable() 241 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_role_enable() 242 if (!cmd) { wl12xx_cmd_role_enable() 248 cmd->role_id = find_first_zero_bit(wl->roles_map, WL12XX_MAX_ROLES); wl12xx_cmd_role_enable() 249 if (cmd->role_id >= WL12XX_MAX_ROLES) { wl12xx_cmd_role_enable() 254 memcpy(cmd->mac_address, addr, ETH_ALEN); wl12xx_cmd_role_enable() 255 cmd->role_type = role_type; wl12xx_cmd_role_enable() 257 ret = wl1271_cmd_send(wl, CMD_ROLE_ENABLE, cmd, sizeof(*cmd), 0); wl12xx_cmd_role_enable() 259 wl1271_error("failed to initiate cmd role enable"); wl12xx_cmd_role_enable() 263 __set_bit(cmd->role_id, wl->roles_map); wl12xx_cmd_role_enable() 264 *role_id = cmd->role_id; wl12xx_cmd_role_enable() 267 kfree(cmd); wl12xx_cmd_role_enable() 275 struct wl12xx_cmd_role_disable *cmd; wl12xx_cmd_role_disable() local 278 wl1271_debug(DEBUG_CMD, "cmd role disable"); wl12xx_cmd_role_disable() 283 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_role_disable() 284 if (!cmd) { wl12xx_cmd_role_disable() 288 cmd->role_id = *role_id; wl12xx_cmd_role_disable() 290 ret = wl1271_cmd_send(wl, CMD_ROLE_DISABLE, cmd, sizeof(*cmd), 0); wl12xx_cmd_role_disable() 292 wl1271_error("failed to initiate cmd role disable"); wl12xx_cmd_role_disable() 300 kfree(cmd); wl12xx_cmd_role_disable() 429 struct wl12xx_cmd_role_start *cmd; wl12xx_cmd_role_start_dev() local 432 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_role_start_dev() 433 if (!cmd) { wl12xx_cmd_role_start_dev() 438 wl1271_debug(DEBUG_CMD, "cmd role start dev %d", wlvif->dev_role_id); wl12xx_cmd_role_start_dev() 440 cmd->role_id = wlvif->dev_role_id; wl12xx_cmd_role_start_dev() 442 cmd->band = WLCORE_BAND_5GHZ; wl12xx_cmd_role_start_dev() 443 cmd->channel = channel; wl12xx_cmd_role_start_dev() 450 cmd->device.hlid = wlvif->dev_hlid; wl12xx_cmd_role_start_dev() 451 cmd->device.session = wl->session_ids[wlvif->dev_hlid]; wl12xx_cmd_role_start_dev() 454 cmd->role_id, cmd->device.hlid, cmd->device.session); wl12xx_cmd_role_start_dev() 456 ret = wl1271_cmd_send(wl, CMD_ROLE_START, cmd, sizeof(*cmd), 0); wl12xx_cmd_role_start_dev() 458 wl1271_error("failed to initiate cmd role enable"); wl12xx_cmd_role_start_dev() 469 kfree(cmd); wl12xx_cmd_role_start_dev() 478 struct wl12xx_cmd_role_stop *cmd; wl12xx_cmd_role_stop_dev() local 484 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_role_stop_dev() 485 if (!cmd) { wl12xx_cmd_role_stop_dev() 490 wl1271_debug(DEBUG_CMD, "cmd role stop dev"); wl12xx_cmd_role_stop_dev() 492 cmd->role_id = wlvif->dev_role_id; wl12xx_cmd_role_stop_dev() 493 cmd->disc_type = DISCONNECT_IMMEDIATE; wl12xx_cmd_role_stop_dev() 494 cmd->reason = cpu_to_le16(WLAN_REASON_UNSPECIFIED); wl12xx_cmd_role_stop_dev() 496 ret = wl1271_cmd_send(wl, CMD_ROLE_STOP, cmd, sizeof(*cmd), 0); wl12xx_cmd_role_stop_dev() 498 wl1271_error("failed to initiate cmd role stop"); wl12xx_cmd_role_stop_dev() 505 kfree(cmd); wl12xx_cmd_role_stop_dev() 514 struct wl12xx_cmd_role_start *cmd; wl12xx_cmd_role_start_sta() local 518 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_role_start_sta() 519 if (!cmd) { wl12xx_cmd_role_start_sta() 524 wl1271_debug(DEBUG_CMD, "cmd role start sta %d", wlvif->role_id); wl12xx_cmd_role_start_sta() 526 cmd->role_id = wlvif->role_id; wl12xx_cmd_role_start_sta() 528 cmd->band = WLCORE_BAND_5GHZ; wl12xx_cmd_role_start_sta() 529 cmd->channel = wlvif->channel; wl12xx_cmd_role_start_sta() 530 cmd->sta.basic_rate_set = cpu_to_le32(wlvif->basic_rate_set); wl12xx_cmd_role_start_sta() 531 cmd->sta.beacon_interval = cpu_to_le16(wlvif->beacon_int); wl12xx_cmd_role_start_sta() 532 cmd->sta.ssid_type = WL12XX_SSID_TYPE_ANY; wl12xx_cmd_role_start_sta() 533 cmd->sta.ssid_len = wlvif->ssid_len; wl12xx_cmd_role_start_sta() 534 memcpy(cmd->sta.ssid, wlvif->ssid, wlvif->ssid_len); wl12xx_cmd_role_start_sta() 535 memcpy(cmd->sta.bssid, vif->bss_conf.bssid, ETH_ALEN); wl12xx_cmd_role_start_sta() 542 cmd->sta.local_rates = cpu_to_le32(supported_rates); wl12xx_cmd_role_start_sta() 544 cmd->channel_type = wlcore_get_native_channel_type(wlvif->channel_type); wl12xx_cmd_role_start_sta() 551 cmd->sta.hlid = wlvif->sta.hlid; wl12xx_cmd_role_start_sta() 552 cmd->sta.session = wl->session_ids[wlvif->sta.hlid]; wl12xx_cmd_role_start_sta() 559 cmd->sta.remote_rates = cpu_to_le32(supported_rates); wl12xx_cmd_role_start_sta() 563 wlvif->role_id, cmd->sta.hlid, cmd->sta.session, wl12xx_cmd_role_start_sta() 566 ret = wl1271_cmd_send(wl, CMD_ROLE_START, cmd, sizeof(*cmd), 0); wl12xx_cmd_role_start_sta() 568 wl1271_error("failed to initiate cmd role start sta"); wl12xx_cmd_role_start_sta() 580 kfree(cmd); wl12xx_cmd_role_start_sta() 589 struct wl12xx_cmd_role_stop *cmd; wl12xx_cmd_role_stop_sta() local 595 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_role_stop_sta() 596 if (!cmd) { wl12xx_cmd_role_stop_sta() 601 wl1271_debug(DEBUG_CMD, "cmd role stop sta %d", wlvif->role_id); wl12xx_cmd_role_stop_sta() 603 cmd->role_id = wlvif->role_id; wl12xx_cmd_role_stop_sta() 604 cmd->disc_type = DISCONNECT_IMMEDIATE; wl12xx_cmd_role_stop_sta() 605 cmd->reason = cpu_to_le16(WLAN_REASON_UNSPECIFIED); wl12xx_cmd_role_stop_sta() 607 ret = wl1271_cmd_send(wl, CMD_ROLE_STOP, cmd, sizeof(*cmd), 0); wl12xx_cmd_role_stop_sta() 609 wl1271_error("failed to initiate cmd role stop sta"); wl12xx_cmd_role_stop_sta() 616 kfree(cmd); wl12xx_cmd_role_stop_sta() 624 struct wl12xx_cmd_role_start *cmd; wl12xx_cmd_role_start_ap() local 630 wl1271_debug(DEBUG_CMD, "cmd role start ap %d", wlvif->role_id); wl12xx_cmd_role_start_ap() 639 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_role_start_ap() 640 if (!cmd) { wl12xx_cmd_role_start_ap() 657 cmd->role_id = wlvif->role_id; wl12xx_cmd_role_start_ap() 658 cmd->ap.aging_period = cpu_to_le16(wl->conf.tx.ap_aging_period); wl12xx_cmd_role_start_ap() 659 cmd->ap.bss_index = WL1271_AP_BSS_INDEX; wl12xx_cmd_role_start_ap() 660 cmd->ap.global_hlid = wlvif->ap.global_hlid; wl12xx_cmd_role_start_ap() 661 cmd->ap.broadcast_hlid = wlvif->ap.bcast_hlid; wl12xx_cmd_role_start_ap() 662 cmd->ap.global_session_id = wl->session_ids[wlvif->ap.global_hlid]; wl12xx_cmd_role_start_ap() 663 cmd->ap.bcast_session_id = wl->session_ids[wlvif->ap.bcast_hlid]; wl12xx_cmd_role_start_ap() 664 cmd->ap.basic_rate_set = cpu_to_le32(wlvif->basic_rate_set); wl12xx_cmd_role_start_ap() 665 cmd->ap.beacon_interval = cpu_to_le16(wlvif->beacon_int); wl12xx_cmd_role_start_ap() 666 cmd->ap.dtim_interval = bss_conf->dtim_period; wl12xx_cmd_role_start_ap() 667 cmd->ap.beacon_expiry = WL1271_AP_DEF_BEACON_EXP; wl12xx_cmd_role_start_ap() 669 cmd->ap.reset_tsf = 1; /* By default reset AP TSF */ wl12xx_cmd_role_start_ap() 670 cmd->ap.wmm = wlvif->wmm_enabled; wl12xx_cmd_role_start_ap() 671 cmd->channel = wlvif->channel; wl12xx_cmd_role_start_ap() 672 cmd->channel_type = wlcore_get_native_channel_type(wlvif->channel_type); wl12xx_cmd_role_start_ap() 676 cmd->ap.ssid_type = WL12XX_SSID_TYPE_PUBLIC; wl12xx_cmd_role_start_ap() 677 cmd->ap.ssid_len = wlvif->ssid_len; wl12xx_cmd_role_start_ap() 678 memcpy(cmd->ap.ssid, wlvif->ssid, wlvif->ssid_len); wl12xx_cmd_role_start_ap() 680 cmd->ap.ssid_type = WL12XX_SSID_TYPE_HIDDEN; wl12xx_cmd_role_start_ap() 681 cmd->ap.ssid_len = bss_conf->ssid_len; wl12xx_cmd_role_start_ap() 682 memcpy(cmd->ap.ssid, bss_conf->ssid, bss_conf->ssid_len); wl12xx_cmd_role_start_ap() 690 wl1271_debug(DEBUG_CMD, "cmd role start ap with supported_rates 0x%08x", wl12xx_cmd_role_start_ap() 693 cmd->ap.local_rates = cpu_to_le32(supported_rates); wl12xx_cmd_role_start_ap() 697 cmd->band = WLCORE_BAND_2_4GHZ; wl12xx_cmd_role_start_ap() 700 cmd->band = WLCORE_BAND_5GHZ; wl12xx_cmd_role_start_ap() 704 cmd->band = WLCORE_BAND_2_4GHZ; wl12xx_cmd_role_start_ap() 708 ret = wl1271_cmd_send(wl, CMD_ROLE_START, cmd, sizeof(*cmd), 0); wl12xx_cmd_role_start_ap() 710 wl1271_error("failed to initiate cmd role start ap"); wl12xx_cmd_role_start_ap() 723 kfree(cmd); wl12xx_cmd_role_start_ap() 731 struct wl12xx_cmd_role_stop *cmd; wl12xx_cmd_role_stop_ap() local 734 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_role_stop_ap() 735 if (!cmd) { wl12xx_cmd_role_stop_ap() 740 wl1271_debug(DEBUG_CMD, "cmd role stop ap %d", wlvif->role_id); wl12xx_cmd_role_stop_ap() 742 cmd->role_id = wlvif->role_id; wl12xx_cmd_role_stop_ap() 744 ret = wl1271_cmd_send(wl, CMD_ROLE_STOP, cmd, sizeof(*cmd), 0); wl12xx_cmd_role_stop_ap() 746 wl1271_error("failed to initiate cmd role stop ap"); wl12xx_cmd_role_stop_ap() 754 kfree(cmd); wl12xx_cmd_role_stop_ap() 763 struct wl12xx_cmd_role_start *cmd; wl12xx_cmd_role_start_ibss() local 767 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_role_start_ibss() 768 if (!cmd) { wl12xx_cmd_role_start_ibss() 773 wl1271_debug(DEBUG_CMD, "cmd role start ibss %d", wlvif->role_id); wl12xx_cmd_role_start_ibss() 775 cmd->role_id = wlvif->role_id; wl12xx_cmd_role_start_ibss() 777 cmd->band = WLCORE_BAND_5GHZ; wl12xx_cmd_role_start_ibss() 778 cmd->channel = wlvif->channel; wl12xx_cmd_role_start_ibss() 779 cmd->ibss.basic_rate_set = cpu_to_le32(wlvif->basic_rate_set); wl12xx_cmd_role_start_ibss() 780 cmd->ibss.beacon_interval = cpu_to_le16(wlvif->beacon_int); wl12xx_cmd_role_start_ibss() 781 cmd->ibss.dtim_interval = bss_conf->dtim_period; wl12xx_cmd_role_start_ibss() 782 cmd->ibss.ssid_type = WL12XX_SSID_TYPE_ANY; wl12xx_cmd_role_start_ibss() 783 cmd->ibss.ssid_len = wlvif->ssid_len; wl12xx_cmd_role_start_ibss() 784 memcpy(cmd->ibss.ssid, wlvif->ssid, wlvif->ssid_len); wl12xx_cmd_role_start_ibss() 785 memcpy(cmd->ibss.bssid, vif->bss_conf.bssid, ETH_ALEN); wl12xx_cmd_role_start_ibss() 786 cmd->sta.local_rates = cpu_to_le32(wlvif->rate_set); wl12xx_cmd_role_start_ibss() 793 cmd->ibss.hlid = wlvif->sta.hlid; wl12xx_cmd_role_start_ibss() 794 cmd->ibss.remote_rates = cpu_to_le32(wlvif->rate_set); wl12xx_cmd_role_start_ibss() 798 wlvif->role_id, cmd->sta.hlid, cmd->sta.session, wl12xx_cmd_role_start_ibss() 804 ret = wl1271_cmd_send(wl, CMD_ROLE_START, cmd, sizeof(*cmd), 0); wl12xx_cmd_role_start_ibss() 806 wl1271_error("failed to initiate cmd role enable"); wl12xx_cmd_role_start_ibss() 817 kfree(cmd); wl12xx_cmd_role_start_ibss() 837 wl1271_debug(DEBUG_CMD, "cmd test"); wl1271_cmd_test() 867 wl1271_debug(DEBUG_CMD, "cmd interrogate"); wl1271_cmd_interrogate() 888 * @valid_rets: bitmap of valid cmd status codes (i.e. return values). 889 * return the cmd status on success. 897 wl1271_debug(DEBUG_CMD, "cmd configure (%d)", id); wlcore_cmd_configure_failsafe() 933 struct cmd_enabledisable_path *cmd; wl1271_cmd_data_path() local 937 wl1271_debug(DEBUG_CMD, "cmd data path"); wl1271_cmd_data_path() 939 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl1271_cmd_data_path() 940 if (!cmd) { wl1271_cmd_data_path() 946 cmd->channel = 1; wl1271_cmd_data_path() 956 ret = wl1271_cmd_send(wl, cmd_rx, cmd, sizeof(*cmd), 0); wl1271_cmd_data_path() 958 wl1271_error("rx %s cmd for channel %d failed", wl1271_cmd_data_path() 959 enable ? "start" : "stop", cmd->channel); wl1271_cmd_data_path() 963 wl1271_debug(DEBUG_BOOT, "rx %s cmd channel %d", wl1271_cmd_data_path() 964 enable ? "start" : "stop", cmd->channel); wl1271_cmd_data_path() 966 ret = wl1271_cmd_send(wl, cmd_tx, cmd, sizeof(*cmd), 0); wl1271_cmd_data_path() 968 wl1271_error("tx %s cmd for channel %d failed", wl1271_cmd_data_path() 969 enable ? "start" : "stop", cmd->channel); wl1271_cmd_data_path() 973 wl1271_debug(DEBUG_BOOT, "tx %s cmd channel %d", wl1271_cmd_data_path() 974 enable ? "start" : "stop", cmd->channel); wl1271_cmd_data_path() 977 kfree(cmd); wl1271_cmd_data_path() 988 wl1271_debug(DEBUG_CMD, "cmd set ps mode"); wl1271_cmd_ps_mode() 1003 wl1271_error("cmd set_ps_mode failed"); wl1271_cmd_ps_mode() 1016 struct wl1271_cmd_template_set *cmd; wl1271_cmd_template_set() local 1019 wl1271_debug(DEBUG_CMD, "cmd template_set %d (role %d)", wl1271_cmd_template_set() 1025 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl1271_cmd_template_set() 1026 if (!cmd) { wl1271_cmd_template_set() 1032 cmd->role_id = role_id; wl1271_cmd_template_set() 1033 cmd->len = cpu_to_le16(buf_len); wl1271_cmd_template_set() 1034 cmd->template_type = template_id; wl1271_cmd_template_set() 1035 cmd->enabled_rates = cpu_to_le32(rates); wl1271_cmd_template_set() 1036 cmd->short_retry_limit = wl->conf.tx.tmpl_short_retry_limit; wl1271_cmd_template_set() 1037 cmd->long_retry_limit = wl->conf.tx.tmpl_long_retry_limit; wl1271_cmd_template_set() 1038 cmd->index = index; wl1271_cmd_template_set() 1041 memcpy(cmd->template_data, buf, buf_len); wl1271_cmd_template_set() 1043 ret = wl1271_cmd_send(wl, CMD_SET_TEMPLATE, cmd, sizeof(*cmd), 0); wl1271_cmd_template_set() 1045 wl1271_warning("cmd set_template failed: %d", ret); wl1271_cmd_template_set() 1050 kfree(cmd); wl1271_cmd_template_set() 1083 wl1271_warning("cmd buld null data failed %d", ret); wl12xx_cmd_build_null_data() 1108 wl1271_warning("cmd build klv null data failed %d", ret); wl12xx_cmd_build_klv_null_data() 1332 struct wl1271_cmd_set_keys *cmd; wl12xx_cmd_set_default_wep_key() local 1335 wl1271_debug(DEBUG_CMD, "cmd set_default_wep_key %d", id); wl12xx_cmd_set_default_wep_key() 1337 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_set_default_wep_key() 1338 if (!cmd) { wl12xx_cmd_set_default_wep_key() 1343 cmd->hlid = hlid; wl12xx_cmd_set_default_wep_key() 1344 cmd->key_id = id; wl12xx_cmd_set_default_wep_key() 1345 cmd->lid_key_type = WEP_DEFAULT_LID_TYPE; wl12xx_cmd_set_default_wep_key() 1346 cmd->key_action = cpu_to_le16(KEY_SET_ID); wl12xx_cmd_set_default_wep_key() 1347 cmd->key_type = KEY_WEP; wl12xx_cmd_set_default_wep_key() 1349 ret = wl1271_cmd_send(wl, CMD_SET_KEYS, cmd, sizeof(*cmd), 0); wl12xx_cmd_set_default_wep_key() 1351 wl1271_warning("cmd set_default_wep_key failed: %d", ret); wl12xx_cmd_set_default_wep_key() 1356 kfree(cmd); wl12xx_cmd_set_default_wep_key() 1366 struct wl1271_cmd_set_keys *cmd; wl1271_cmd_set_sta_key() local 1373 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl1271_cmd_set_sta_key() 1374 if (!cmd) { wl1271_cmd_set_sta_key() 1379 cmd->hlid = wlvif->sta.hlid; wl1271_cmd_set_sta_key() 1382 cmd->lid_key_type = WEP_DEFAULT_LID_TYPE; wl1271_cmd_set_sta_key() 1384 cmd->lid_key_type = BROADCAST_LID_TYPE; wl1271_cmd_set_sta_key() 1386 cmd->lid_key_type = UNICAST_LID_TYPE; wl1271_cmd_set_sta_key() 1388 cmd->key_action = cpu_to_le16(action); wl1271_cmd_set_sta_key() 1389 cmd->key_size = key_size; wl1271_cmd_set_sta_key() 1390 cmd->key_type = key_type; wl1271_cmd_set_sta_key() 1392 cmd->ac_seq_num16[0] = cpu_to_le16(tx_seq_16); wl1271_cmd_set_sta_key() 1393 cmd->ac_seq_num32[0] = cpu_to_le32(tx_seq_32); wl1271_cmd_set_sta_key() 1395 cmd->key_id = id; wl1271_cmd_set_sta_key() 1404 memcpy(cmd->key, key, 16); wl1271_cmd_set_sta_key() 1405 memcpy(cmd->key + 16, key + 24, 8); wl1271_cmd_set_sta_key() 1406 memcpy(cmd->key + 24, key + 16, 8); wl1271_cmd_set_sta_key() 1409 memcpy(cmd->key, key, key_size); wl1271_cmd_set_sta_key() 1412 wl1271_dump(DEBUG_CRYPT, "TARGET KEY: ", cmd, sizeof(*cmd)); wl1271_cmd_set_sta_key() 1414 ret = wl1271_cmd_send(wl, CMD_SET_KEYS, cmd, sizeof(*cmd), 0); wl1271_cmd_set_sta_key() 1421 kfree(cmd); wl1271_cmd_set_sta_key() 1435 struct wl1271_cmd_set_keys *cmd; wl1271_cmd_set_ap_key() local 1439 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl1271_cmd_set_ap_key() 1440 if (!cmd) wl1271_cmd_set_ap_key() 1456 cmd->lid_key_type = lid_type; wl1271_cmd_set_ap_key() 1457 cmd->hlid = hlid; wl1271_cmd_set_ap_key() 1458 cmd->key_action = cpu_to_le16(action); wl1271_cmd_set_ap_key() 1459 cmd->key_size = key_size; wl1271_cmd_set_ap_key() 1460 cmd->key_type = key_type; wl1271_cmd_set_ap_key() 1461 cmd->key_id = id; wl1271_cmd_set_ap_key() 1462 cmd->ac_seq_num16[0] = cpu_to_le16(tx_seq_16); wl1271_cmd_set_ap_key() 1463 cmd->ac_seq_num32[0] = cpu_to_le32(tx_seq_32); wl1271_cmd_set_ap_key() 1472 memcpy(cmd->key, key, 16); wl1271_cmd_set_ap_key() 1473 memcpy(cmd->key + 16, key + 24, 8); wl1271_cmd_set_ap_key() 1474 memcpy(cmd->key + 24, key + 16, 8); wl1271_cmd_set_ap_key() 1476 memcpy(cmd->key, key, key_size); wl1271_cmd_set_ap_key() 1479 wl1271_dump(DEBUG_CRYPT, "TARGET AP KEY: ", cmd, sizeof(*cmd)); wl1271_cmd_set_ap_key() 1481 ret = wl1271_cmd_send(wl, CMD_SET_KEYS, cmd, sizeof(*cmd), 0); wl1271_cmd_set_ap_key() 1488 kfree(cmd); wl1271_cmd_set_ap_key() 1495 struct wl12xx_cmd_set_peer_state *cmd; wl12xx_cmd_set_peer_state() local 1498 wl1271_debug(DEBUG_CMD, "cmd set peer state (hlid=%d)", hlid); wl12xx_cmd_set_peer_state() 1500 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_set_peer_state() 1501 if (!cmd) { wl12xx_cmd_set_peer_state() 1506 cmd->hlid = hlid; wl12xx_cmd_set_peer_state() 1507 cmd->state = WL1271_CMD_STA_STATE_CONNECTED; wl12xx_cmd_set_peer_state() 1511 cmd->wmm = wlvif->wmm_enabled; wl12xx_cmd_set_peer_state() 1513 ret = wl1271_cmd_send(wl, CMD_SET_PEER_STATE, cmd, sizeof(*cmd), 0); wl12xx_cmd_set_peer_state() 1520 kfree(cmd); wl12xx_cmd_set_peer_state() 1529 struct wl12xx_cmd_add_peer *cmd; wl12xx_cmd_add_peer() local 1533 wl1271_debug(DEBUG_CMD, "cmd add peer %d", (int)hlid); wl12xx_cmd_add_peer() 1535 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_add_peer() 1536 if (!cmd) { wl12xx_cmd_add_peer() 1541 memcpy(cmd->addr, sta->addr, ETH_ALEN); wl12xx_cmd_add_peer() 1542 cmd->bss_index = WL1271_AP_BSS_INDEX; wl12xx_cmd_add_peer() 1543 cmd->aid = sta->aid; wl12xx_cmd_add_peer() 1544 cmd->hlid = hlid; wl12xx_cmd_add_peer() 1545 cmd->sp_len = sta->max_sp; wl12xx_cmd_add_peer() 1546 cmd->wmm = sta->wme ? 1 : 0; wl12xx_cmd_add_peer() 1547 cmd->session_id = wl->session_ids[hlid]; wl12xx_cmd_add_peer() 1548 cmd->role_id = wlvif->role_id; wl12xx_cmd_add_peer() 1552 cmd->psd_type[NUM_ACCESS_CATEGORIES_COPY-1-i] = wl12xx_cmd_add_peer() 1555 cmd->psd_type[NUM_ACCESS_CATEGORIES_COPY-1-i] = wl12xx_cmd_add_peer() 1565 cmd->supported_rates = wl12xx_cmd_add_peer() 1570 cmd->supported_rates, sta->uapsd_queues); wl12xx_cmd_add_peer() 1572 ret = wl1271_cmd_send(wl, CMD_ADD_PEER, cmd, sizeof(*cmd), 0); wl12xx_cmd_add_peer() 1574 wl1271_error("failed to initiate cmd add peer"); wl12xx_cmd_add_peer() 1579 kfree(cmd); wl12xx_cmd_add_peer() 1588 struct wl12xx_cmd_remove_peer *cmd; wl12xx_cmd_remove_peer() local 1592 wl1271_debug(DEBUG_CMD, "cmd remove peer %d", (int)hlid); wl12xx_cmd_remove_peer() 1594 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_remove_peer() 1595 if (!cmd) { wl12xx_cmd_remove_peer() 1600 cmd->hlid = hlid; wl12xx_cmd_remove_peer() 1602 cmd->reason_opcode = 0; wl12xx_cmd_remove_peer() 1603 cmd->send_deauth_flag = 0; wl12xx_cmd_remove_peer() 1604 cmd->role_id = wlvif->role_id; wl12xx_cmd_remove_peer() 1606 ret = wl1271_cmd_send(wl, CMD_REMOVE_PEER, cmd, sizeof(*cmd), 0); wl12xx_cmd_remove_peer() 1608 wl1271_error("failed to initiate cmd remove peer"); wl12xx_cmd_remove_peer() 1625 kfree(cmd); wl12xx_cmd_remove_peer() 1688 struct wl12xx_cmd_regdomain_dfs_config *cmd = NULL; wlcore_cmd_regdomain_config_locked() local 1698 wl1271_debug(DEBUG_CMD, "cmd reg domain config"); wlcore_cmd_regdomain_config_locked() 1731 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wlcore_cmd_regdomain_config_locked() 1732 if (!cmd) { wlcore_cmd_regdomain_config_locked() 1737 cmd->ch_bit_map1 = cpu_to_le32(tmp_ch_bitmap[0]); wlcore_cmd_regdomain_config_locked() 1738 cmd->ch_bit_map2 = cpu_to_le32(tmp_ch_bitmap[1]); wlcore_cmd_regdomain_config_locked() 1739 cmd->dfs_region = wl->dfs_region; wlcore_cmd_regdomain_config_locked() 1742 "cmd reg domain bitmap1: 0x%08x, bitmap2: 0x%08x", wlcore_cmd_regdomain_config_locked() 1743 cmd->ch_bit_map1, cmd->ch_bit_map2); wlcore_cmd_regdomain_config_locked() 1745 ret = wl1271_cmd_send(wl, CMD_DFS_CHANNEL_CONFIG, cmd, sizeof(*cmd), 0); wlcore_cmd_regdomain_config_locked() 1765 kfree(cmd); wlcore_cmd_regdomain_config_locked() 1771 struct wl12xx_cmd_config_fwlog *cmd; wl12xx_cmd_config_fwlog() local 1774 wl1271_debug(DEBUG_CMD, "cmd config firmware logger"); wl12xx_cmd_config_fwlog() 1776 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_config_fwlog() 1777 if (!cmd) { wl12xx_cmd_config_fwlog() 1782 cmd->logger_mode = wl->conf.fwlog.mode; wl12xx_cmd_config_fwlog() 1783 cmd->log_severity = wl->conf.fwlog.severity; wl12xx_cmd_config_fwlog() 1784 cmd->timestamp = wl->conf.fwlog.timestamp; wl12xx_cmd_config_fwlog() 1785 cmd->output = wl->conf.fwlog.output; wl12xx_cmd_config_fwlog() 1786 cmd->threshold = wl->conf.fwlog.threshold; wl12xx_cmd_config_fwlog() 1788 ret = wl1271_cmd_send(wl, CMD_CONFIG_FWLOGGER, cmd, sizeof(*cmd), 0); wl12xx_cmd_config_fwlog() 1795 kfree(cmd); wl12xx_cmd_config_fwlog() 1803 struct wl12xx_cmd_start_fwlog *cmd; wl12xx_cmd_start_fwlog() local 1806 wl1271_debug(DEBUG_CMD, "cmd start firmware logger"); wl12xx_cmd_start_fwlog() 1808 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_start_fwlog() 1809 if (!cmd) { wl12xx_cmd_start_fwlog() 1814 ret = wl1271_cmd_send(wl, CMD_START_FWLOGGER, cmd, sizeof(*cmd), 0); wl12xx_cmd_start_fwlog() 1821 kfree(cmd); wl12xx_cmd_start_fwlog() 1829 struct wl12xx_cmd_stop_fwlog *cmd; wl12xx_cmd_stop_fwlog() local 1832 wl1271_debug(DEBUG_CMD, "cmd stop firmware logger"); wl12xx_cmd_stop_fwlog() 1834 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_stop_fwlog() 1835 if (!cmd) { wl12xx_cmd_stop_fwlog() 1840 ret = wl1271_cmd_send(wl, CMD_STOP_FWLOGGER, cmd, sizeof(*cmd), 0); wl12xx_cmd_stop_fwlog() 1847 kfree(cmd); wl12xx_cmd_stop_fwlog() 1856 struct wl12xx_cmd_roc *cmd; wl12xx_cmd_roc() local 1859 wl1271_debug(DEBUG_CMD, "cmd roc %d (%d)", channel, role_id); wl12xx_cmd_roc() 1864 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_roc() 1865 if (!cmd) { wl12xx_cmd_roc() 1870 cmd->role_id = role_id; wl12xx_cmd_roc() 1871 cmd->channel = channel; wl12xx_cmd_roc() 1874 cmd->band = WLCORE_BAND_2_4GHZ; wl12xx_cmd_roc() 1877 cmd->band = WLCORE_BAND_5GHZ; wl12xx_cmd_roc() 1886 ret = wl1271_cmd_send(wl, CMD_REMAIN_ON_CHANNEL, cmd, sizeof(*cmd), 0); wl12xx_cmd_roc() 1893 kfree(cmd); wl12xx_cmd_roc() 1901 struct wl12xx_cmd_croc *cmd; wl12xx_cmd_croc() local 1904 wl1271_debug(DEBUG_CMD, "cmd croc (%d)", role_id); wl12xx_cmd_croc() 1906 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_croc() 1907 if (!cmd) { wl12xx_cmd_croc() 1911 cmd->role_id = role_id; wl12xx_cmd_croc() 1913 ret = wl1271_cmd_send(wl, CMD_CANCEL_REMAIN_ON_CHANNEL, cmd, wl12xx_cmd_croc() 1914 sizeof(*cmd), 0); wl12xx_cmd_croc() 1921 kfree(cmd); wl12xx_cmd_croc() 1970 struct wl12xx_cmd_stop_channel_switch *cmd; wl12xx_cmd_stop_channel_switch() local 1973 wl1271_debug(DEBUG_ACX, "cmd stop channel switch"); wl12xx_cmd_stop_channel_switch() 1975 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_cmd_stop_channel_switch() 1976 if (!cmd) { wl12xx_cmd_stop_channel_switch() 1981 cmd->role_id = wlvif->role_id; wl12xx_cmd_stop_channel_switch() 1983 ret = wl1271_cmd_send(wl, CMD_STOP_CHANNEL_SWICTH, cmd, sizeof(*cmd), 0); wl12xx_cmd_stop_channel_switch() 1990 kfree(cmd); wl12xx_cmd_stop_channel_switch()
|
H A D | spi.c | 89 u8 *cmd; wl12xx_spi_reset() local 93 cmd = kzalloc(WSPI_INIT_CMD_LEN, GFP_KERNEL); wl12xx_spi_reset() 94 if (!cmd) { wl12xx_spi_reset() 96 "could not allocate cmd for spi reset\n"); wl12xx_spi_reset() 103 memset(cmd, 0xff, WSPI_INIT_CMD_LEN); wl12xx_spi_reset() 105 t.tx_buf = cmd; wl12xx_spi_reset() 111 kfree(cmd); wl12xx_spi_reset() 119 u8 *cmd = kzalloc(WSPI_INIT_CMD_LEN, GFP_KERNEL); wl12xx_spi_init() local 121 if (!cmd) { wl12xx_spi_init() 123 "could not allocate cmd for spi init\n"); wl12xx_spi_init() 134 cmd[0] = 0xff; wl12xx_spi_init() 135 cmd[1] = 0xff; wl12xx_spi_init() 136 cmd[2] = WSPI_INIT_CMD_START | WSPI_INIT_CMD_TX; wl12xx_spi_init() 137 cmd[3] = 0; wl12xx_spi_init() 138 cmd[4] = 0; wl12xx_spi_init() 139 cmd[5] = HW_ACCESS_WSPI_INIT_CMD_MASK << 3; wl12xx_spi_init() 140 cmd[5] |= HW_ACCESS_WSPI_FIXED_BUSY_LEN & WSPI_INIT_CMD_FIXEDBUSY_LEN; wl12xx_spi_init() 142 cmd[6] = WSPI_INIT_CMD_IOD | WSPI_INIT_CMD_IP | WSPI_INIT_CMD_CS wl12xx_spi_init() 146 cmd[6] |= WSPI_INIT_CMD_DIS_FIXEDBUSY; wl12xx_spi_init() 148 cmd[6] |= WSPI_INIT_CMD_EN_FIXEDBUSY; wl12xx_spi_init() 150 cmd[7] = crc7_be(0, cmd+2, WSPI_INIT_CMD_CRC_LEN) | WSPI_INIT_CMD_END; wl12xx_spi_init() 155 __swab32s((u32 *)cmd); wl12xx_spi_init() 156 __swab32s((u32 *)cmd+1); wl12xx_spi_init() 158 t.tx_buf = cmd; wl12xx_spi_init() 163 kfree(cmd); wl12xx_spi_init() 211 u32 *cmd; wl12xx_spi_raw_read() local 217 cmd = &wl->buffer_cmd; wl12xx_spi_raw_read() 220 *cmd = 0; wl12xx_spi_raw_read() 221 *cmd |= WSPI_CMD_READ; wl12xx_spi_raw_read() 222 *cmd |= (chunk_len << WSPI_CMD_BYTE_LENGTH_OFFSET) & wl12xx_spi_raw_read() 224 *cmd |= addr & WSPI_CMD_BYTE_ADDR; wl12xx_spi_raw_read() 227 *cmd |= WSPI_CMD_FIXED; wl12xx_spi_raw_read() 232 t[0].tx_buf = cmd; wl12xx_spi_raw_read() 278 u32 *cmd; wl12xx_spi_raw_write() local 287 cmd = &commands[0]; wl12xx_spi_raw_write() 292 *cmd = 0; wl12xx_spi_raw_write() 293 *cmd |= WSPI_CMD_WRITE; wl12xx_spi_raw_write() 294 *cmd |= (chunk_len << WSPI_CMD_BYTE_LENGTH_OFFSET) & wl12xx_spi_raw_write() 296 *cmd |= addr & WSPI_CMD_BYTE_ADDR; wl12xx_spi_raw_write() 299 *cmd |= WSPI_CMD_FIXED; wl12xx_spi_raw_write() 301 t[i].tx_buf = cmd; wl12xx_spi_raw_write() 302 t[i].len = sizeof(*cmd); wl12xx_spi_raw_write() 313 cmd++; wl12xx_spi_raw_write()
|
H A D | Makefile | 1 wlcore-objs = main.o cmd.o io.o event.o tx.o rx.o ps.o acx.o \
|
H A D | scan.c | 28 #include "cmd.h" 383 struct wl1271_cmd_sched_scan_ssid_list *cmd = NULL; wlcore_scan_sched_scan_ssid_list() local 388 wl1271_debug((DEBUG_CMD | DEBUG_SCAN), "cmd sched scan ssid list"); wlcore_scan_sched_scan_ssid_list() 403 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wlcore_scan_sched_scan_ssid_list() 404 if (!cmd) { wlcore_scan_sched_scan_ssid_list() 409 cmd->role_id = wlvif->role_id; wlcore_scan_sched_scan_ssid_list() 415 cmd->ssids[cmd->n_ssids].type = (ssids[i].ssid_len) ? wlcore_scan_sched_scan_ssid_list() 417 cmd->ssids[cmd->n_ssids].len = ssids[i].ssid_len; wlcore_scan_sched_scan_ssid_list() 418 memcpy(cmd->ssids[cmd->n_ssids].ssid, ssids[i].ssid, wlcore_scan_sched_scan_ssid_list() 420 cmd->n_ssids++; wlcore_scan_sched_scan_ssid_list() 431 cmd->ssids[cmd->n_ssids].type = SCAN_SSID_TYPE_PUBLIC; wlcore_scan_sched_scan_ssid_list() 432 cmd->ssids[cmd->n_ssids].len = sets[i].ssid.ssid_len; wlcore_scan_sched_scan_ssid_list() 433 memcpy(cmd->ssids[cmd->n_ssids].ssid, wlcore_scan_sched_scan_ssid_list() 435 cmd->n_ssids++; wlcore_scan_sched_scan_ssid_list() 447 for (j = 0; j < cmd->n_ssids; j++) wlcore_scan_sched_scan_ssid_list() 449 cmd->ssids[j].len) && wlcore_scan_sched_scan_ssid_list() 451 cmd->ssids[j].ssid, wlcore_scan_sched_scan_ssid_list() 453 cmd->ssids[j].type = wlcore_scan_sched_scan_ssid_list() 458 if (j == cmd->n_ssids) { wlcore_scan_sched_scan_ssid_list() 466 ret = wl1271_cmd_send(wl, CMD_CONNECTION_SCAN_SSID_CFG, cmd, wlcore_scan_sched_scan_ssid_list() 467 sizeof(*cmd), 0); wlcore_scan_sched_scan_ssid_list() 469 wl1271_error("cmd sched scan ssid list failed"); wlcore_scan_sched_scan_ssid_list() 474 kfree(cmd); wlcore_scan_sched_scan_ssid_list()
|
/linux-4.1.27/drivers/media/usb/cpia2/ |
H A D | cpia2_core.c | 144 struct cpia2_command cmd; cpia2_do_command() local 147 cmd.command = command; cpia2_do_command() 148 cmd.reg_count = 2; /* default */ cpia2_do_command() 149 cmd.direction = direction; cpia2_do_command() 156 cmd.req_mode = cpia2_do_command() 158 cmd.start = CPIA2_SYSTEM_DEVICE_HI; cpia2_do_command() 161 cmd.req_mode = cpia2_do_command() 163 cmd.reg_count = 8; cpia2_do_command() 164 cmd.start = CPIA2_SYSTEM_DESCRIP_VID_HI; cpia2_do_command() 167 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC; cpia2_do_command() 168 cmd.start = CPIA2_VC_ASIC_ID; cpia2_do_command() 171 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 172 cmd.start = CPIA2_VP_SENSOR_FLAGS; cpia2_do_command() 175 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 176 cmd.start = CPIA2_VP_DEVICEH; cpia2_do_command() 179 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 181 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 182 cmd.reg_count = 1; cpia2_do_command() 184 cmd.start = CPIA2_VP4_EXPOSURE_TARGET; cpia2_do_command() 186 cmd.start = CPIA2_VP5_EXPOSURE_TARGET; cpia2_do_command() 189 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 191 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 192 cmd.reg_count = 1; cpia2_do_command() 193 cmd.start = CPIA2_VP_YRANGE; cpia2_do_command() 196 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 198 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 199 cmd.reg_count = 1; cpia2_do_command() 201 cmd.start = CPIA2_VP_SATURATION; cpia2_do_command() 203 cmd.start = CPIA2_VP5_MCUVSATURATION; cpia2_do_command() 206 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 208 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 209 cmd.reg_count = 1; cpia2_do_command() 210 cmd.start = CPIA2_VP_GPIO_DATA; cpia2_do_command() 213 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 215 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 216 cmd.reg_count = 1; cpia2_do_command() 217 cmd.start = CPIA2_VP_GPIO_DIRECTION; cpia2_do_command() 220 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 222 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC; cpia2_do_command() 223 cmd.reg_count = 1; cpia2_do_command() 224 cmd.start = CPIA2_VC_MP_DATA; cpia2_do_command() 227 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 229 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC; cpia2_do_command() 230 cmd.reg_count = 1; cpia2_do_command() 231 cmd.start = CPIA2_VC_MP_DIR; cpia2_do_command() 234 cmd.req_mode = cpia2_do_command() 236 cmd.start = CPIA2_SYSTEM_INT_PACKET_CTRL; cpia2_do_command() 237 cmd.reg_count = 1; cpia2_do_command() 238 cmd.buffer.block_data[0] = param; cpia2_do_command() 241 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 243 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 244 cmd.reg_count = 1; cpia2_do_command() 245 cmd.start = CPIA2_VP_FLICKER_MODES; cpia2_do_command() 248 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VC; cpia2_do_command() 249 cmd.reg_count = 2; cpia2_do_command() 250 cmd.start = 0; cpia2_do_command() 251 cmd.buffer.registers[0].index = CPIA2_VC_ST_CTRL; cpia2_do_command() 252 cmd.buffer.registers[0].value = CPIA2_VC_ST_CTRL_SRC_VC | cpia2_do_command() 254 cmd.buffer.registers[1].index = CPIA2_VC_ST_CTRL; cpia2_do_command() 255 cmd.buffer.registers[1].value = CPIA2_VC_ST_CTRL_SRC_VC | cpia2_do_command() 261 cmd.req_mode = cpia2_do_command() 263 cmd.reg_count = 2; cpia2_do_command() 264 cmd.buffer.registers[0].index = cpia2_do_command() 266 cmd.buffer.registers[1].index = cpia2_do_command() 268 cmd.buffer.registers[0].value = CPIA2_SYSTEM_CONTROL_CLEAR_ERR; cpia2_do_command() 269 cmd.buffer.registers[1].value = cpia2_do_command() 273 cmd.req_mode = cpia2_do_command() 275 cmd.reg_count = 1; cpia2_do_command() 276 cmd.start = CPIA2_SYSTEM_SYSTEM_CONTROL; cpia2_do_command() 277 cmd.buffer.block_data[0] = 0; cpia2_do_command() 280 cmd.req_mode = cpia2_do_command() 282 cmd.reg_count = 1; cpia2_do_command() 283 cmd.start = CPIA2_SYSTEM_SYSTEM_CONTROL; cpia2_do_command() 284 cmd.buffer.block_data[0] = CPIA2_SYSTEM_CONTROL_CLEAR_ERR; cpia2_do_command() 287 cmd.buffer.block_data[0] = param; cpia2_do_command() 289 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 290 cmd.reg_count = 1; cpia2_do_command() 292 cmd.start = CPIA2_VP4_USER_MODE; cpia2_do_command() 294 cmd.start = CPIA2_VP5_USER_MODE; cpia2_do_command() 297 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 298 cmd.reg_count = 1; cpia2_do_command() 300 cmd.start = CPIA2_VP4_FRAMERATE_REQUEST; cpia2_do_command() 302 cmd.start = CPIA2_VP5_FRAMERATE_REQUEST; cpia2_do_command() 303 cmd.buffer.block_data[0] = param; cpia2_do_command() 306 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 308 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC; cpia2_do_command() 309 cmd.reg_count = 1; cpia2_do_command() 310 cmd.start = CPIA2_VC_WAKEUP; cpia2_do_command() 313 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 315 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC; cpia2_do_command() 316 cmd.reg_count = 1; cpia2_do_command() 317 cmd.start = CPIA2_VC_PW_CTRL; cpia2_do_command() 320 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 321 cmd.reg_count = 1; cpia2_do_command() 322 cmd.start = CPIA2_VP_SYSTEMSTATE; cpia2_do_command() 325 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 327 cmd.req_mode = cpia2_do_command() 329 cmd.reg_count = 1; cpia2_do_command() 330 cmd.start = CPIA2_SYSTEM_SYSTEM_CONTROL; cpia2_do_command() 333 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 335 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 336 cmd.reg_count = 1; cpia2_do_command() 337 cmd.start = CPIA2_VP_SYSTEMCTRL; cpia2_do_command() 340 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 342 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 343 cmd.reg_count = 1; cpia2_do_command() 344 cmd.start = CPIA2_VP_EXPOSURE_MODES; cpia2_do_command() 347 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 349 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 350 cmd.reg_count = 1; cpia2_do_command() 351 cmd.start = CPIA2_VP_DEVICE_CONFIG; cpia2_do_command() 354 cmd.buffer.block_data[0] = param; cpia2_do_command() 355 cmd.req_mode = cpia2_do_command() 357 cmd.reg_count = 1; cpia2_do_command() 358 cmd.start = CPIA2_SYSTEM_VP_SERIAL_ADDR; cpia2_do_command() 361 cmd.buffer.block_data[0] = param; cpia2_do_command() 362 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 363 cmd.reg_count = 1; cpia2_do_command() 364 cmd.start = CPIA2_SENSOR_CR1; cpia2_do_command() 367 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 369 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC; cpia2_do_command() 370 cmd.reg_count = 1; cpia2_do_command() 371 cmd.start = CPIA2_VC_VC_CTRL; cpia2_do_command() 374 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VC; cpia2_do_command() 375 cmd.reg_count = 1; cpia2_do_command() 376 cmd.buffer.registers[0].index = CPIA2_VC_VC_TARGET_KB; cpia2_do_command() 377 cmd.buffer.registers[0].value = param; cpia2_do_command() 380 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VC; cpia2_do_command() 381 cmd.reg_count = 4; cpia2_do_command() 382 cmd.buffer.registers[0].index = CPIA2_VC_VC_JPEG_OPT; cpia2_do_command() 383 cmd.buffer.registers[0].value = cpia2_do_command() 385 cmd.buffer.registers[1].index = CPIA2_VC_VC_USER_SQUEEZE; cpia2_do_command() 386 cmd.buffer.registers[1].value = 20; cpia2_do_command() 387 cmd.buffer.registers[2].index = CPIA2_VC_VC_CREEP_PERIOD; cpia2_do_command() 388 cmd.buffer.registers[2].value = 2; cpia2_do_command() 389 cmd.buffer.registers[3].index = CPIA2_VC_VC_JPEG_OPT; cpia2_do_command() 390 cmd.buffer.registers[3].value = CPIA2_VC_VC_JPEG_OPT_DEFAULT; cpia2_do_command() 393 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 394 cmd.reg_count = 1; cpia2_do_command() 395 cmd.start = CPIA2_VP_REHASH_VALUES; cpia2_do_command() 396 cmd.buffer.block_data[0] = param; cpia2_do_command() 401 cmd.buffer.block_data[0] = param; /* Then fall through */ cpia2_do_command() 403 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_do_command() 404 cmd.reg_count = 1; cpia2_do_command() 406 cmd.start = CPIA2_VP4_USER_EFFECTS; cpia2_do_command() 408 cmd.start = CPIA2_VP5_USER_EFFECTS; cpia2_do_command() 415 retval = cpia2_send_command(cam, &cmd); cpia2_do_command() 426 cmd.buffer.block_data[0]; cpia2_do_command() 428 cmd.buffer.block_data[1]; cpia2_do_command() 431 cam->params.pnp_id.vendor = (cmd.buffer.block_data[0] << 8) | cpia2_do_command() 432 cmd.buffer.block_data[1]; cpia2_do_command() 433 cam->params.pnp_id.product = (cmd.buffer.block_data[2] << 8) | cpia2_do_command() 434 cmd.buffer.block_data[3]; cpia2_do_command() 436 (cmd.buffer.block_data[4] << 8) | cpia2_do_command() 437 cmd.buffer.block_data[5]; cpia2_do_command() 448 cam->params.version.asic_id = cmd.buffer.block_data[0]; cpia2_do_command() 449 cam->params.version.asic_rev = cmd.buffer.block_data[1]; cpia2_do_command() 452 cam->params.version.sensor_flags = cmd.buffer.block_data[0]; cpia2_do_command() 453 cam->params.version.sensor_rev = cmd.buffer.block_data[1]; cpia2_do_command() 456 cam->params.version.vp_device_hi = cmd.buffer.block_data[0]; cpia2_do_command() 457 cam->params.version.vp_device_lo = cmd.buffer.block_data[1]; cpia2_do_command() 460 cam->params.vp_params.gpio_data = cmd.buffer.block_data[0]; cpia2_do_command() 463 cam->params.vp_params.gpio_direction = cmd.buffer.block_data[0]; cpia2_do_command() 466 cam->params.vc_params.vc_mp_direction =cmd.buffer.block_data[0]; cpia2_do_command() 469 cam->params.vc_params.vc_mp_data = cmd.buffer.block_data[0]; cpia2_do_command() 473 cmd.buffer.block_data[0]; cpia2_do_command() 476 cam->params.vc_params.wakeup = cmd.buffer.block_data[0]; cpia2_do_command() 479 cam->params.vc_params.pw_control = cmd.buffer.block_data[0]; cpia2_do_command() 482 cam->params.camera_state.system_ctrl = cmd.buffer.block_data[0]; cpia2_do_command() 485 cam->params.vp_params.system_state = cmd.buffer.block_data[0]; cpia2_do_command() 488 cam->params.vp_params.system_ctrl = cmd.buffer.block_data[0]; cpia2_do_command() 491 cam->params.vp_params.exposure_modes = cmd.buffer.block_data[0]; cpia2_do_command() 494 cam->params.vp_params.device_config = cmd.buffer.block_data[0]; cpia2_do_command() 497 cam->params.vc_params.vc_control = cmd.buffer.block_data[0]; cpia2_do_command() 500 cam->params.vp_params.video_mode = cmd.buffer.block_data[0]; cpia2_do_command() 503 cam->params.vp_params.user_effects = cmd.buffer.block_data[0]; cpia2_do_command() 517 #define DIR(cmd) ((cmd->direction == TRANSFER_WRITE) ? "Write" : "Read") 518 #define BINDEX(cmd) (cmd->req_mode & 0x03) 520 int cpia2_send_command(struct camera_data *cam, struct cpia2_command *cmd) cpia2_send_command() argument 527 switch (cmd->req_mode & 0x0c) { cpia2_send_command() 529 count = cmd->reg_count * sizeof(struct cpia2_register); cpia2_send_command() 531 buffer = (u8 *) & cmd->buffer; cpia2_send_command() 533 DBG("%s Random: Register block %s\n", DIR(cmd), cpia2_send_command() 534 block_name[BINDEX(cmd)]); cpia2_send_command() 537 count = cmd->reg_count; cpia2_send_command() 538 start = cmd->start; cpia2_send_command() 539 buffer = cmd->buffer.block_data; cpia2_send_command() 541 DBG("%s Block: Register block %s\n", DIR(cmd), cpia2_send_command() 542 block_name[BINDEX(cmd)]); cpia2_send_command() 545 count = cmd->reg_count * sizeof(struct cpia2_reg_mask); cpia2_send_command() 547 buffer = (u8 *) & cmd->buffer; cpia2_send_command() 549 DBG("%s Mask: Register block %s\n", DIR(cmd), cpia2_send_command() 550 block_name[BINDEX(cmd)]); cpia2_send_command() 553 count = cmd->reg_count; cpia2_send_command() 554 start = cmd->start; cpia2_send_command() 555 buffer = cmd->buffer.block_data; cpia2_send_command() 557 DBG("%s Repeat: Register block %s\n", DIR(cmd), cpia2_send_command() 558 block_name[BINDEX(cmd)]); cpia2_send_command() 567 cmd->req_mode, cpia2_send_command() 568 start, count, cmd->direction); cpia2_send_command() 572 for (i = 0; i < cmd->reg_count; i++) { cpia2_send_command() 573 if((cmd->req_mode & 0x0c) == CAMERAACCESS_TYPE_BLOCK) cpia2_send_command() 575 DIR(cmd), start + i, buffer[i]); cpia2_send_command() 576 if((cmd->req_mode & 0x0c) == CAMERAACCESS_TYPE_RANDOM) cpia2_send_command() 578 DIR(cmd), cmd->buffer.registers[i].index, cpia2_send_command() 579 cmd->buffer.registers[i].value); cpia2_send_command() 616 struct cpia2_command cmd; cpia2_reset_camera() local 630 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VC; cpia2_reset_camera() 631 cmd.direction = TRANSFER_WRITE; cpia2_reset_camera() 632 cmd.reg_count = 2; cpia2_reset_camera() 633 cmd.buffer.registers[0].index = CPIA2_VC_ST_CTRL; cpia2_reset_camera() 634 cmd.buffer.registers[0].value = CPIA2_VC_ST_CTRL_SRC_VC | cpia2_reset_camera() 636 cmd.buffer.registers[1].index = CPIA2_VC_ST_CTRL; cpia2_reset_camera() 637 cmd.buffer.registers[1].value = CPIA2_VC_ST_CTRL_SRC_VC | cpia2_reset_camera() 641 cpia2_send_command(cam, &cmd); cpia2_reset_camera() 647 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_SYSTEM; cpia2_reset_camera() 648 cmd.buffer.registers[0].index = CPIA2_SYSTEM_INT_PACKET_CTRL; cpia2_reset_camera() 649 cmd.buffer.registers[0].value = cpia2_reset_camera() 651 cmd.reg_count = 1; cpia2_reset_camera() 652 cpia2_send_command(cam, &cmd); cpia2_reset_camera() 667 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VP; cpia2_reset_camera() 670 cmd.buffer.registers[0].index = CPIA2_VP5_MYBLACK_LEVEL; cpia2_reset_camera() 671 cmd.buffer.registers[0].value = 0; /* reduce from the default cpia2_reset_camera() 673 cmd.buffer.registers[1].index = CPIA2_VP5_MCYRANGE; cpia2_reset_camera() 674 cmd.buffer.registers[1].value = 0x92; /* increase from 100% to cpia2_reset_camera() 677 cmd.buffer.registers[2].index = CPIA2_VP5_MYCEILING; cpia2_reset_camera() 678 cmd.buffer.registers[2].value = 0xFF; /* Increase from the cpia2_reset_camera() 681 cmd.buffer.registers[3].index = CPIA2_VP5_MCUVSATURATION; cpia2_reset_camera() 682 cmd.buffer.registers[3].value = 0xFF; /* Increase from the rec cpia2_reset_camera() 685 cmd.buffer.registers[4].index = CPIA2_VP5_ANTIFLKRSETUP; cpia2_reset_camera() 686 cmd.buffer.registers[4].value = 0x80; /* Inhibit the cpia2_reset_camera() 690 cmd.buffer.registers[5].index = CPIA2_VP_RAM_ADDR_H; cpia2_reset_camera() 691 cmd.buffer.registers[5].value = 0x01; cpia2_reset_camera() 692 cmd.buffer.registers[6].index = CPIA2_VP_RAM_ADDR_L; cpia2_reset_camera() 693 cmd.buffer.registers[6].value = 0xE3; cpia2_reset_camera() 694 cmd.buffer.registers[7].index = CPIA2_VP_RAM_DATA; cpia2_reset_camera() 695 cmd.buffer.registers[7].value = 0x02; cpia2_reset_camera() 696 cmd.buffer.registers[8].index = CPIA2_VP_RAM_DATA; cpia2_reset_camera() 697 cmd.buffer.registers[8].value = 0xFC; cpia2_reset_camera() 699 cmd.direction = TRANSFER_WRITE; cpia2_reset_camera() 700 cmd.reg_count = 9; cpia2_reset_camera() 702 cpia2_send_command(cam, &cmd); cpia2_reset_camera() 726 cmd.buffer.registers[0].value = tmp_reg & cpia2_reset_camera() 730 cmd.buffer.registers[1].value = cam->params.vp_params.device_config | cpia2_reset_camera() 732 cmd.buffer.registers[0].index = CPIA2_VP_SYSTEMCTRL; cpia2_reset_camera() 733 cmd.buffer.registers[1].index = CPIA2_VP_DEVICE_CONFIG; cpia2_reset_camera() 734 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VP; cpia2_reset_camera() 735 cmd.reg_count = 2; cpia2_reset_camera() 736 cmd.direction = TRANSFER_WRITE; cpia2_reset_camera() 737 cmd.start = 0; cpia2_reset_camera() 738 cpia2_send_command(cam, &cmd); cpia2_reset_camera() 772 cmd.buffer.registers[0].value = cam->params.vp_params.device_config & cpia2_reset_camera() 776 cmd.buffer.registers[1].value = cpia2_reset_camera() 779 cmd.buffer.registers[0].index = CPIA2_VP_DEVICE_CONFIG; cpia2_reset_camera() 780 cmd.buffer.registers[1].index = CPIA2_VP_SYSTEMCTRL; cpia2_reset_camera() 781 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VP; cpia2_reset_camera() 782 cmd.reg_count = 2; cpia2_reset_camera() 783 cmd.direction = TRANSFER_WRITE; cpia2_reset_camera() 785 cpia2_send_command(cam, &cmd); cpia2_reset_camera() 893 struct cpia2_command *cmd, cpia2_send_onebyte_command() 896 cmd->buffer.block_data[0] = datum; cpia2_send_onebyte_command() 897 cmd->start = start; cpia2_send_onebyte_command() 898 cmd->reg_count = 1; cpia2_send_onebyte_command() 899 return cpia2_send_command(cam, cmd); cpia2_send_onebyte_command() 907 struct cpia2_command cmd; apply_vp_patch() local 916 cmd.req_mode = CAMERAACCESS_TYPE_REPEAT | CAMERAACCESS_VP; apply_vp_patch() 917 cmd.direction = TRANSFER_WRITE; apply_vp_patch() 920 cpia2_send_onebyte_command(cam, &cmd, 0x0A, fw->data[0]); /* hi */ apply_vp_patch() 921 cpia2_send_onebyte_command(cam, &cmd, 0x0B, fw->data[1]); /* lo */ apply_vp_patch() 925 cmd.start = 0x0C; /* Data */ apply_vp_patch() 926 cmd.reg_count = min_t(int, 64, fw->size - i); apply_vp_patch() 927 memcpy(cmd.buffer.block_data, &fw->data[i], cmd.reg_count); apply_vp_patch() 928 cpia2_send_command(cam, &cmd); apply_vp_patch() 932 cpia2_send_onebyte_command(cam, &cmd, 0x0A, fw->data[0]); /* hi */ apply_vp_patch() 933 cpia2_send_onebyte_command(cam, &cmd, 0x0B, fw->data[1]); /* lo */ apply_vp_patch() 936 cpia2_send_onebyte_command(cam, &cmd, 0x0D, 1); apply_vp_patch() 1146 struct cpia2_command cmd; config_sensor_410() local 1189 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VC; config_sensor_410() 1190 cmd.direction = TRANSFER_WRITE; config_sensor_410() 1193 cmd.buffer.registers[i].index = CPIA2_VC_VC_FORMAT; config_sensor_410() 1195 cmd.buffer.registers[i++].value = config_sensor_410() 1199 cmd.buffer.registers[i++].value = config_sensor_410() 1204 cmd.buffer.registers[i].index = CPIA2_VC_VC_CLOCKS; config_sensor_410() 1207 cmd.buffer.registers[i++].value= config_sensor_410() 1214 cmd.buffer.registers[i++].value= config_sensor_410() 1220 cmd.buffer.registers[i++].value = config_sensor_410() 1225 cmd.buffer.registers[i++].value = config_sensor_410() 1231 DBG("VC_Clocks (0xc4) = 0x%0X\n", cmd.buffer.registers[i-1].value); config_sensor_410() 1234 cmd.buffer.registers[i].index = CPIA2_VC_VC_IHSIZE_LO; config_sensor_410() 1236 cmd.buffer.registers[i++].value = config_sensor_410() 1239 cmd.buffer.registers[i++].value = config_sensor_410() 1243 cmd.buffer.registers[i].index = CPIA2_VC_VC_XLIM_HI; config_sensor_410() 1245 cmd.buffer.registers[i++].value = (u8) 0; config_sensor_410() 1247 cmd.buffer.registers[i++].value = (u8) 1; config_sensor_410() 1249 cmd.buffer.registers[i].index = CPIA2_VC_VC_XLIM_LO; config_sensor_410() 1251 cmd.buffer.registers[i++].value = (u8) 208; config_sensor_410() 1253 cmd.buffer.registers[i++].value = (u8) 160; config_sensor_410() 1255 cmd.buffer.registers[i].index = CPIA2_VC_VC_YLIM_HI; config_sensor_410() 1257 cmd.buffer.registers[i++].value = (u8) 0; config_sensor_410() 1259 cmd.buffer.registers[i++].value = (u8) 1; config_sensor_410() 1261 cmd.buffer.registers[i].index = CPIA2_VC_VC_YLIM_LO; config_sensor_410() 1263 cmd.buffer.registers[i++].value = (u8) 160; config_sensor_410() 1265 cmd.buffer.registers[i++].value = (u8) 64; config_sensor_410() 1268 cmd.buffer.registers[i].index = CPIA2_VC_VC_OHSIZE; config_sensor_410() 1269 cmd.buffer.registers[i++].value = cam->params.roi.width / 4; config_sensor_410() 1271 cmd.buffer.registers[i].index = CPIA2_VC_VC_OVSIZE; config_sensor_410() 1272 cmd.buffer.registers[i++].value = cam->params.roi.height / 4; config_sensor_410() 1275 cmd.buffer.registers[i].index = CPIA2_VC_VC_HCROP; config_sensor_410() 1277 cmd.buffer.registers[i++].value = config_sensor_410() 1280 cmd.buffer.registers[i++].value = config_sensor_410() 1283 cmd.buffer.registers[i].index = CPIA2_VC_VC_VCROP; config_sensor_410() 1285 cmd.buffer.registers[i++].value = config_sensor_410() 1288 cmd.buffer.registers[i++].value = config_sensor_410() 1292 cmd.buffer.registers[i].index = CPIA2_VC_VC_HPHASE; config_sensor_410() 1293 cmd.buffer.registers[i++].value = (u8) 0; config_sensor_410() 1295 cmd.buffer.registers[i].index = CPIA2_VC_VC_VPHASE; config_sensor_410() 1296 cmd.buffer.registers[i++].value = (u8) 0; config_sensor_410() 1298 cmd.buffer.registers[i].index = CPIA2_VC_VC_HISPAN; config_sensor_410() 1299 cmd.buffer.registers[i++].value = (u8) 31; config_sensor_410() 1301 cmd.buffer.registers[i].index = CPIA2_VC_VC_VISPAN; config_sensor_410() 1302 cmd.buffer.registers[i++].value = (u8) 31; config_sensor_410() 1304 cmd.buffer.registers[i].index = CPIA2_VC_VC_HICROP; config_sensor_410() 1305 cmd.buffer.registers[i++].value = (u8) 0; config_sensor_410() 1307 cmd.buffer.registers[i].index = CPIA2_VC_VC_VICROP; config_sensor_410() 1308 cmd.buffer.registers[i++].value = (u8) 0; config_sensor_410() 1310 cmd.buffer.registers[i].index = CPIA2_VC_VC_HFRACT; config_sensor_410() 1311 cmd.buffer.registers[i++].value = (u8) 0x81; /* = 8/1 = 8 (HIBYTE/LOBYTE) */ config_sensor_410() 1313 cmd.buffer.registers[i].index = CPIA2_VC_VC_VFRACT; config_sensor_410() 1314 cmd.buffer.registers[i++].value = (u8) 0x81; /* = 8/1 = 8 (HIBYTE/LOBYTE) */ config_sensor_410() 1316 cmd.reg_count = i; config_sensor_410() 1318 cpia2_send_command(cam, &cmd); config_sensor_410() 1332 struct cpia2_command cmd; config_sensor_500() local 1363 cmd.req_mode = CAMERAACCESS_TYPE_RANDOM | CAMERAACCESS_VC; config_sensor_500() 1364 cmd.direction = TRANSFER_WRITE; config_sensor_500() 1368 cmd.buffer.registers[i].index = CPIA2_VC_VC_FORMAT; config_sensor_500() 1369 cmd.buffer.registers[i].value = (u8) CPIA2_VC_VC_FORMAT_UFIRST; config_sensor_500() 1371 cmd.buffer.registers[i].value |= (u8) CPIA2_VC_VC_FORMAT_DECIMATING; config_sensor_500() 1375 cmd.buffer.registers[i].index = CPIA2_VC_VC_CLOCKS; config_sensor_500() 1378 cmd.buffer.registers[i].value = config_sensor_500() 1381 cmd.buffer.registers[i].value = config_sensor_500() 1386 cmd.buffer.registers[i].value = config_sensor_500() 1389 cmd.buffer.registers[i].value = config_sensor_500() 1395 DBG("VC_CLOCKS = 0x%X\n", cmd.buffer.registers[i-1].value); config_sensor_500() 1398 cmd.buffer.registers[i].index = CPIA2_VC_VC_IHSIZE_LO; config_sensor_500() 1400 cmd.buffer.registers[i].value = config_sensor_500() 1403 cmd.buffer.registers[i].value = config_sensor_500() 1406 DBG("Input width = %d\n", cmd.buffer.registers[i-1].value); config_sensor_500() 1409 cmd.buffer.registers[i].index = CPIA2_VC_VC_XLIM_HI; config_sensor_500() 1411 cmd.buffer.registers[i++].value = (u8) 2; config_sensor_500() 1413 cmd.buffer.registers[i++].value = (u8) 1; config_sensor_500() 1415 cmd.buffer.registers[i].index = CPIA2_VC_VC_XLIM_LO; config_sensor_500() 1417 cmd.buffer.registers[i++].value = (u8) 250; config_sensor_500() 1419 cmd.buffer.registers[i++].value = (u8) 125; config_sensor_500() 1421 cmd.buffer.registers[i++].value = (u8) 160; config_sensor_500() 1423 cmd.buffer.registers[i].index = CPIA2_VC_VC_YLIM_HI; config_sensor_500() 1425 cmd.buffer.registers[i++].value = (u8) 2; config_sensor_500() 1427 cmd.buffer.registers[i++].value = (u8) 1; config_sensor_500() 1429 cmd.buffer.registers[i].index = CPIA2_VC_VC_YLIM_LO; config_sensor_500() 1431 cmd.buffer.registers[i++].value = (u8) 12; config_sensor_500() 1433 cmd.buffer.registers[i++].value = (u8) 64; config_sensor_500() 1435 cmd.buffer.registers[i++].value = (u8) 6; config_sensor_500() 1438 cmd.buffer.registers[i].index = CPIA2_VC_VC_OHSIZE; config_sensor_500() 1440 cmd.buffer.registers[i++].value = STV_IMAGE_CIF_COLS / 4; config_sensor_500() 1442 cmd.buffer.registers[i++].value = width / 4; config_sensor_500() 1444 cmd.buffer.registers[i].index = CPIA2_VC_VC_OVSIZE; config_sensor_500() 1446 cmd.buffer.registers[i++].value = STV_IMAGE_CIF_ROWS / 4; config_sensor_500() 1448 cmd.buffer.registers[i++].value = height / 4; config_sensor_500() 1451 cmd.buffer.registers[i].index = CPIA2_VC_VC_HCROP; config_sensor_500() 1453 cmd.buffer.registers[i++].value = config_sensor_500() 1456 cmd.buffer.registers[i++].value = config_sensor_500() 1459 cmd.buffer.registers[i++].value = config_sensor_500() 1462 cmd.buffer.registers[i++].value = config_sensor_500() 1465 cmd.buffer.registers[i].index = CPIA2_VC_VC_VCROP; config_sensor_500() 1467 cmd.buffer.registers[i++].value = config_sensor_500() 1470 cmd.buffer.registers[i++].value = config_sensor_500() 1473 cmd.buffer.registers[i++].value = config_sensor_500() 1476 cmd.buffer.registers[i++].value = config_sensor_500() 1480 cmd.buffer.registers[i].index = CPIA2_VC_VC_HPHASE; config_sensor_500() 1482 cmd.buffer.registers[i++].value = (u8) 36; config_sensor_500() 1484 cmd.buffer.registers[i++].value = (u8) 0; config_sensor_500() 1486 cmd.buffer.registers[i].index = CPIA2_VC_VC_VPHASE; config_sensor_500() 1488 cmd.buffer.registers[i++].value = (u8) 32; config_sensor_500() 1490 cmd.buffer.registers[i++].value = (u8) 0; config_sensor_500() 1492 cmd.buffer.registers[i].index = CPIA2_VC_VC_HISPAN; config_sensor_500() 1494 cmd.buffer.registers[i++].value = (u8) 26; config_sensor_500() 1496 cmd.buffer.registers[i++].value = (u8) 31; config_sensor_500() 1498 cmd.buffer.registers[i].index = CPIA2_VC_VC_VISPAN; config_sensor_500() 1500 cmd.buffer.registers[i++].value = (u8) 21; config_sensor_500() 1502 cmd.buffer.registers[i++].value = (u8) 31; config_sensor_500() 1504 cmd.buffer.registers[i].index = CPIA2_VC_VC_HICROP; config_sensor_500() 1505 cmd.buffer.registers[i++].value = (u8) 0; config_sensor_500() 1507 cmd.buffer.registers[i].index = CPIA2_VC_VC_VICROP; config_sensor_500() 1508 cmd.buffer.registers[i++].value = (u8) 0; config_sensor_500() 1510 cmd.buffer.registers[i].index = CPIA2_VC_VC_HFRACT; config_sensor_500() 1512 cmd.buffer.registers[i++].value = (u8) 0x2B; /* 2/11 */ config_sensor_500() 1514 cmd.buffer.registers[i++].value = (u8) 0x81; /* 8/1 */ config_sensor_500() 1516 cmd.buffer.registers[i].index = CPIA2_VC_VC_VFRACT; config_sensor_500() 1518 cmd.buffer.registers[i++].value = (u8) 0x13; /* 1/3 */ config_sensor_500() 1520 cmd.buffer.registers[i++].value = (u8) 0x81; /* 8/1 */ config_sensor_500() 1522 cmd.reg_count = i; config_sensor_500() 1524 cpia2_send_command(cam, &cmd); config_sensor_500() 1831 struct cpia2_command cmd; set_lowlight_boost() local 1837 cmd.direction = TRANSFER_WRITE; set_lowlight_boost() 1838 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; set_lowlight_boost() 1839 cmd.reg_count = 3; set_lowlight_boost() 1840 cmd.start = CPIA2_VP_RAM_ADDR_H; set_lowlight_boost() 1842 cmd.buffer.block_data[0] = 0; /* High byte of address to write to */ set_lowlight_boost() 1843 cmd.buffer.block_data[1] = 0x59; /* Low byte of address to write to */ set_lowlight_boost() 1844 cmd.buffer.block_data[2] = 0; /* High byte of data to write */ set_lowlight_boost() 1846 cpia2_send_command(cam, &cmd); set_lowlight_boost() 1849 cmd.buffer.block_data[0] = 0x02; /* Low byte data to write */ set_lowlight_boost() 1851 cmd.buffer.block_data[0] = 0x06; set_lowlight_boost() 1853 cmd.start = CPIA2_VP_RAM_DATA; set_lowlight_boost() 1854 cmd.reg_count = 1; set_lowlight_boost() 1855 cpia2_send_command(cam, &cmd); set_lowlight_boost() 1891 struct cpia2_command cmd; cpia2_dbg_dump_registers() local 1896 cmd.direction = TRANSFER_READ; cpia2_dbg_dump_registers() 1899 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_SYSTEM; cpia2_dbg_dump_registers() 1900 cmd.reg_count = 3; cpia2_dbg_dump_registers() 1901 cmd.start = 0; cpia2_dbg_dump_registers() 1902 cpia2_send_command(cam, &cmd); cpia2_dbg_dump_registers() 1904 cmd.buffer.block_data[0]); cpia2_dbg_dump_registers() 1906 cmd.buffer.block_data[1]); cpia2_dbg_dump_registers() 1908 cmd.buffer.block_data[2]); cpia2_dbg_dump_registers() 1911 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VC; cpia2_dbg_dump_registers() 1912 cmd.reg_count = 4; cpia2_dbg_dump_registers() 1913 cmd.start = 0x80; cpia2_dbg_dump_registers() 1914 cpia2_send_command(cam, &cmd); cpia2_dbg_dump_registers() 1916 cmd.buffer.block_data[0]); cpia2_dbg_dump_registers() 1918 cmd.buffer.block_data[1]); cpia2_dbg_dump_registers() 1920 cmd.buffer.block_data[2]); cpia2_dbg_dump_registers() 1922 cmd.buffer.block_data[3]); cpia2_dbg_dump_registers() 1924 cmd.start = 0xA0; /* ST_CTRL */ cpia2_dbg_dump_registers() 1925 cmd.reg_count = 1; cpia2_dbg_dump_registers() 1926 cpia2_send_command(cam, &cmd); cpia2_dbg_dump_registers() 1928 cmd.buffer.block_data[0]); cpia2_dbg_dump_registers() 1930 cmd.start = 0xA4; /* Stream status */ cpia2_dbg_dump_registers() 1931 cpia2_send_command(cam, &cmd); cpia2_dbg_dump_registers() 1933 cmd.buffer.block_data[0]); cpia2_dbg_dump_registers() 1935 cmd.start = 0xA8; /* USB status */ cpia2_dbg_dump_registers() 1936 cmd.reg_count = 3; cpia2_dbg_dump_registers() 1937 cpia2_send_command(cam, &cmd); cpia2_dbg_dump_registers() 1939 cmd.buffer.block_data[0]); cpia2_dbg_dump_registers() 1941 cmd.buffer.block_data[1]); cpia2_dbg_dump_registers() 1943 cmd.buffer.block_data[2]); cpia2_dbg_dump_registers() 1945 cmd.start = 0xAF; /* USB settings */ cpia2_dbg_dump_registers() 1946 cmd.reg_count = 1; cpia2_dbg_dump_registers() 1947 cpia2_send_command(cam, &cmd); cpia2_dbg_dump_registers() 1949 cmd.buffer.block_data[0]); cpia2_dbg_dump_registers() 1951 cmd.start = 0xC0; /* VC stuff */ cpia2_dbg_dump_registers() 1952 cmd.reg_count = 26; cpia2_dbg_dump_registers() 1953 cpia2_send_command(cam, &cmd); cpia2_dbg_dump_registers() 1955 cmd.buffer.block_data[0]); cpia2_dbg_dump_registers() 1957 cmd.buffer.block_data[3]); cpia2_dbg_dump_registers() 1959 cmd.buffer.block_data[4]); cpia2_dbg_dump_registers() 1961 cmd.buffer.block_data[5]); cpia2_dbg_dump_registers() 1963 cmd.buffer.block_data[6]); cpia2_dbg_dump_registers() 1965 cmd.buffer.block_data[7]); cpia2_dbg_dump_registers() 1967 cmd.buffer.block_data[8]); cpia2_dbg_dump_registers() 1969 cmd.buffer.block_data[9]); cpia2_dbg_dump_registers() 1971 cmd.buffer.block_data[10]); cpia2_dbg_dump_registers() 1973 cmd.buffer.block_data[11]); cpia2_dbg_dump_registers() 1975 cmd.buffer.block_data[12]); cpia2_dbg_dump_registers() 1977 cmd.buffer.block_data[13]); cpia2_dbg_dump_registers() 1979 cmd.buffer.block_data[14]); cpia2_dbg_dump_registers() 1981 cmd.buffer.block_data[15]); cpia2_dbg_dump_registers() 1983 cmd.buffer.block_data[16]); cpia2_dbg_dump_registers() 1985 cmd.buffer.block_data[17]); cpia2_dbg_dump_registers() 1987 cmd.buffer.block_data[18]); cpia2_dbg_dump_registers() 1989 cmd.buffer.block_data[19]); cpia2_dbg_dump_registers() 1991 cmd.buffer.block_data[20]); cpia2_dbg_dump_registers() 1993 cmd.buffer.block_data[21]); cpia2_dbg_dump_registers() 1995 cmd.buffer.block_data[22]); cpia2_dbg_dump_registers() 1997 cmd.buffer.block_data[23]); cpia2_dbg_dump_registers() 1999 cmd.buffer.block_data[24]); cpia2_dbg_dump_registers() 2001 cmd.buffer.block_data[25]); cpia2_dbg_dump_registers() 2004 cmd.req_mode = CAMERAACCESS_TYPE_BLOCK | CAMERAACCESS_VP; cpia2_dbg_dump_registers() 2005 cmd.reg_count = 14; cpia2_dbg_dump_registers() 2006 cmd.start = 0; cpia2_dbg_dump_registers() 2007 cpia2_send_command(cam, &cmd); cpia2_dbg_dump_registers() 2010 cmd.buffer.block_data[0]); cpia2_dbg_dump_registers() 2012 cmd.buffer.block_data[1]); cpia2_dbg_dump_registers() 2014 cmd.buffer.block_data[2]); cpia2_dbg_dump_registers() 2016 cmd.buffer.block_data[3]); cpia2_dbg_dump_registers() 2018 cmd.buffer.block_data[5]); cpia2_dbg_dump_registers() 2020 cmd.buffer.block_data[6]); cpia2_dbg_dump_registers() 2022 cmd.buffer.block_data[7]); cpia2_dbg_dump_registers() 2024 cmd.buffer.block_data[8]); cpia2_dbg_dump_registers() 2026 cmd.buffer.block_data[9]); cpia2_dbg_dump_registers() 2028 cmd.buffer.block_data[10]); cpia2_dbg_dump_registers() 2030 cmd.buffer.block_data[11]); cpia2_dbg_dump_registers() 2032 cmd.buffer.block_data[12]); cpia2_dbg_dump_registers() 2034 cmd.buffer.block_data[13]); cpia2_dbg_dump_registers() 2037 cmd.reg_count = 9; cpia2_dbg_dump_registers() 2038 cmd.start = 0x0E; cpia2_dbg_dump_registers() 2039 cpia2_send_command(cam, &cmd); cpia2_dbg_dump_registers() 2041 cmd.buffer.block_data[0]); cpia2_dbg_dump_registers() 2043 cmd.buffer.block_data[1]); cpia2_dbg_dump_registers() 2045 cmd.buffer.block_data[2]); cpia2_dbg_dump_registers() 2047 cmd.buffer.block_data[3]); cpia2_dbg_dump_registers() 2049 cmd.buffer.block_data[4]); cpia2_dbg_dump_registers() 2051 cmd.buffer.block_data[5]); cpia2_dbg_dump_registers() 2053 cmd.buffer.block_data[6]); cpia2_dbg_dump_registers() 2055 cmd.buffer.block_data[7]); cpia2_dbg_dump_registers() 2057 cmd.buffer.block_data[8]); cpia2_dbg_dump_registers() 2059 cmd.reg_count = 1; cpia2_dbg_dump_registers() 2060 cmd.start = 0x1B; cpia2_dbg_dump_registers() 2061 cpia2_send_command(cam, &cmd); cpia2_dbg_dump_registers() 2063 cmd.buffer.block_data[0]); cpia2_dbg_dump_registers() 2065 cmd.reg_count = 8 ; cpia2_dbg_dump_registers() 2066 cmd.start = 0x0E; cpia2_dbg_dump_registers() 2067 cpia2_send_command(cam, &cmd); cpia2_dbg_dump_registers() 2069 cmd.buffer.block_data[0]); cpia2_dbg_dump_registers() 2071 cmd.buffer.block_data[1]); cpia2_dbg_dump_registers() 2073 cmd.buffer.block_data[5]); cpia2_dbg_dump_registers() 2075 cmd.buffer.block_data[6]); cpia2_dbg_dump_registers() 2077 cmd.buffer.block_data[7]); cpia2_dbg_dump_registers() 2079 cmd.reg_count = 1; cpia2_dbg_dump_registers() 2080 cmd.start = CPIA2_VP5_EXPOSURE_TARGET; cpia2_dbg_dump_registers() 2081 cpia2_send_command(cam, &cmd); cpia2_dbg_dump_registers() 2083 cmd.buffer.block_data[0]); cpia2_dbg_dump_registers() 2085 cmd.reg_count = 4; cpia2_dbg_dump_registers() 2086 cmd.start = 0x3A; cpia2_dbg_dump_registers() 2087 cpia2_send_command(cam, &cmd); cpia2_dbg_dump_registers() 2089 cmd.buffer.block_data[0]); cpia2_dbg_dump_registers() 2091 cmd.buffer.block_data[1]); cpia2_dbg_dump_registers() 2093 cmd.buffer.block_data[2]); cpia2_dbg_dump_registers() 2095 cmd.buffer.block_data[3]); cpia2_dbg_dump_registers() 892 cpia2_send_onebyte_command(struct camera_data *cam, struct cpia2_command *cmd, u8 start, u8 datum) cpia2_send_onebyte_command() argument
|
/linux-4.1.27/drivers/target/ |
H A D | target_core_sbc.c | 43 sbc_emulate_readcapacity(struct se_cmd *cmd) sbc_emulate_readcapacity() argument 45 struct se_device *dev = cmd->se_dev; sbc_emulate_readcapacity() 46 unsigned char *cdb = cmd->t_task_cdb; sbc_emulate_readcapacity() 81 rbuf = transport_kmap_data_sg(cmd); sbc_emulate_readcapacity() 83 memcpy(rbuf, buf, min_t(u32, sizeof(buf), cmd->data_length)); sbc_emulate_readcapacity() 84 transport_kunmap_data_sg(cmd); sbc_emulate_readcapacity() 87 target_complete_cmd_with_length(cmd, GOOD, 8); sbc_emulate_readcapacity() 92 sbc_emulate_readcapacity_16(struct se_cmd *cmd) sbc_emulate_readcapacity_16() argument 94 struct se_device *dev = cmd->se_dev; sbc_emulate_readcapacity_16() 95 struct se_session *sess = cmd->se_sess; sbc_emulate_readcapacity_16() 146 rbuf = transport_kmap_data_sg(cmd); sbc_emulate_readcapacity_16() 148 memcpy(rbuf, buf, min_t(u32, sizeof(buf), cmd->data_length)); sbc_emulate_readcapacity_16() 149 transport_kunmap_data_sg(cmd); sbc_emulate_readcapacity_16() 152 target_complete_cmd_with_length(cmd, GOOD, 32); sbc_emulate_readcapacity_16() 156 sector_t sbc_get_write_same_sectors(struct se_cmd *cmd) sbc_get_write_same_sectors() argument 160 if (cmd->t_task_cdb[0] == WRITE_SAME) sbc_get_write_same_sectors() 161 num_blocks = get_unaligned_be16(&cmd->t_task_cdb[7]); sbc_get_write_same_sectors() 162 else if (cmd->t_task_cdb[0] == WRITE_SAME_16) sbc_get_write_same_sectors() 163 num_blocks = get_unaligned_be32(&cmd->t_task_cdb[10]); sbc_get_write_same_sectors() 165 num_blocks = get_unaligned_be32(&cmd->t_task_cdb[28]); sbc_get_write_same_sectors() 174 return cmd->se_dev->transport->get_blocks(cmd->se_dev) - sbc_get_write_same_sectors() 175 cmd->t_task_lba + 1; sbc_get_write_same_sectors() 180 sbc_emulate_noop(struct se_cmd *cmd) sbc_emulate_noop() argument 182 target_complete_cmd(cmd, GOOD); sbc_emulate_noop() 186 static inline u32 sbc_get_size(struct se_cmd *cmd, u32 sectors) sbc_get_size() argument 188 return cmd->se_dev->dev_attrib.block_size * sectors; sbc_get_size() 264 sbc_setup_write_same(struct se_cmd *cmd, unsigned char *flags, struct sbc_ops *ops) sbc_setup_write_same() argument 266 struct se_device *dev = cmd->se_dev; sbc_setup_write_same() 268 unsigned int sectors = sbc_get_write_same_sectors(cmd); sbc_setup_write_same() 277 if (sectors > cmd->se_dev->dev_attrib.max_write_same_len) { sbc_setup_write_same() 279 sectors, cmd->se_dev->dev_attrib.max_write_same_len); sbc_setup_write_same() 285 if (((cmd->t_task_lba + sectors) < cmd->t_task_lba) || sbc_setup_write_same() 286 ((cmd->t_task_lba + sectors) > end_lba)) { sbc_setup_write_same() 288 (unsigned long long)end_lba, cmd->t_task_lba, sectors); sbc_setup_write_same() 310 cmd->execute_cmd = ops->execute_write_same_unmap; sbc_setup_write_same() 316 ret = sbc_check_prot(dev, cmd, &cmd->t_task_cdb[0], sectors, true); sbc_setup_write_same() 320 cmd->execute_cmd = ops->execute_write_same; sbc_setup_write_same() 324 static sense_reason_t xdreadwrite_callback(struct se_cmd *cmd, bool success, xdreadwrite_callback() argument 343 buf = kmalloc(cmd->data_length, GFP_KERNEL); xdreadwrite_callback() 349 * Copy the scatterlist WRITE buffer located at cmd->t_data_sg xdreadwrite_callback() 352 sg_copy_to_buffer(cmd->t_data_sg, xdreadwrite_callback() 353 cmd->t_data_nents, xdreadwrite_callback() 355 cmd->data_length); xdreadwrite_callback() 359 * cmd->t_mem_bidi_list xdreadwrite_callback() 363 for_each_sg(cmd->t_bidi_data_sg, sg, cmd->t_bidi_data_nents, count) { xdreadwrite_callback() 383 sbc_execute_rw(struct se_cmd *cmd) sbc_execute_rw() argument 385 return cmd->execute_rw(cmd, cmd->t_data_sg, cmd->t_data_nents, sbc_execute_rw() 386 cmd->data_direction); sbc_execute_rw() 389 static sense_reason_t compare_and_write_post(struct se_cmd *cmd, bool success, compare_and_write_post() argument 392 struct se_device *dev = cmd->se_dev; compare_and_write_post() 399 spin_lock_irq(&cmd->t_state_lock); compare_and_write_post() 400 if ((cmd->transport_state & CMD_T_SENT) && !cmd->scsi_status) { compare_and_write_post() 401 cmd->se_cmd_flags |= SCF_COMPARE_AND_WRITE_POST; compare_and_write_post() 404 spin_unlock_irq(&cmd->t_state_lock); compare_and_write_post() 415 static sense_reason_t compare_and_write_callback(struct se_cmd *cmd, bool success, compare_and_write_callback() argument 418 struct se_device *dev = cmd->se_dev; compare_and_write_callback() 423 unsigned int nlbas = cmd->t_task_nolb; compare_and_write_callback() 433 if (!success && (!cmd->t_data_sg || !cmd->t_bidi_data_sg)) compare_and_write_callback() 438 if (!cmd->data_length) compare_and_write_callback() 444 if (cmd->scsi_status) { compare_and_write_callback() 446 " 0x%02x\n", cmd->scsi_status); compare_and_write_callback() 450 buf = kzalloc(cmd->data_length, GFP_KERNEL); compare_and_write_callback() 457 write_sg = kmalloc(sizeof(struct scatterlist) * cmd->t_data_nents, compare_and_write_callback() 464 sg_init_table(write_sg, cmd->t_data_nents); compare_and_write_callback() 468 rc = sg_copy_to_buffer(cmd->t_data_sg, cmd->t_data_nents, buf, compare_and_write_callback() 469 cmd->data_length); compare_and_write_callback() 478 for_each_sg(cmd->t_bidi_data_sg, sg, cmd->t_bidi_data_nents, i) { compare_and_write_callback() 502 len = cmd->t_task_nolb * block_size; compare_and_write_callback() 503 sg_miter_start(&m, cmd->t_data_sg, cmd->t_data_nents, SG_MITER_TO_SG); compare_and_write_callback() 527 cmd->t_data_sg_orig = cmd->t_data_sg; compare_and_write_callback() 528 cmd->t_data_sg = write_sg; compare_and_write_callback() 529 cmd->t_data_nents_orig = cmd->t_data_nents; compare_and_write_callback() 530 cmd->t_data_nents = 1; compare_and_write_callback() 532 cmd->sam_task_attr = TCM_HEAD_TAG; compare_and_write_callback() 533 cmd->transport_complete_callback = compare_and_write_post; compare_and_write_callback() 538 cmd->execute_cmd = sbc_execute_rw; compare_and_write_callback() 540 spin_lock_irq(&cmd->t_state_lock); compare_and_write_callback() 541 cmd->t_state = TRANSPORT_PROCESSING; compare_and_write_callback() 542 cmd->transport_state |= CMD_T_ACTIVE|CMD_T_BUSY|CMD_T_SENT; compare_and_write_callback() 543 spin_unlock_irq(&cmd->t_state_lock); compare_and_write_callback() 545 __target_execute_cmd(cmd); compare_and_write_callback() 566 sbc_compare_and_write(struct se_cmd *cmd) sbc_compare_and_write() argument 568 struct se_device *dev = cmd->se_dev; sbc_compare_and_write() 573 * comparision using SGLs at cmd->t_bidi_data_sg.. sbc_compare_and_write() 577 cmd->transport_complete_callback = NULL; sbc_compare_and_write() 581 * Reset cmd->data_length to individual block_size in order to not sbc_compare_and_write() 585 cmd->data_length = cmd->t_task_nolb * dev->dev_attrib.block_size; sbc_compare_and_write() 587 ret = cmd->execute_rw(cmd, cmd->t_bidi_data_sg, cmd->t_bidi_data_nents, sbc_compare_and_write() 590 cmd->transport_complete_callback = NULL; sbc_compare_and_write() 604 bool is_write, struct se_cmd *cmd) sbc_set_prot_op_checks() 607 cmd->prot_op = fabric_prot ? TARGET_PROT_DOUT_STRIP : sbc_set_prot_op_checks() 613 cmd->prot_checks = 0; sbc_set_prot_op_checks() 617 cmd->prot_checks = TARGET_DIF_CHECK_GUARD; sbc_set_prot_op_checks() 619 cmd->prot_checks |= TARGET_DIF_CHECK_REFTAG; sbc_set_prot_op_checks() 623 cmd->prot_checks = TARGET_DIF_CHECK_REFTAG; sbc_set_prot_op_checks() 626 cmd->prot_checks = TARGET_DIF_CHECK_GUARD; sbc_set_prot_op_checks() 633 cmd->prot_op = fabric_prot ? TARGET_PROT_DIN_INSERT : sbc_set_prot_op_checks() 640 cmd->prot_checks = TARGET_DIF_CHECK_GUARD; sbc_set_prot_op_checks() 642 cmd->prot_checks |= TARGET_DIF_CHECK_REFTAG; sbc_set_prot_op_checks() 646 cmd->prot_checks = TARGET_DIF_CHECK_REFTAG; sbc_set_prot_op_checks() 649 cmd->prot_checks = 0; sbc_set_prot_op_checks() 652 cmd->prot_checks = TARGET_DIF_CHECK_GUARD; sbc_set_prot_op_checks() 664 sbc_check_prot(struct se_device *dev, struct se_cmd *cmd, unsigned char *cdb, sbc_check_prot() argument 668 int sp_ops = cmd->se_sess->sup_prot_ops; sbc_check_prot() 672 if (!cmd->t_prot_sg || !cmd->t_prot_nents) { sbc_check_prot() 674 !dev->dev_attrib.pi_prot_type && !cmd->se_sess->sess_prot_type)) { sbc_check_prot() 679 if (cmd->prot_pto) sbc_check_prot() 685 cmd->reftag_seed = 0xffffffff; sbc_check_prot() 691 cmd->reftag_seed = cmd->t_task_lba; sbc_check_prot() 694 cmd->reftag_seed = cmd->t_task_lba; sbc_check_prot() 706 if (fabric_prot && cmd->se_sess->sess_prot_type) { sbc_check_prot() 707 pi_prot_type = cmd->se_sess->sess_prot_type; sbc_check_prot() 719 if (sbc_set_prot_op_checks(protect, fabric_prot, pi_prot_type, is_write, cmd)) sbc_check_prot() 722 cmd->prot_type = pi_prot_type; sbc_check_prot() 723 cmd->prot_length = dev->prot_length * sectors; sbc_check_prot() 732 cmd->data_length = sectors * dev->dev_attrib.block_size; sbc_check_prot() 736 __func__, cmd->prot_type, cmd->data_length, cmd->prot_length, sbc_check_prot() 737 cmd->prot_op, cmd->prot_checks); sbc_check_prot() 743 sbc_check_dpofua(struct se_device *dev, struct se_cmd *cmd, unsigned char *cdb) sbc_check_dpofua() argument 759 cmd->se_cmd_flags |= SCF_FUA; sbc_check_dpofua() 765 sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops) sbc_parse_cdb() argument 767 struct se_device *dev = cmd->se_dev; sbc_parse_cdb() 768 unsigned char *cdb = cmd->t_task_cdb; sbc_parse_cdb() 776 cmd->t_task_lba = transport_lba_21(cdb); sbc_parse_cdb() 777 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; sbc_parse_cdb() 778 cmd->execute_rw = ops->execute_rw; sbc_parse_cdb() 779 cmd->execute_cmd = sbc_execute_rw; sbc_parse_cdb() 783 cmd->t_task_lba = transport_lba_32(cdb); sbc_parse_cdb() 785 if (sbc_check_dpofua(dev, cmd, cdb)) sbc_parse_cdb() 788 ret = sbc_check_prot(dev, cmd, cdb, sectors, false); sbc_parse_cdb() 792 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; sbc_parse_cdb() 793 cmd->execute_rw = ops->execute_rw; sbc_parse_cdb() 794 cmd->execute_cmd = sbc_execute_rw; sbc_parse_cdb() 798 cmd->t_task_lba = transport_lba_32(cdb); sbc_parse_cdb() 800 if (sbc_check_dpofua(dev, cmd, cdb)) sbc_parse_cdb() 803 ret = sbc_check_prot(dev, cmd, cdb, sectors, false); sbc_parse_cdb() 807 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; sbc_parse_cdb() 808 cmd->execute_rw = ops->execute_rw; sbc_parse_cdb() 809 cmd->execute_cmd = sbc_execute_rw; sbc_parse_cdb() 813 cmd->t_task_lba = transport_lba_64(cdb); sbc_parse_cdb() 815 if (sbc_check_dpofua(dev, cmd, cdb)) sbc_parse_cdb() 818 ret = sbc_check_prot(dev, cmd, cdb, sectors, false); sbc_parse_cdb() 822 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; sbc_parse_cdb() 823 cmd->execute_rw = ops->execute_rw; sbc_parse_cdb() 824 cmd->execute_cmd = sbc_execute_rw; sbc_parse_cdb() 828 cmd->t_task_lba = transport_lba_21(cdb); sbc_parse_cdb() 829 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; sbc_parse_cdb() 830 cmd->execute_rw = ops->execute_rw; sbc_parse_cdb() 831 cmd->execute_cmd = sbc_execute_rw; sbc_parse_cdb() 836 cmd->t_task_lba = transport_lba_32(cdb); sbc_parse_cdb() 838 if (sbc_check_dpofua(dev, cmd, cdb)) sbc_parse_cdb() 841 ret = sbc_check_prot(dev, cmd, cdb, sectors, true); sbc_parse_cdb() 845 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; sbc_parse_cdb() 846 cmd->execute_rw = ops->execute_rw; sbc_parse_cdb() 847 cmd->execute_cmd = sbc_execute_rw; sbc_parse_cdb() 851 cmd->t_task_lba = transport_lba_32(cdb); sbc_parse_cdb() 853 if (sbc_check_dpofua(dev, cmd, cdb)) sbc_parse_cdb() 856 ret = sbc_check_prot(dev, cmd, cdb, sectors, true); sbc_parse_cdb() 860 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; sbc_parse_cdb() 861 cmd->execute_rw = ops->execute_rw; sbc_parse_cdb() 862 cmd->execute_cmd = sbc_execute_rw; sbc_parse_cdb() 866 cmd->t_task_lba = transport_lba_64(cdb); sbc_parse_cdb() 868 if (sbc_check_dpofua(dev, cmd, cdb)) sbc_parse_cdb() 871 ret = sbc_check_prot(dev, cmd, cdb, sectors, true); sbc_parse_cdb() 875 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; sbc_parse_cdb() 876 cmd->execute_rw = ops->execute_rw; sbc_parse_cdb() 877 cmd->execute_cmd = sbc_execute_rw; sbc_parse_cdb() 880 if (cmd->data_direction != DMA_TO_DEVICE || sbc_parse_cdb() 881 !(cmd->se_cmd_flags & SCF_BIDI)) sbc_parse_cdb() 885 if (sbc_check_dpofua(dev, cmd, cdb)) sbc_parse_cdb() 888 cmd->t_task_lba = transport_lba_32(cdb); sbc_parse_cdb() 889 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; sbc_parse_cdb() 894 cmd->execute_rw = ops->execute_rw; sbc_parse_cdb() 895 cmd->execute_cmd = sbc_execute_rw; sbc_parse_cdb() 896 cmd->transport_complete_callback = &xdreadwrite_callback; sbc_parse_cdb() 905 if (sbc_check_dpofua(dev, cmd, cdb)) sbc_parse_cdb() 911 cmd->t_task_lba = transport_lba_64_ext(cdb); sbc_parse_cdb() 912 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB; sbc_parse_cdb() 918 cmd->execute_rw = ops->execute_rw; sbc_parse_cdb() 919 cmd->execute_cmd = sbc_execute_rw; sbc_parse_cdb() 920 cmd->transport_complete_callback = &xdreadwrite_callback; sbc_parse_cdb() 930 size = sbc_get_size(cmd, 1); sbc_parse_cdb() 931 cmd->t_task_lba = get_unaligned_be64(&cdb[12]); sbc_parse_cdb() 933 ret = sbc_setup_write_same(cmd, &cdb[10], ops); sbc_parse_cdb() 958 size = 2 * sbc_get_size(cmd, sectors); sbc_parse_cdb() 959 cmd->t_task_lba = get_unaligned_be64(&cdb[2]); sbc_parse_cdb() 960 cmd->t_task_nolb = sectors; sbc_parse_cdb() 961 cmd->se_cmd_flags |= SCF_SCSI_DATA_CDB | SCF_COMPARE_AND_WRITE; sbc_parse_cdb() 962 cmd->execute_rw = ops->execute_rw; sbc_parse_cdb() 963 cmd->execute_cmd = sbc_compare_and_write; sbc_parse_cdb() 964 cmd->transport_complete_callback = compare_and_write_callback; sbc_parse_cdb() 968 cmd->execute_cmd = sbc_emulate_readcapacity; sbc_parse_cdb() 971 switch (cmd->t_task_cdb[1] & 0x1f) { sbc_parse_cdb() 973 cmd->execute_cmd = sbc_emulate_readcapacity_16; sbc_parse_cdb() 976 cmd->execute_cmd = target_emulate_report_referrals; sbc_parse_cdb() 980 cmd->t_task_cdb[1] & 0x1f); sbc_parse_cdb() 990 cmd->t_task_lba = transport_lba_32(cdb); sbc_parse_cdb() 993 cmd->t_task_lba = transport_lba_64(cdb); sbc_parse_cdb() 996 cmd->execute_cmd = ops->execute_sync_cache; sbc_parse_cdb() 1000 cmd->execute_cmd = sbc_emulate_noop; sbc_parse_cdb() 1012 cmd->execute_cmd = ops->execute_unmap; sbc_parse_cdb() 1021 size = sbc_get_size(cmd, 1); sbc_parse_cdb() 1022 cmd->t_task_lba = get_unaligned_be64(&cdb[2]); sbc_parse_cdb() 1024 ret = sbc_setup_write_same(cmd, &cdb[1], ops); sbc_parse_cdb() 1035 size = sbc_get_size(cmd, 1); sbc_parse_cdb() 1036 cmd->t_task_lba = get_unaligned_be32(&cdb[2]); sbc_parse_cdb() 1042 ret = sbc_setup_write_same(cmd, &cdb[1], ops); sbc_parse_cdb() 1049 cmd->t_task_lba = transport_lba_32(cdb); sbc_parse_cdb() 1050 cmd->execute_cmd = sbc_emulate_noop; sbc_parse_cdb() 1062 cmd->execute_cmd = sbc_emulate_noop; sbc_parse_cdb() 1065 ret = spc_parse_cdb(cmd, &size); sbc_parse_cdb() 1071 if (!cmd->execute_cmd) sbc_parse_cdb() 1074 if (cmd->se_cmd_flags & SCF_SCSI_DATA_CDB) { sbc_parse_cdb() 1078 if (((cmd->t_task_lba + sectors) < cmd->t_task_lba) || sbc_parse_cdb() 1079 ((cmd->t_task_lba + sectors) > end_lba)) { sbc_parse_cdb() 1080 pr_err("cmd exceeds last lba %llu " sbc_parse_cdb() 1082 end_lba, cmd->t_task_lba, sectors); sbc_parse_cdb() 1086 if (!(cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE)) sbc_parse_cdb() 1087 size = sbc_get_size(cmd, sectors); sbc_parse_cdb() 1090 return target_cmd_size_check(cmd, size); sbc_parse_cdb() 1101 sbc_execute_unmap(struct se_cmd *cmd, sbc_execute_unmap() argument 1106 struct se_device *dev = cmd->se_dev; sbc_execute_unmap() 1115 if (cmd->t_task_cdb[1]) sbc_execute_unmap() 1118 if (cmd->data_length == 0) { sbc_execute_unmap() 1119 target_complete_cmd(cmd, SAM_STAT_GOOD); sbc_execute_unmap() 1123 if (cmd->data_length < 8) { sbc_execute_unmap() 1125 cmd->data_length); sbc_execute_unmap() 1129 buf = transport_kmap_data_sg(cmd); sbc_execute_unmap() 1136 size = cmd->data_length - 8; sbc_execute_unmap() 1139 cmd->data_length, bd_dl); sbc_execute_unmap() 1169 ret = do_unmap_fn(cmd, priv, lba, range); sbc_execute_unmap() 1178 transport_kunmap_data_sg(cmd); sbc_execute_unmap() 1180 target_complete_cmd(cmd, GOOD); sbc_execute_unmap() 1186 sbc_dif_generate(struct se_cmd *cmd) sbc_dif_generate() argument 1188 struct se_device *dev = cmd->se_dev; sbc_dif_generate() 1190 struct scatterlist *dsg, *psg = cmd->t_prot_sg; sbc_dif_generate() 1191 sector_t sector = cmd->t_task_lba; sbc_dif_generate() 1195 for_each_sg(cmd->t_data_sg, dsg, cmd->t_data_nents, i) { sbc_dif_generate() 1211 if (cmd->prot_type == TARGET_DIF_TYPE1_PROT) sbc_dif_generate() 1217 (cmd->data_direction == DMA_TO_DEVICE) ? sbc_dif_generate() 1232 sbc_dif_v1_verify(struct se_cmd *cmd, struct se_dif_v1_tuple *sdt, sbc_dif_v1_verify() argument 1235 struct se_device *dev = cmd->se_dev; sbc_dif_v1_verify() 1239 if (!(cmd->prot_checks & TARGET_DIF_CHECK_GUARD)) sbc_dif_v1_verify() 1252 if (!(cmd->prot_checks & TARGET_DIF_CHECK_REFTAG)) sbc_dif_v1_verify() 1255 if (cmd->prot_type == TARGET_DIF_TYPE1_PROT && sbc_dif_v1_verify() 1263 if (cmd->prot_type == TARGET_DIF_TYPE2_PROT && sbc_dif_v1_verify() 1275 sbc_dif_copy_prot(struct se_cmd *cmd, unsigned int sectors, bool read, sbc_dif_copy_prot() argument 1278 struct se_device *dev = cmd->se_dev; sbc_dif_copy_prot() 1289 for_each_sg(cmd->t_prot_sg, psg, cmd->t_prot_nents, i) { sbc_dif_copy_prot() 1319 sbc_dif_verify_write(struct se_cmd *cmd, sector_t start, unsigned int sectors, sbc_dif_verify_write() argument 1322 struct se_device *dev = cmd->se_dev; sbc_dif_verify_write() 1324 struct scatterlist *dsg, *psg = cmd->t_prot_sg; sbc_dif_verify_write() 1330 for_each_sg(cmd->t_data_sg, dsg, cmd->t_data_nents, i) { sbc_dif_verify_write() 1350 rc = sbc_dif_v1_verify(cmd, sdt, daddr + j, sector, sbc_dif_verify_write() 1355 cmd->bad_sector = sector; sbc_dif_verify_write() 1370 sbc_dif_copy_prot(cmd, sectors, false, sg, sg_off); sbc_dif_verify_write() 1377 __sbc_dif_verify_read(struct se_cmd *cmd, sector_t start, unsigned int sectors, __sbc_dif_verify_read() argument 1380 struct se_device *dev = cmd->se_dev; __sbc_dif_verify_read() 1388 for_each_sg(cmd->t_data_sg, dsg, cmd->t_data_nents, i) { __sbc_dif_verify_read() 1414 rc = sbc_dif_v1_verify(cmd, sdt, daddr + j, sector, __sbc_dif_verify_read() 1419 cmd->bad_sector = sector; __sbc_dif_verify_read() 1436 sbc_dif_read_strip(struct se_cmd *cmd) sbc_dif_read_strip() argument 1438 struct se_device *dev = cmd->se_dev; sbc_dif_read_strip() 1439 u32 sectors = cmd->prot_length / dev->prot_length; sbc_dif_read_strip() 1441 return __sbc_dif_verify_read(cmd, cmd->t_task_lba, sectors, 0, sbc_dif_read_strip() 1442 cmd->t_prot_sg, 0); sbc_dif_read_strip() 1446 sbc_dif_verify_read(struct se_cmd *cmd, sector_t start, unsigned int sectors, sbc_dif_verify_read() argument 1451 rc = __sbc_dif_verify_read(cmd, start, sectors, ei_lba, sg, sg_off); sbc_dif_verify_read() 1455 sbc_dif_copy_prot(cmd, sectors, true, sg, sg_off); sbc_dif_verify_read() 603 sbc_set_prot_op_checks(u8 protect, bool fabric_prot, enum target_prot_type prot_type, bool is_write, struct se_cmd *cmd) sbc_set_prot_op_checks() argument
|
H A D | target_core_transport.c | 68 static void transport_complete_task_attr(struct se_cmd *cmd); 69 static void transport_handle_queue_full(struct se_cmd *cmd, 71 static int transport_put_cmd(struct se_cmd *cmd); 558 static void target_remove_from_state_list(struct se_cmd *cmd) target_remove_from_state_list() argument 560 struct se_device *dev = cmd->se_dev; target_remove_from_state_list() 566 if (cmd->transport_state & CMD_T_BUSY) target_remove_from_state_list() 570 if (cmd->state_active) { target_remove_from_state_list() 571 list_del(&cmd->state_list); target_remove_from_state_list() 572 cmd->state_active = false; target_remove_from_state_list() 577 static int transport_cmd_check_stop(struct se_cmd *cmd, bool remove_from_lists, transport_cmd_check_stop() argument 583 target_remove_from_state_list(cmd); transport_cmd_check_stop() 588 cmd->se_lun = NULL; transport_cmd_check_stop() 591 spin_lock_irqsave(&cmd->t_state_lock, flags); transport_cmd_check_stop() 593 cmd->t_state = TRANSPORT_WRITE_PENDING; transport_cmd_check_stop() 599 if (cmd->transport_state & CMD_T_STOP) { transport_cmd_check_stop() 602 cmd->se_tfo->get_task_tag(cmd)); transport_cmd_check_stop() 604 spin_unlock_irqrestore(&cmd->t_state_lock, flags); transport_cmd_check_stop() 606 complete_all(&cmd->t_transport_stop_comp); transport_cmd_check_stop() 610 cmd->transport_state &= ~CMD_T_ACTIVE; transport_cmd_check_stop() 621 if (cmd->se_tfo->check_stop_free != NULL) { transport_cmd_check_stop() 622 spin_unlock_irqrestore(&cmd->t_state_lock, flags); transport_cmd_check_stop() 623 return cmd->se_tfo->check_stop_free(cmd); transport_cmd_check_stop() 627 spin_unlock_irqrestore(&cmd->t_state_lock, flags); transport_cmd_check_stop() 631 static int transport_cmd_check_stop_to_fabric(struct se_cmd *cmd) transport_cmd_check_stop_to_fabric() argument 633 return transport_cmd_check_stop(cmd, true, false); transport_cmd_check_stop_to_fabric() 636 static void transport_lun_remove_cmd(struct se_cmd *cmd) transport_lun_remove_cmd() argument 638 struct se_lun *lun = cmd->se_lun; transport_lun_remove_cmd() 643 if (cmpxchg(&cmd->lun_ref_active, true, false)) transport_lun_remove_cmd() 647 void transport_cmd_finish_abort(struct se_cmd *cmd, int remove) transport_cmd_finish_abort() argument 649 bool ack_kref = (cmd->se_cmd_flags & SCF_ACK_KREF); transport_cmd_finish_abort() 651 if (cmd->se_cmd_flags & SCF_SE_LUN_CMD) transport_cmd_finish_abort() 652 transport_lun_remove_cmd(cmd); transport_cmd_finish_abort() 658 cmd->se_tfo->aborted_task(cmd); transport_cmd_finish_abort() 660 if (transport_cmd_check_stop_to_fabric(cmd)) transport_cmd_finish_abort() 663 transport_put_cmd(cmd); transport_cmd_finish_abort() 668 struct se_cmd *cmd = container_of(work, struct se_cmd, work); target_complete_failure_work() local 670 transport_generic_request_failure(cmd, target_complete_failure_work() 678 static unsigned char *transport_get_sense_buffer(struct se_cmd *cmd) transport_get_sense_buffer() argument 680 struct se_device *dev = cmd->se_dev; transport_get_sense_buffer() 682 WARN_ON(!cmd->se_lun); transport_get_sense_buffer() 687 if (cmd->se_cmd_flags & SCF_SENT_CHECK_CONDITION) transport_get_sense_buffer() 690 cmd->scsi_sense_length = TRANSPORT_SENSE_BUFFER; transport_get_sense_buffer() 693 dev->se_hba->hba_id, dev->transport->name, cmd->scsi_status); transport_get_sense_buffer() 694 return cmd->sense_buffer; transport_get_sense_buffer() 697 void target_complete_cmd(struct se_cmd *cmd, u8 scsi_status) target_complete_cmd() argument 699 struct se_device *dev = cmd->se_dev; target_complete_cmd() 703 cmd->scsi_status = scsi_status; target_complete_cmd() 706 spin_lock_irqsave(&cmd->t_state_lock, flags); target_complete_cmd() 707 cmd->transport_state &= ~CMD_T_BUSY; target_complete_cmd() 710 dev->transport->transport_complete(cmd, target_complete_cmd() 711 cmd->t_data_sg, target_complete_cmd() 712 transport_get_sense_buffer(cmd)); target_complete_cmd() 713 if (cmd->se_cmd_flags & SCF_TRANSPORT_TASK_SENSE) target_complete_cmd() 720 if (cmd->transport_state & CMD_T_REQUEST_STOP) { target_complete_cmd() 721 spin_unlock_irqrestore(&cmd->t_state_lock, flags); target_complete_cmd() 722 complete(&cmd->task_stop_comp); target_complete_cmd() 730 if (cmd->transport_state & CMD_T_ABORTED || target_complete_cmd() 731 cmd->transport_state & CMD_T_STOP) { target_complete_cmd() 732 spin_unlock_irqrestore(&cmd->t_state_lock, flags); target_complete_cmd() 733 complete_all(&cmd->t_transport_stop_comp); target_complete_cmd() 736 INIT_WORK(&cmd->work, target_complete_failure_work); target_complete_cmd() 738 INIT_WORK(&cmd->work, target_complete_ok_work); target_complete_cmd() 741 cmd->t_state = TRANSPORT_COMPLETE; target_complete_cmd() 742 cmd->transport_state |= (CMD_T_COMPLETE | CMD_T_ACTIVE); target_complete_cmd() 743 spin_unlock_irqrestore(&cmd->t_state_lock, flags); target_complete_cmd() 745 queue_work(target_completion_wq, &cmd->work); target_complete_cmd() 749 void target_complete_cmd_with_length(struct se_cmd *cmd, u8 scsi_status, int length) target_complete_cmd_with_length() argument 751 if (scsi_status == SAM_STAT_GOOD && length < cmd->data_length) { target_complete_cmd_with_length() 752 if (cmd->se_cmd_flags & SCF_UNDERFLOW_BIT) { target_complete_cmd_with_length() 753 cmd->residual_count += cmd->data_length - length; target_complete_cmd_with_length() 755 cmd->se_cmd_flags |= SCF_UNDERFLOW_BIT; target_complete_cmd_with_length() 756 cmd->residual_count = cmd->data_length - length; target_complete_cmd_with_length() 759 cmd->data_length = length; target_complete_cmd_with_length() 762 target_complete_cmd(cmd, scsi_status); target_complete_cmd_with_length() 766 static void target_add_to_state_list(struct se_cmd *cmd) target_add_to_state_list() argument 768 struct se_device *dev = cmd->se_dev; target_add_to_state_list() 772 if (!cmd->state_active) { target_add_to_state_list() 773 list_add_tail(&cmd->state_list, &dev->state_list); target_add_to_state_list() 774 cmd->state_active = true; target_add_to_state_list() 782 static void transport_write_pending_qf(struct se_cmd *cmd); 783 static void transport_complete_qf(struct se_cmd *cmd); 790 struct se_cmd *cmd, *cmd_tmp; target_qf_do_work() local 796 list_for_each_entry_safe(cmd, cmd_tmp, &qf_cmd_list, se_qf_node) { target_qf_do_work() 797 list_del(&cmd->se_qf_node); target_qf_do_work() 800 pr_debug("Processing %s cmd: %p QUEUE_FULL in work queue" target_qf_do_work() 801 " context: %s\n", cmd->se_tfo->get_fabric_name(), cmd, target_qf_do_work() 802 (cmd->t_state == TRANSPORT_COMPLETE_QF_OK) ? "COMPLETE_OK" : target_qf_do_work() 803 (cmd->t_state == TRANSPORT_COMPLETE_QF_WP) ? "WRITE_PENDING" target_qf_do_work() 806 if (cmd->t_state == TRANSPORT_COMPLETE_QF_WP) target_qf_do_work() 807 transport_write_pending_qf(cmd); target_qf_do_work() 808 else if (cmd->t_state == TRANSPORT_COMPLETE_QF_OK) target_qf_do_work() 809 transport_complete_qf(cmd); target_qf_do_work() 813 unsigned char *transport_dump_cmd_direction(struct se_cmd *cmd) transport_dump_cmd_direction() argument 815 switch (cmd->data_direction) { transport_dump_cmd_direction() 1106 target_cmd_size_check(struct se_cmd *cmd, unsigned int size) target_cmd_size_check() argument 1108 struct se_device *dev = cmd->se_dev; target_cmd_size_check() 1110 if (cmd->unknown_data_length) { target_cmd_size_check() 1111 cmd->data_length = size; target_cmd_size_check() 1112 } else if (size != cmd->data_length) { target_cmd_size_check() 1115 " 0x%02x\n", cmd->se_tfo->get_fabric_name(), target_cmd_size_check() 1116 cmd->data_length, size, cmd->t_task_cdb[0]); target_cmd_size_check() 1118 if (cmd->data_direction == DMA_TO_DEVICE) { target_cmd_size_check() 1140 if (size > cmd->data_length) { target_cmd_size_check() 1141 cmd->se_cmd_flags |= SCF_OVERFLOW_BIT; target_cmd_size_check() 1142 cmd->residual_count = (size - cmd->data_length); target_cmd_size_check() 1144 cmd->se_cmd_flags |= SCF_UNDERFLOW_BIT; target_cmd_size_check() 1145 cmd->residual_count = (cmd->data_length - size); target_cmd_size_check() 1146 cmd->data_length = size; target_cmd_size_check() 1159 struct se_cmd *cmd, transport_init_se_cmd() 1167 INIT_LIST_HEAD(&cmd->se_delayed_node); transport_init_se_cmd() 1168 INIT_LIST_HEAD(&cmd->se_qf_node); transport_init_se_cmd() 1169 INIT_LIST_HEAD(&cmd->se_cmd_list); transport_init_se_cmd() 1170 INIT_LIST_HEAD(&cmd->state_list); transport_init_se_cmd() 1171 init_completion(&cmd->t_transport_stop_comp); transport_init_se_cmd() 1172 init_completion(&cmd->cmd_wait_comp); transport_init_se_cmd() 1173 init_completion(&cmd->task_stop_comp); transport_init_se_cmd() 1174 spin_lock_init(&cmd->t_state_lock); transport_init_se_cmd() 1175 kref_init(&cmd->cmd_kref); transport_init_se_cmd() 1176 cmd->transport_state = CMD_T_DEV_ACTIVE; transport_init_se_cmd() 1178 cmd->se_tfo = tfo; transport_init_se_cmd() 1179 cmd->se_sess = se_sess; transport_init_se_cmd() 1180 cmd->data_length = data_length; transport_init_se_cmd() 1181 cmd->data_direction = data_direction; transport_init_se_cmd() 1182 cmd->sam_task_attr = task_attr; transport_init_se_cmd() 1183 cmd->sense_buffer = sense_buffer; transport_init_se_cmd() 1185 cmd->state_active = false; transport_init_se_cmd() 1190 transport_check_alloc_task_attr(struct se_cmd *cmd) transport_check_alloc_task_attr() argument 1192 struct se_device *dev = cmd->se_dev; transport_check_alloc_task_attr() 1201 if (cmd->sam_task_attr == TCM_ACA_TAG) { transport_check_alloc_task_attr() 1210 cmd->se_ordered_id = atomic_inc_return(&dev->dev_ordered_id); transport_check_alloc_task_attr() 1212 cmd->se_ordered_id, cmd->sam_task_attr, transport_check_alloc_task_attr() 1218 target_setup_cmd_from_cdb(struct se_cmd *cmd, unsigned char *cdb) target_setup_cmd_from_cdb() argument 1220 struct se_device *dev = cmd->se_dev; target_setup_cmd_from_cdb() 1238 if (scsi_command_size(cdb) > sizeof(cmd->__t_task_cdb)) { target_setup_cmd_from_cdb() 1239 cmd->t_task_cdb = kzalloc(scsi_command_size(cdb), target_setup_cmd_from_cdb() 1241 if (!cmd->t_task_cdb) { target_setup_cmd_from_cdb() 1242 pr_err("Unable to allocate cmd->t_task_cdb" target_setup_cmd_from_cdb() 1243 " %u > sizeof(cmd->__t_task_cdb): %lu ops\n", target_setup_cmd_from_cdb() 1245 (unsigned long)sizeof(cmd->__t_task_cdb)); target_setup_cmd_from_cdb() 1249 cmd->t_task_cdb = &cmd->__t_task_cdb[0]; target_setup_cmd_from_cdb() 1251 * Copy the original CDB into cmd-> target_setup_cmd_from_cdb() 1253 memcpy(cmd->t_task_cdb, cdb, scsi_command_size(cdb)); target_setup_cmd_from_cdb() 1255 trace_target_sequencer_start(cmd); target_setup_cmd_from_cdb() 1260 ret = target_scsi3_ua_check(cmd); target_setup_cmd_from_cdb() 1264 ret = target_alua_state_check(cmd); target_setup_cmd_from_cdb() 1268 ret = target_check_reservation(cmd); target_setup_cmd_from_cdb() 1270 cmd->scsi_status = SAM_STAT_RESERVATION_CONFLICT; target_setup_cmd_from_cdb() 1274 ret = dev->transport->parse_cdb(cmd); target_setup_cmd_from_cdb() 1278 ret = transport_check_alloc_task_attr(cmd); target_setup_cmd_from_cdb() 1282 cmd->se_cmd_flags |= SCF_SUPPORTED_SAM_OPCODE; target_setup_cmd_from_cdb() 1284 spin_lock(&cmd->se_lun->lun_sep_lock); target_setup_cmd_from_cdb() 1285 if (cmd->se_lun->lun_sep) target_setup_cmd_from_cdb() 1286 cmd->se_lun->lun_sep->sep_stats.cmd_pdus++; target_setup_cmd_from_cdb() 1287 spin_unlock(&cmd->se_lun->lun_sep_lock); target_setup_cmd_from_cdb() 1297 struct se_cmd *cmd) transport_handle_cdb_direct() 1301 if (!cmd->se_lun) { transport_handle_cdb_direct() 1303 pr_err("cmd->se_lun is NULL\n"); transport_handle_cdb_direct() 1317 * Also, we don't take cmd->t_state_lock here as we only expect transport_handle_cdb_direct() 1320 cmd->t_state = TRANSPORT_NEW_CMD; transport_handle_cdb_direct() 1321 cmd->transport_state |= CMD_T_ACTIVE; transport_handle_cdb_direct() 1328 ret = transport_generic_new_cmd(cmd); transport_handle_cdb_direct() 1330 transport_generic_request_failure(cmd, ret); transport_handle_cdb_direct() 1336 transport_generic_map_mem_to_cmd(struct se_cmd *cmd, struct scatterlist *sgl, transport_generic_map_mem_to_cmd() argument 1347 if (cmd->se_cmd_flags & SCF_OVERFLOW_BIT) { transport_generic_map_mem_to_cmd() 1353 cmd->t_data_sg = sgl; transport_generic_map_mem_to_cmd() 1354 cmd->t_data_nents = sgl_count; transport_generic_map_mem_to_cmd() 1357 cmd->t_bidi_data_sg = sgl_bidi; transport_generic_map_mem_to_cmd() 1358 cmd->t_bidi_data_nents = sgl_bidi_count; transport_generic_map_mem_to_cmd() 1360 cmd->se_cmd_flags |= SCF_PASSTHROUGH_SG_TO_MEM_NOALLOC; transport_generic_map_mem_to_cmd() 1416 * Obtain struct se_cmd->cmd_kref reference and add new cmd to target_submit_cmd_map_sgls() 1556 * @flags: submit cmd flags 1608 * If the cmd is active, request it to be stopped and sleep until it 1611 bool target_stop_cmd(struct se_cmd *cmd, unsigned long *flags) 1612 __releases(&cmd->t_state_lock) 1613 __acquires(&cmd->t_state_lock) 1617 if (cmd->transport_state & CMD_T_BUSY) { 1618 cmd->transport_state |= CMD_T_REQUEST_STOP; 1619 spin_unlock_irqrestore(&cmd->t_state_lock, *flags); 1621 pr_debug("cmd %p waiting to complete\n", cmd); 1622 wait_for_completion(&cmd->task_stop_comp); 1623 pr_debug("cmd %p stopped successfully\n", cmd); 1625 spin_lock_irqsave(&cmd->t_state_lock, *flags); 1626 cmd->transport_state &= ~CMD_T_REQUEST_STOP; 1627 cmd->transport_state &= ~CMD_T_BUSY; 1637 void transport_generic_request_failure(struct se_cmd *cmd, transport_generic_request_failure() argument 1642 pr_debug("-----[ Storage Engine Exception for cmd: %p ITT: 0x%08x" transport_generic_request_failure() 1643 " CDB: 0x%02x\n", cmd, cmd->se_tfo->get_task_tag(cmd), transport_generic_request_failure() 1644 cmd->t_task_cdb[0]); transport_generic_request_failure() 1646 cmd->se_tfo->get_cmd_state(cmd), transport_generic_request_failure() 1647 cmd->t_state, sense_reason); transport_generic_request_failure() 1649 (cmd->transport_state & CMD_T_ACTIVE) != 0, transport_generic_request_failure() 1650 (cmd->transport_state & CMD_T_STOP) != 0, transport_generic_request_failure() 1651 (cmd->transport_state & CMD_T_SENT) != 0); transport_generic_request_failure() 1656 transport_complete_task_attr(cmd); transport_generic_request_failure() 1661 if ((cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE) && transport_generic_request_failure() 1662 cmd->transport_complete_callback) transport_generic_request_failure() 1663 cmd->transport_complete_callback(cmd, false, &post_ret); transport_generic_request_failure() 1692 cmd->scsi_status = SAM_STAT_RESERVATION_CONFLICT; transport_generic_request_failure() 1700 if (cmd->se_sess && transport_generic_request_failure() 1701 cmd->se_dev->dev_attrib.emulate_ua_intlck_ctrl == 2) transport_generic_request_failure() 1702 core_scsi3_ua_allocate(cmd->se_sess->se_node_acl, transport_generic_request_failure() 1703 cmd->orig_fe_lun, 0x2C, transport_generic_request_failure() 1706 trace_target_cmd_complete(cmd); transport_generic_request_failure() 1707 ret = cmd->se_tfo-> queue_status(cmd); transport_generic_request_failure() 1713 cmd->t_task_cdb[0], sense_reason); transport_generic_request_failure() 1718 ret = transport_send_check_condition_and_sense(cmd, sense_reason, 0); transport_generic_request_failure() 1723 transport_lun_remove_cmd(cmd); transport_generic_request_failure() 1724 if (!transport_cmd_check_stop_to_fabric(cmd)) transport_generic_request_failure() 1729 cmd->t_state = TRANSPORT_COMPLETE_QF_OK; transport_generic_request_failure() 1730 transport_handle_queue_full(cmd, cmd->se_dev); transport_generic_request_failure() 1734 void __target_execute_cmd(struct se_cmd *cmd) __target_execute_cmd() argument 1738 if (cmd->execute_cmd) { __target_execute_cmd() 1739 ret = cmd->execute_cmd(cmd); __target_execute_cmd() 1741 spin_lock_irq(&cmd->t_state_lock); __target_execute_cmd() 1742 cmd->transport_state &= ~(CMD_T_BUSY|CMD_T_SENT); __target_execute_cmd() 1743 spin_unlock_irq(&cmd->t_state_lock); __target_execute_cmd() 1745 transport_generic_request_failure(cmd, ret); __target_execute_cmd() 1750 static int target_write_prot_action(struct se_cmd *cmd) target_write_prot_action() argument 1758 switch (cmd->prot_op) { target_write_prot_action() 1760 if (!(cmd->se_sess->sup_prot_ops & TARGET_PROT_DOUT_INSERT)) target_write_prot_action() 1761 sbc_dif_generate(cmd); target_write_prot_action() 1764 if (cmd->se_sess->sup_prot_ops & TARGET_PROT_DOUT_STRIP) target_write_prot_action() 1767 sectors = cmd->data_length >> ilog2(cmd->se_dev->dev_attrib.block_size); target_write_prot_action() 1768 cmd->pi_err = sbc_dif_verify_write(cmd, cmd->t_task_lba, target_write_prot_action() 1770 if (unlikely(cmd->pi_err)) { target_write_prot_action() 1771 spin_lock_irq(&cmd->t_state_lock); target_write_prot_action() 1772 cmd->transport_state &= ~(CMD_T_BUSY|CMD_T_SENT); target_write_prot_action() 1773 spin_unlock_irq(&cmd->t_state_lock); target_write_prot_action() 1774 transport_generic_request_failure(cmd, cmd->pi_err); target_write_prot_action() 1785 static bool target_handle_task_attr(struct se_cmd *cmd) target_handle_task_attr() argument 1787 struct se_device *dev = cmd->se_dev; target_handle_task_attr() 1796 switch (cmd->sam_task_attr) { target_handle_task_attr() 1800 cmd->t_task_cdb[0], cmd->se_ordered_id); target_handle_task_attr() 1807 cmd->t_task_cdb[0], cmd->se_ordered_id); target_handle_task_attr() 1828 list_add_tail(&cmd->se_delayed_node, &dev->delayed_cmd_list); target_handle_task_attr() 1833 cmd->t_task_cdb[0], cmd->sam_task_attr, target_handle_task_attr() 1834 cmd->se_ordered_id); target_handle_task_attr() 1840 void target_execute_cmd(struct se_cmd *cmd) target_execute_cmd() argument 1848 spin_lock_irq(&cmd->t_state_lock); target_execute_cmd() 1849 if (__transport_check_aborted_status(cmd, 1)) { target_execute_cmd() 1850 spin_unlock_irq(&cmd->t_state_lock); target_execute_cmd() 1853 if (cmd->transport_state & CMD_T_STOP) { target_execute_cmd() 1856 cmd->se_tfo->get_task_tag(cmd)); target_execute_cmd() 1858 spin_unlock_irq(&cmd->t_state_lock); target_execute_cmd() 1859 complete_all(&cmd->t_transport_stop_comp); target_execute_cmd() 1863 cmd->t_state = TRANSPORT_PROCESSING; target_execute_cmd() 1864 cmd->transport_state |= CMD_T_ACTIVE|CMD_T_BUSY|CMD_T_SENT; target_execute_cmd() 1865 spin_unlock_irq(&cmd->t_state_lock); target_execute_cmd() 1867 if (target_write_prot_action(cmd)) target_execute_cmd() 1870 if (target_handle_task_attr(cmd)) { target_execute_cmd() 1871 spin_lock_irq(&cmd->t_state_lock); target_execute_cmd() 1872 cmd->transport_state &= ~(CMD_T_BUSY | CMD_T_SENT); target_execute_cmd() 1873 spin_unlock_irq(&cmd->t_state_lock); target_execute_cmd() 1877 __target_execute_cmd(cmd); target_execute_cmd() 1888 struct se_cmd *cmd; target_restart_delayed_cmds() local 1896 cmd = list_entry(dev->delayed_cmd_list.next, target_restart_delayed_cmds() 1898 list_del(&cmd->se_delayed_node); target_restart_delayed_cmds() 1901 __target_execute_cmd(cmd); target_restart_delayed_cmds() 1903 if (cmd->sam_task_attr == TCM_ORDERED_TAG) target_restart_delayed_cmds() 1912 static void transport_complete_task_attr(struct se_cmd *cmd) transport_complete_task_attr() argument 1914 struct se_device *dev = cmd->se_dev; transport_complete_task_attr() 1919 if (cmd->sam_task_attr == TCM_SIMPLE_TAG) { transport_complete_task_attr() 1924 cmd->se_ordered_id); transport_complete_task_attr() 1925 } else if (cmd->sam_task_attr == TCM_HEAD_TAG) { transport_complete_task_attr() 1929 cmd->se_ordered_id); transport_complete_task_attr() 1930 } else if (cmd->sam_task_attr == TCM_ORDERED_TAG) { transport_complete_task_attr() 1935 " %u\n", dev->dev_cur_ordered_id, cmd->se_ordered_id); transport_complete_task_attr() 1941 static void transport_complete_qf(struct se_cmd *cmd) transport_complete_qf() argument 1945 transport_complete_task_attr(cmd); transport_complete_qf() 1947 if (cmd->se_cmd_flags & SCF_TRANSPORT_TASK_SENSE) { transport_complete_qf() 1948 trace_target_cmd_complete(cmd); transport_complete_qf() 1949 ret = cmd->se_tfo->queue_status(cmd); transport_complete_qf() 1953 switch (cmd->data_direction) { transport_complete_qf() 1955 trace_target_cmd_complete(cmd); transport_complete_qf() 1956 ret = cmd->se_tfo->queue_data_in(cmd); transport_complete_qf() 1959 if (cmd->se_cmd_flags & SCF_BIDI) { transport_complete_qf() 1960 ret = cmd->se_tfo->queue_data_in(cmd); transport_complete_qf() 1965 trace_target_cmd_complete(cmd); transport_complete_qf() 1966 ret = cmd->se_tfo->queue_status(cmd); transport_complete_qf() 1974 transport_handle_queue_full(cmd, cmd->se_dev); transport_complete_qf() 1977 transport_lun_remove_cmd(cmd); transport_complete_qf() 1978 transport_cmd_check_stop_to_fabric(cmd); transport_complete_qf() 1982 struct se_cmd *cmd, transport_handle_queue_full() 1986 list_add_tail(&cmd->se_qf_node, &cmd->se_dev->qf_cmd_list); transport_handle_queue_full() 1988 spin_unlock_irq(&cmd->se_dev->qf_cmd_lock); transport_handle_queue_full() 1990 schedule_work(&cmd->se_dev->qf_work_queue); transport_handle_queue_full() 1993 static bool target_read_prot_action(struct se_cmd *cmd) target_read_prot_action() argument 1997 switch (cmd->prot_op) { target_read_prot_action() 1999 if (!(cmd->se_sess->sup_prot_ops & TARGET_PROT_DIN_STRIP)) { target_read_prot_action() 2000 rc = sbc_dif_read_strip(cmd); target_read_prot_action() 2002 cmd->pi_err = rc; target_read_prot_action() 2008 if (cmd->se_sess->sup_prot_ops & TARGET_PROT_DIN_INSERT) target_read_prot_action() 2011 sbc_dif_generate(cmd); target_read_prot_action() 2022 struct se_cmd *cmd = container_of(work, struct se_cmd, work); target_complete_ok_work() local 2030 transport_complete_task_attr(cmd); target_complete_ok_work() 2034 * cmd->transport_qf_callback() target_complete_ok_work() 2036 if (atomic_read(&cmd->se_dev->dev_qf_count) != 0) target_complete_ok_work() 2037 schedule_work(&cmd->se_dev->qf_work_queue); target_complete_ok_work() 2043 if (cmd->se_cmd_flags & SCF_TRANSPORT_TASK_SENSE) { target_complete_ok_work() 2044 WARN_ON(!cmd->scsi_status); target_complete_ok_work() 2046 cmd, 0, 1); target_complete_ok_work() 2050 transport_lun_remove_cmd(cmd); target_complete_ok_work() 2051 transport_cmd_check_stop_to_fabric(cmd); target_complete_ok_work() 2058 if (cmd->transport_complete_callback) { target_complete_ok_work() 2060 bool caw = (cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE); target_complete_ok_work() 2061 bool zero_dl = !(cmd->data_length); target_complete_ok_work() 2064 rc = cmd->transport_complete_callback(cmd, true, &post_ret); target_complete_ok_work() 2071 ret = transport_send_check_condition_and_sense(cmd, target_complete_ok_work() 2076 transport_lun_remove_cmd(cmd); target_complete_ok_work() 2077 transport_cmd_check_stop_to_fabric(cmd); target_complete_ok_work() 2083 switch (cmd->data_direction) { target_complete_ok_work() 2085 spin_lock(&cmd->se_lun->lun_sep_lock); target_complete_ok_work() 2086 if (cmd->se_lun->lun_sep) { target_complete_ok_work() 2087 cmd->se_lun->lun_sep->sep_stats.tx_data_octets += target_complete_ok_work() 2088 cmd->data_length; target_complete_ok_work() 2090 spin_unlock(&cmd->se_lun->lun_sep_lock); target_complete_ok_work() 2096 if (target_read_prot_action(cmd)) { target_complete_ok_work() 2097 ret = transport_send_check_condition_and_sense(cmd, target_complete_ok_work() 2098 cmd->pi_err, 0); target_complete_ok_work() 2102 transport_lun_remove_cmd(cmd); target_complete_ok_work() 2103 transport_cmd_check_stop_to_fabric(cmd); target_complete_ok_work() 2107 trace_target_cmd_complete(cmd); target_complete_ok_work() 2108 ret = cmd->se_tfo->queue_data_in(cmd); target_complete_ok_work() 2113 spin_lock(&cmd->se_lun->lun_sep_lock); target_complete_ok_work() 2114 if (cmd->se_lun->lun_sep) { target_complete_ok_work() 2115 cmd->se_lun->lun_sep->sep_stats.rx_data_octets += target_complete_ok_work() 2116 cmd->data_length; target_complete_ok_work() 2118 spin_unlock(&cmd->se_lun->lun_sep_lock); target_complete_ok_work() 2122 if (cmd->se_cmd_flags & SCF_BIDI) { target_complete_ok_work() 2123 spin_lock(&cmd->se_lun->lun_sep_lock); target_complete_ok_work() 2124 if (cmd->se_lun->lun_sep) { target_complete_ok_work() 2125 cmd->se_lun->lun_sep->sep_stats.tx_data_octets += target_complete_ok_work() 2126 cmd->data_length; target_complete_ok_work() 2128 spin_unlock(&cmd->se_lun->lun_sep_lock); target_complete_ok_work() 2129 ret = cmd->se_tfo->queue_data_in(cmd); target_complete_ok_work() 2136 trace_target_cmd_complete(cmd); target_complete_ok_work() 2137 ret = cmd->se_tfo->queue_status(cmd); target_complete_ok_work() 2145 transport_lun_remove_cmd(cmd); target_complete_ok_work() 2146 transport_cmd_check_stop_to_fabric(cmd); target_complete_ok_work() 2151 " data_direction: %d\n", cmd, cmd->data_direction); target_complete_ok_work() 2152 cmd->t_state = TRANSPORT_COMPLETE_QF_OK; target_complete_ok_work() 2153 transport_handle_queue_full(cmd, cmd->se_dev); target_complete_ok_work() 2167 static inline void transport_reset_sgl_orig(struct se_cmd *cmd) transport_reset_sgl_orig() argument 2173 if (!cmd->t_data_sg_orig) transport_reset_sgl_orig() 2176 kfree(cmd->t_data_sg); transport_reset_sgl_orig() 2177 cmd->t_data_sg = cmd->t_data_sg_orig; transport_reset_sgl_orig() 2178 cmd->t_data_sg_orig = NULL; transport_reset_sgl_orig() 2179 cmd->t_data_nents = cmd->t_data_nents_orig; transport_reset_sgl_orig() 2180 cmd->t_data_nents_orig = 0; transport_reset_sgl_orig() 2183 static inline void transport_free_pages(struct se_cmd *cmd) transport_free_pages() argument 2185 if (cmd->se_cmd_flags & SCF_PASSTHROUGH_SG_TO_MEM_NOALLOC) { transport_free_pages() 2190 if (cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE) { transport_free_pages() 2191 transport_free_sgl(cmd->t_bidi_data_sg, transport_free_pages() 2192 cmd->t_bidi_data_nents); transport_free_pages() 2193 cmd->t_bidi_data_sg = NULL; transport_free_pages() 2194 cmd->t_bidi_data_nents = 0; transport_free_pages() 2196 transport_reset_sgl_orig(cmd); transport_free_pages() 2199 transport_reset_sgl_orig(cmd); transport_free_pages() 2201 transport_free_sgl(cmd->t_data_sg, cmd->t_data_nents); transport_free_pages() 2202 cmd->t_data_sg = NULL; transport_free_pages() 2203 cmd->t_data_nents = 0; transport_free_pages() 2205 transport_free_sgl(cmd->t_bidi_data_sg, cmd->t_bidi_data_nents); transport_free_pages() 2206 cmd->t_bidi_data_sg = NULL; transport_free_pages() 2207 cmd->t_bidi_data_nents = 0; transport_free_pages() 2209 transport_free_sgl(cmd->t_prot_sg, cmd->t_prot_nents); transport_free_pages() 2210 cmd->t_prot_sg = NULL; transport_free_pages() 2211 cmd->t_prot_nents = 0; transport_free_pages() 2216 * @cmd: command to release 2220 static int transport_put_cmd(struct se_cmd *cmd) transport_put_cmd() argument 2222 BUG_ON(!cmd->se_tfo); transport_put_cmd() 2224 * If this cmd has been setup with target_get_sess_cmd(), drop transport_put_cmd() 2227 return target_put_sess_cmd(cmd); transport_put_cmd() 2230 void *transport_kmap_data_sg(struct se_cmd *cmd) transport_kmap_data_sg() argument 2232 struct scatterlist *sg = cmd->t_data_sg; transport_kmap_data_sg() 2241 if (!cmd->t_data_nents) transport_kmap_data_sg() 2245 if (cmd->t_data_nents == 1) transport_kmap_data_sg() 2249 pages = kmalloc(sizeof(*pages) * cmd->t_data_nents, GFP_KERNEL); transport_kmap_data_sg() 2254 for_each_sg(cmd->t_data_sg, sg, cmd->t_data_nents, i) { transport_kmap_data_sg() 2258 cmd->t_data_vmap = vmap(pages, cmd->t_data_nents, VM_MAP, PAGE_KERNEL); transport_kmap_data_sg() 2260 if (!cmd->t_data_vmap) transport_kmap_data_sg() 2263 return cmd->t_data_vmap + cmd->t_data_sg[0].offset; transport_kmap_data_sg() 2267 void transport_kunmap_data_sg(struct se_cmd *cmd) transport_kunmap_data_sg() argument 2269 if (!cmd->t_data_nents) { transport_kunmap_data_sg() 2271 } else if (cmd->t_data_nents == 1) { transport_kunmap_data_sg() 2272 kunmap(sg_page(cmd->t_data_sg)); transport_kunmap_data_sg() 2276 vunmap(cmd->t_data_vmap); transport_kunmap_data_sg() 2277 cmd->t_data_vmap = NULL; transport_kunmap_data_sg() 2327 transport_generic_new_cmd(struct se_cmd *cmd) transport_generic_new_cmd() argument 2330 bool zero_flag = !(cmd->se_cmd_flags & SCF_SCSI_DATA_CDB); transport_generic_new_cmd() 2337 if (!(cmd->se_cmd_flags & SCF_PASSTHROUGH_SG_TO_MEM_NOALLOC) && transport_generic_new_cmd() 2338 cmd->data_length) { transport_generic_new_cmd() 2340 if ((cmd->se_cmd_flags & SCF_BIDI) || transport_generic_new_cmd() 2341 (cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE)) { transport_generic_new_cmd() 2344 if (cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE) transport_generic_new_cmd() 2345 bidi_length = cmd->t_task_nolb * transport_generic_new_cmd() 2346 cmd->se_dev->dev_attrib.block_size; transport_generic_new_cmd() 2348 bidi_length = cmd->data_length; transport_generic_new_cmd() 2350 ret = target_alloc_sgl(&cmd->t_bidi_data_sg, transport_generic_new_cmd() 2351 &cmd->t_bidi_data_nents, transport_generic_new_cmd() 2357 if (cmd->prot_op != TARGET_PROT_NORMAL) { transport_generic_new_cmd() 2358 ret = target_alloc_sgl(&cmd->t_prot_sg, transport_generic_new_cmd() 2359 &cmd->t_prot_nents, transport_generic_new_cmd() 2360 cmd->prot_length, true); transport_generic_new_cmd() 2365 ret = target_alloc_sgl(&cmd->t_data_sg, &cmd->t_data_nents, transport_generic_new_cmd() 2366 cmd->data_length, zero_flag); transport_generic_new_cmd() 2369 } else if ((cmd->se_cmd_flags & SCF_COMPARE_AND_WRITE) && transport_generic_new_cmd() 2370 cmd->data_length) { transport_generic_new_cmd() 2375 u32 caw_length = cmd->t_task_nolb * transport_generic_new_cmd() 2376 cmd->se_dev->dev_attrib.block_size; transport_generic_new_cmd() 2378 ret = target_alloc_sgl(&cmd->t_bidi_data_sg, transport_generic_new_cmd() 2379 &cmd->t_bidi_data_nents, transport_generic_new_cmd() 2389 target_add_to_state_list(cmd); transport_generic_new_cmd() 2390 if (cmd->data_direction != DMA_TO_DEVICE || cmd->data_length == 0) { transport_generic_new_cmd() 2391 target_execute_cmd(cmd); transport_generic_new_cmd() 2394 transport_cmd_check_stop(cmd, false, true); transport_generic_new_cmd() 2396 ret = cmd->se_tfo->write_pending(cmd); transport_generic_new_cmd() 2406 pr_debug("Handling write_pending QUEUE__FULL: se_cmd: %p\n", cmd); transport_generic_new_cmd() 2407 cmd->t_state = TRANSPORT_COMPLETE_QF_WP; transport_generic_new_cmd() 2408 transport_handle_queue_full(cmd, cmd->se_dev); transport_generic_new_cmd() 2413 static void transport_write_pending_qf(struct se_cmd *cmd) transport_write_pending_qf() argument 2417 ret = cmd->se_tfo->write_pending(cmd); transport_write_pending_qf() 2420 cmd); transport_write_pending_qf() 2421 transport_handle_queue_full(cmd, cmd->se_dev); transport_write_pending_qf() 2429 static void target_wait_free_cmd(struct se_cmd *cmd, bool *aborted, bool *tas) target_wait_free_cmd() argument 2433 spin_lock_irqsave(&cmd->t_state_lock, flags); target_wait_free_cmd() 2434 __transport_wait_for_tasks(cmd, true, aborted, tas, &flags); target_wait_free_cmd() 2435 spin_unlock_irqrestore(&cmd->t_state_lock, flags); target_wait_free_cmd() 2438 int transport_generic_free_cmd(struct se_cmd *cmd, int wait_for_tasks) transport_generic_free_cmd() argument 2443 if (!(cmd->se_cmd_flags & SCF_SE_LUN_CMD)) { transport_generic_free_cmd() 2444 if (wait_for_tasks && (cmd->se_cmd_flags & SCF_SCSI_TMR_CDB)) transport_generic_free_cmd() 2445 target_wait_free_cmd(cmd, &aborted, &tas); transport_generic_free_cmd() 2448 ret = transport_put_cmd(cmd); transport_generic_free_cmd() 2451 target_wait_free_cmd(cmd, &aborted, &tas); transport_generic_free_cmd() 2457 if (cmd->state_active) transport_generic_free_cmd() 2458 target_remove_from_state_list(cmd); transport_generic_free_cmd() 2460 if (cmd->se_lun) transport_generic_free_cmd() 2461 transport_lun_remove_cmd(cmd); transport_generic_free_cmd() 2464 ret = transport_put_cmd(cmd); transport_generic_free_cmd() 2474 cmd->se_tfo->get_task_tag(cmd)); transport_generic_free_cmd() 2475 wait_for_completion(&cmd->cmd_wait_comp); transport_generic_free_cmd() 2476 cmd->se_tfo->release_cmd(cmd); transport_generic_free_cmd() 2517 static void target_free_cmd_mem(struct se_cmd *cmd) target_free_cmd_mem() argument 2519 transport_free_pages(cmd); target_free_cmd_mem() 2521 if (cmd->se_cmd_flags & SCF_SCSI_TMR_CDB) target_free_cmd_mem() 2522 core_tmr_release_req(cmd->se_tmr_req); target_free_cmd_mem() 2523 if (cmd->t_task_cdb != cmd->__t_task_cdb) target_free_cmd_mem() 2524 kfree(cmd->t_task_cdb); target_free_cmd_mem() 2676 __transport_wait_for_tasks(struct se_cmd *cmd, bool fabric_stop, 2678 __releases(&cmd->t_state_lock) 2679 __acquires(&cmd->t_state_lock) 2682 assert_spin_locked(&cmd->t_state_lock); 2686 cmd->transport_state |= CMD_T_FABRIC_STOP; 2688 if (cmd->transport_state & CMD_T_ABORTED) 2691 if (cmd->transport_state & CMD_T_TAS) 2694 if (!(cmd->se_cmd_flags & SCF_SE_LUN_CMD) && 2695 !(cmd->se_cmd_flags & SCF_SCSI_TMR_CDB)) 2698 if (!(cmd->se_cmd_flags & SCF_SUPPORTED_SAM_OPCODE) && 2699 !(cmd->se_cmd_flags & SCF_SCSI_TMR_CDB)) 2702 if (!(cmd->transport_state & CMD_T_ACTIVE)) 2708 cmd->transport_state |= CMD_T_STOP; 2712 cmd, cmd->se_tfo->get_task_tag(cmd), 2713 cmd->se_tfo->get_cmd_state(cmd), cmd->t_state); 2715 spin_unlock_irqrestore(&cmd->t_state_lock, *flags); 2717 wait_for_completion(&cmd->t_transport_stop_comp); 2719 spin_lock_irqsave(&cmd->t_state_lock, *flags); 2720 cmd->transport_state &= ~(CMD_T_ACTIVE | CMD_T_STOP); 2723 "&cmd->t_transport_stop_comp) for ITT: 0x%08x\n", 2724 cmd->se_tfo->get_task_tag(cmd)); 2731 * @cmd: command to wait 2736 bool transport_wait_for_tasks(struct se_cmd *cmd) transport_wait_for_tasks() argument 2741 spin_lock_irqsave(&cmd->t_state_lock, flags); transport_wait_for_tasks() 2742 ret = __transport_wait_for_tasks(cmd, false, &aborted, &tas, &flags); transport_wait_for_tasks() 2743 spin_unlock_irqrestore(&cmd->t_state_lock, flags); transport_wait_for_tasks() 2750 struct se_cmd *cmd, transport_get_sense_codes() 2754 *asc = cmd->scsi_asc; transport_get_sense_codes() 2755 *ascq = cmd->scsi_ascq; transport_get_sense_codes() 2774 transport_send_check_condition_and_sense(struct se_cmd *cmd, transport_send_check_condition_and_sense() argument 2777 unsigned char *buffer = cmd->sense_buffer; transport_send_check_condition_and_sense() 2781 spin_lock_irqsave(&cmd->t_state_lock, flags); transport_send_check_condition_and_sense() 2782 if (cmd->se_cmd_flags & SCF_SENT_CHECK_CONDITION) { transport_send_check_condition_and_sense() 2783 spin_unlock_irqrestore(&cmd->t_state_lock, flags); transport_send_check_condition_and_sense() 2786 cmd->se_cmd_flags |= SCF_SENT_CHECK_CONDITION; transport_send_check_condition_and_sense() 2787 spin_unlock_irqrestore(&cmd->t_state_lock, flags); transport_send_check_condition_and_sense() 2793 cmd->se_cmd_flags |= SCF_EMULATED_TASK_SENSE; transport_send_check_condition_and_sense() 2943 core_scsi3_ua_for_check_condition(cmd, &asc, &ascq); transport_send_check_condition_and_sense() 2953 transport_get_sense_codes(cmd, &asc, &ascq); transport_send_check_condition_and_sense() 2975 transport_err_sector_info(buffer, cmd->bad_sector); transport_send_check_condition_and_sense() 2986 transport_err_sector_info(buffer, cmd->bad_sector); transport_send_check_condition_and_sense() 2997 transport_err_sector_info(buffer, cmd->bad_sector); transport_send_check_condition_and_sense() 3018 cmd->scsi_status = SAM_STAT_CHECK_CONDITION; transport_send_check_condition_and_sense() 3023 cmd->scsi_sense_length = TRANSPORT_SENSE_BUFFER; transport_send_check_condition_and_sense() 3026 trace_target_cmd_complete(cmd); transport_send_check_condition_and_sense() 3027 return cmd->se_tfo->queue_status(cmd); transport_send_check_condition_and_sense() 3031 static int __transport_check_aborted_status(struct se_cmd *cmd, int send_status) 3032 __releases(&cmd->t_state_lock) 3033 __acquires(&cmd->t_state_lock) 3035 assert_spin_locked(&cmd->t_state_lock); 3038 if (!(cmd->transport_state & CMD_T_ABORTED)) 3042 * If cmd has been aborted but either no status is to be sent or it has 3045 if (!send_status || !(cmd->se_cmd_flags & SCF_SEND_DELAYED_TAS)) { 3047 cmd->se_cmd_flags |= SCF_SEND_DELAYED_TAS; 3052 " 0x%02x ITT: 0x%08x\n", cmd->t_task_cdb[0], 3053 cmd->se_tfo->get_task_tag(cmd)); 3055 cmd->se_cmd_flags &= ~SCF_SEND_DELAYED_TAS; 3056 cmd->scsi_status = SAM_STAT_TASK_ABORTED; 3057 trace_target_cmd_complete(cmd); variable 3059 spin_unlock_irq(&cmd->t_state_lock); 3060 cmd->se_tfo->queue_status(cmd); 3061 spin_lock_irq(&cmd->t_state_lock); 3066 int transport_check_aborted_status(struct se_cmd *cmd, int send_status) transport_check_aborted_status() argument 3070 spin_lock_irq(&cmd->t_state_lock); transport_check_aborted_status() 3071 ret = __transport_check_aborted_status(cmd, send_status); transport_check_aborted_status() 3072 spin_unlock_irq(&cmd->t_state_lock); transport_check_aborted_status() 3078 void transport_send_task_abort(struct se_cmd *cmd) transport_send_task_abort() argument 3082 spin_lock_irqsave(&cmd->t_state_lock, flags); transport_send_task_abort() 3083 if (cmd->se_cmd_flags & (SCF_SENT_CHECK_CONDITION)) { transport_send_task_abort() 3084 spin_unlock_irqrestore(&cmd->t_state_lock, flags); transport_send_task_abort() 3087 spin_unlock_irqrestore(&cmd->t_state_lock, flags); transport_send_task_abort() 3095 if (cmd->data_direction == DMA_TO_DEVICE) { transport_send_task_abort() 3096 if (cmd->se_tfo->write_pending_status(cmd) != 0) { transport_send_task_abort() 3097 spin_lock_irqsave(&cmd->t_state_lock, flags); transport_send_task_abort() 3098 if (cmd->se_cmd_flags & SCF_SEND_DELAYED_TAS) { transport_send_task_abort() 3099 spin_unlock_irqrestore(&cmd->t_state_lock, flags); transport_send_task_abort() 3102 cmd->se_cmd_flags |= SCF_SEND_DELAYED_TAS; transport_send_task_abort() 3103 spin_unlock_irqrestore(&cmd->t_state_lock, flags); transport_send_task_abort() 3108 cmd->scsi_status = SAM_STAT_TASK_ABORTED; transport_send_task_abort() 3110 transport_lun_remove_cmd(cmd); transport_send_task_abort() 3113 " ITT: 0x%08x\n", cmd->t_task_cdb[0], transport_send_task_abort() 3114 cmd->se_tfo->get_task_tag(cmd)); transport_send_task_abort() 3116 trace_target_cmd_complete(cmd); transport_send_task_abort() 3117 cmd->se_tfo->queue_status(cmd); transport_send_task_abort() 3122 struct se_cmd *cmd = container_of(work, struct se_cmd, work); target_tmr_work() local 3123 struct se_device *dev = cmd->se_dev; target_tmr_work() 3124 struct se_tmr_req *tmr = cmd->se_tmr_req; target_tmr_work() 3128 spin_lock_irqsave(&cmd->t_state_lock, flags); target_tmr_work() 3129 if (cmd->transport_state & CMD_T_ABORTED) { target_tmr_work() 3131 spin_unlock_irqrestore(&cmd->t_state_lock, flags); target_tmr_work() 3134 spin_unlock_irqrestore(&cmd->t_state_lock, flags); target_tmr_work() 3138 core_tmr_abort_task(dev, tmr, cmd->se_sess); target_tmr_work() 3163 spin_lock_irqsave(&cmd->t_state_lock, flags); target_tmr_work() 3164 if (cmd->transport_state & CMD_T_ABORTED) { target_tmr_work() 3165 spin_unlock_irqrestore(&cmd->t_state_lock, flags); target_tmr_work() 3168 cmd->t_state = TRANSPORT_ISTATE_PROCESSING; target_tmr_work() 3169 spin_unlock_irqrestore(&cmd->t_state_lock, flags); target_tmr_work() 3171 cmd->se_tfo->queue_tm_rsp(cmd); target_tmr_work() 3174 transport_cmd_check_stop_to_fabric(cmd); target_tmr_work() 3178 struct se_cmd *cmd) transport_generic_handle_tmr() 3182 spin_lock_irqsave(&cmd->t_state_lock, flags); transport_generic_handle_tmr() 3183 cmd->transport_state |= CMD_T_ACTIVE; transport_generic_handle_tmr() 3184 spin_unlock_irqrestore(&cmd->t_state_lock, flags); transport_generic_handle_tmr() 3186 INIT_WORK(&cmd->work, target_tmr_work); transport_generic_handle_tmr() 3187 queue_work(cmd->se_dev->tmr_wq, &cmd->work); transport_generic_handle_tmr() 1158 transport_init_se_cmd( struct se_cmd *cmd, const struct target_core_fabric_ops *tfo, struct se_session *se_sess, u32 data_length, int data_direction, int task_attr, unsigned char *sense_buffer) transport_init_se_cmd() argument 1296 transport_handle_cdb_direct( struct se_cmd *cmd) transport_handle_cdb_direct() argument 1981 transport_handle_queue_full( struct se_cmd *cmd, struct se_device *dev) transport_handle_queue_full() argument 2749 transport_get_sense_codes( struct se_cmd *cmd, u8 *asc, u8 *ascq) transport_get_sense_codes() argument 3177 transport_generic_handle_tmr( struct se_cmd *cmd) transport_generic_handle_tmr() argument
|
H A D | target_core_tmr.c | 81 static void core_tmr_handle_tas_abort(struct se_cmd *cmd, int tas) core_tmr_handle_tas_abort() argument 88 spin_lock_irqsave(&cmd->t_state_lock, flags); core_tmr_handle_tas_abort() 89 send_tas = (cmd->transport_state & CMD_T_TAS); core_tmr_handle_tas_abort() 90 spin_unlock_irqrestore(&cmd->t_state_lock, flags); core_tmr_handle_tas_abort() 94 transport_send_task_abort(cmd); core_tmr_handle_tas_abort() 97 transport_cmd_finish_abort(cmd, remove); core_tmr_handle_tas_abort() 101 struct se_cmd *cmd) target_check_cdb_and_preempt() 108 if (reg->pr_res_key == cmd->pr_res_key) list_for_each_entry() 217 struct se_cmd *cmd; core_tmr_drain_tmr_list() local 232 cmd = tmr_p->task_cmd; core_tmr_drain_tmr_list() 233 if (!cmd) { core_tmr_drain_tmr_list() 242 if (target_check_cdb_and_preempt(preempt_and_abort_list, cmd)) core_tmr_drain_tmr_list() 245 sess = cmd->se_sess; core_tmr_drain_tmr_list() 250 spin_lock(&cmd->t_state_lock); core_tmr_drain_tmr_list() 251 if (!(cmd->transport_state & CMD_T_ACTIVE) || core_tmr_drain_tmr_list() 252 (cmd->transport_state & CMD_T_FABRIC_STOP)) { core_tmr_drain_tmr_list() 253 spin_unlock(&cmd->t_state_lock); core_tmr_drain_tmr_list() 257 if (cmd->t_state == TRANSPORT_ISTATE_PROCESSING) { core_tmr_drain_tmr_list() 258 spin_unlock(&cmd->t_state_lock); core_tmr_drain_tmr_list() 262 if (sess->sess_tearing_down || cmd->cmd_wait_set) { core_tmr_drain_tmr_list() 263 spin_unlock(&cmd->t_state_lock); core_tmr_drain_tmr_list() 267 cmd->transport_state |= CMD_T_ABORTED; core_tmr_drain_tmr_list() 268 spin_unlock(&cmd->t_state_lock); core_tmr_drain_tmr_list() 270 rc = kref_get_unless_zero(&cmd->cmd_kref); core_tmr_drain_tmr_list() 284 cmd = tmr_p->task_cmd; core_tmr_drain_tmr_list() 289 tmr_p->function, tmr_p->response, cmd->t_state); core_tmr_drain_tmr_list() 291 cancel_work_sync(&cmd->work); core_tmr_drain_tmr_list() 292 transport_wait_for_tasks(cmd); core_tmr_drain_tmr_list() 294 transport_cmd_finish_abort(cmd, 1); core_tmr_drain_tmr_list() 295 target_put_sess_cmd(cmd); core_tmr_drain_tmr_list() 308 struct se_cmd *cmd, *next; core_tmr_drain_state_list() local 335 list_for_each_entry_safe(cmd, next, &dev->state_list, state_list) { core_tmr_drain_state_list() 340 if (target_check_cdb_and_preempt(preempt_and_abort_list, cmd)) core_tmr_drain_state_list() 346 if (prout_cmd == cmd) core_tmr_drain_state_list() 349 sess = cmd->se_sess; core_tmr_drain_state_list() 354 rc = __target_check_io_state(cmd, tmr_sess, tas); core_tmr_drain_state_list() 359 list_move_tail(&cmd->state_list, &drain_task_list); core_tmr_drain_state_list() 360 cmd->state_active = false; core_tmr_drain_state_list() 365 cmd = list_entry(drain_task_list.next, struct se_cmd, state_list); core_tmr_drain_state_list() 366 list_del_init(&cmd->state_list); core_tmr_drain_state_list() 368 pr_debug("LUN_RESET: %s cmd: %p" core_tmr_drain_state_list() 371 (preempt_and_abort_list) ? "Preempt" : "", cmd, core_tmr_drain_state_list() 372 cmd->se_tfo->get_task_tag(cmd), 0, core_tmr_drain_state_list() 373 cmd->se_tfo->get_cmd_state(cmd), cmd->t_state, core_tmr_drain_state_list() 374 cmd->t_task_cdb[0]); core_tmr_drain_state_list() 378 cmd->se_tfo->get_task_tag(cmd), cmd->pr_res_key, core_tmr_drain_state_list() 379 (cmd->transport_state & CMD_T_ACTIVE) != 0, core_tmr_drain_state_list() 380 (cmd->transport_state & CMD_T_STOP) != 0, core_tmr_drain_state_list() 381 (cmd->transport_state & CMD_T_SENT) != 0); core_tmr_drain_state_list() 390 cancel_work_sync(&cmd->work); core_tmr_drain_state_list() 391 transport_wait_for_tasks(cmd); core_tmr_drain_state_list() 393 core_tmr_handle_tas_abort(cmd, tas); core_tmr_drain_state_list() 394 target_put_sess_cmd(cmd); core_tmr_drain_state_list() 100 target_check_cdb_and_preempt(struct list_head *list, struct se_cmd *cmd) target_check_cdb_and_preempt() argument
|
H A D | target_core_iblock.c | 292 static void iblock_complete_cmd(struct se_cmd *cmd) iblock_complete_cmd() argument 294 struct iblock_req *ibr = cmd->priv; iblock_complete_cmd() 305 target_complete_cmd(cmd, status); iblock_complete_cmd() 311 struct se_cmd *cmd = bio->bi_private; iblock_bio_done() local 312 struct iblock_req *ibr = cmd->priv; iblock_bio_done() 332 iblock_complete_cmd(cmd); iblock_bio_done() 336 iblock_get_bio(struct se_cmd *cmd, sector_t lba, u32 sg_num) iblock_get_bio() argument 338 struct iblock_dev *ib_dev = IBLOCK_DEV(cmd->se_dev); iblock_get_bio() 355 bio->bi_private = cmd; iblock_get_bio() 375 struct se_cmd *cmd = bio->bi_private; iblock_end_io_flush() local 380 if (cmd) { iblock_end_io_flush() 382 target_complete_cmd(cmd, SAM_STAT_CHECK_CONDITION); iblock_end_io_flush() 384 target_complete_cmd(cmd, SAM_STAT_GOOD); iblock_end_io_flush() 395 iblock_execute_sync_cache(struct se_cmd *cmd) iblock_execute_sync_cache() argument 397 struct iblock_dev *ib_dev = IBLOCK_DEV(cmd->se_dev); iblock_execute_sync_cache() 398 int immed = (cmd->t_task_cdb[1] & 0x2); iblock_execute_sync_cache() 406 target_complete_cmd(cmd, SAM_STAT_GOOD); iblock_execute_sync_cache() 412 bio->bi_private = cmd; iblock_execute_sync_cache() 418 iblock_do_unmap(struct se_cmd *cmd, void *priv, iblock_do_unmap() argument 434 iblock_execute_unmap(struct se_cmd *cmd) iblock_execute_unmap() argument 436 struct block_device *bdev = IBLOCK_DEV(cmd->se_dev)->ibd_bd; iblock_execute_unmap() 438 return sbc_execute_unmap(cmd, iblock_do_unmap, bdev); iblock_execute_unmap() 442 iblock_execute_write_same_unmap(struct se_cmd *cmd) iblock_execute_write_same_unmap() argument 444 struct block_device *bdev = IBLOCK_DEV(cmd->se_dev)->ibd_bd; iblock_execute_write_same_unmap() 445 sector_t lba = cmd->t_task_lba; iblock_execute_write_same_unmap() 446 sector_t nolb = sbc_get_write_same_sectors(cmd); iblock_execute_write_same_unmap() 449 ret = iblock_do_unmap(cmd, bdev, lba, nolb); iblock_execute_write_same_unmap() 453 target_complete_cmd(cmd, GOOD); iblock_execute_write_same_unmap() 458 iblock_execute_write_same(struct se_cmd *cmd) iblock_execute_write_same() argument 464 sector_t block_lba = cmd->t_task_lba; iblock_execute_write_same() 465 sector_t sectors = sbc_get_write_same_sectors(cmd); iblock_execute_write_same() 467 if (cmd->prot_op) { iblock_execute_write_same() 472 sg = &cmd->t_data_sg[0]; iblock_execute_write_same() 474 if (cmd->t_data_nents > 1 || iblock_execute_write_same() 475 sg->length != cmd->se_dev->dev_attrib.block_size) { iblock_execute_write_same() 477 " block_size: %u\n", cmd->t_data_nents, sg->length, iblock_execute_write_same() 478 cmd->se_dev->dev_attrib.block_size); iblock_execute_write_same() 485 cmd->priv = ibr; iblock_execute_write_same() 487 bio = iblock_get_bio(cmd, block_lba, 1); iblock_execute_write_same() 500 bio = iblock_get_bio(cmd, block_lba, 1); iblock_execute_write_same() 630 iblock_alloc_bip(struct se_cmd *cmd, struct bio *bio) iblock_alloc_bip() argument 632 struct se_device *dev = cmd->se_dev; iblock_alloc_bip() 645 bip = bio_integrity_alloc(bio, GFP_NOIO, cmd->t_prot_nents); iblock_alloc_bip() 651 bip->bip_iter.bi_size = (cmd->data_length / dev->dev_attrib.block_size) * iblock_alloc_bip() 658 for_each_sg(cmd->t_prot_sg, sg, cmd->t_prot_nents, i) { iblock_alloc_bip() 675 iblock_execute_rw(struct se_cmd *cmd, struct scatterlist *sgl, u32 sgl_nents, iblock_execute_rw() argument 678 struct se_device *dev = cmd->se_dev; iblock_execute_rw() 697 if (cmd->se_cmd_flags & SCF_FUA) iblock_execute_rw() 715 block_lba = (cmd->t_task_lba << 3); iblock_execute_rw() 717 block_lba = (cmd->t_task_lba << 2); iblock_execute_rw() 719 block_lba = (cmd->t_task_lba << 1); iblock_execute_rw() 721 block_lba = cmd->t_task_lba; iblock_execute_rw() 731 cmd->priv = ibr; iblock_execute_rw() 735 iblock_complete_cmd(cmd); iblock_execute_rw() 739 bio = iblock_get_bio(cmd, block_lba, sgl_nents); iblock_execute_rw() 763 bio = iblock_get_bio(cmd, block_lba, sg_num); for_each_sg() 777 if (cmd->prot_type && dev->dev_attrib.pi_prot_type) { 778 int rc = iblock_alloc_bip(cmd, bio_start); 784 iblock_complete_cmd(cmd); 853 iblock_parse_cdb(struct se_cmd *cmd) iblock_parse_cdb() argument 855 return sbc_parse_cdb(cmd, &iblock_sbc_ops); iblock_parse_cdb()
|
H A D | target_core_spc.c | 70 spc_emulate_inquiry_std(struct se_cmd *cmd, unsigned char *buf) spc_emulate_inquiry_std() argument 72 struct se_lun *lun = cmd->se_lun; spc_emulate_inquiry_std() 73 struct se_device *dev = cmd->se_dev; spc_emulate_inquiry_std() 74 struct se_session *sess = cmd->se_sess; spc_emulate_inquiry_std() 111 if (dev->dev_attrib.pi_prot_type || cmd->se_sess->sess_prot_type) spc_emulate_inquiry_std() 131 spc_emulate_evpd_80(struct se_cmd *cmd, unsigned char *buf) spc_emulate_evpd_80() argument 133 struct se_device *dev = cmd->se_dev; spc_emulate_evpd_80() 180 spc_emulate_evpd_83(struct se_cmd *cmd, unsigned char *buf) spc_emulate_evpd_83() argument 182 struct se_device *dev = cmd->se_dev; spc_emulate_evpd_83() 183 struct se_lun *lun = cmd->se_lun; spc_emulate_evpd_83() 461 spc_emulate_evpd_86(struct se_cmd *cmd, unsigned char *buf) spc_emulate_evpd_86() argument 463 struct se_device *dev = cmd->se_dev; spc_emulate_evpd_86() 464 struct se_session *sess = cmd->se_sess; spc_emulate_evpd_86() 473 cmd->se_sess->sess_prot_type == TARGET_DIF_TYPE1_PROT) spc_emulate_evpd_86() 476 cmd->se_sess->sess_prot_type == TARGET_DIF_TYPE3_PROT) spc_emulate_evpd_86() 487 spin_lock(&cmd->se_dev->t10_alua.lba_map_lock); spc_emulate_evpd_86() 490 spin_unlock(&cmd->se_dev->t10_alua.lba_map_lock); spc_emulate_evpd_86() 496 spc_emulate_evpd_b0(struct se_cmd *cmd, unsigned char *buf) spc_emulate_evpd_b0() argument 498 struct se_device *dev = cmd->se_dev; spc_emulate_evpd_b0() 583 spc_emulate_evpd_b1(struct se_cmd *cmd, unsigned char *buf) spc_emulate_evpd_b1() argument 585 struct se_device *dev = cmd->se_dev; spc_emulate_evpd_b1() 596 spc_emulate_evpd_b2(struct se_cmd *cmd, unsigned char *buf) spc_emulate_evpd_b2() argument 598 struct se_device *dev = cmd->se_dev; spc_emulate_evpd_b2() 648 spc_emulate_evpd_b3(struct se_cmd *cmd, unsigned char *buf) spc_emulate_evpd_b3() argument 650 struct se_device *dev = cmd->se_dev; spc_emulate_evpd_b3() 661 spc_emulate_evpd_00(struct se_cmd *cmd, unsigned char *buf); 679 spc_emulate_evpd_00(struct se_cmd *cmd, unsigned char *buf) spc_emulate_evpd_00() argument 688 if (cmd->se_dev->dev_flags & DF_EMULATED_VPD_UNIT_SERIAL) { spc_emulate_evpd_00() 698 spc_emulate_inquiry(struct se_cmd *cmd) spc_emulate_inquiry() argument 700 struct se_device *dev = cmd->se_dev; spc_emulate_inquiry() 701 struct se_portal_group *tpg = cmd->se_lun->lun_sep->sep_tpg; spc_emulate_inquiry() 703 unsigned char *cdb = cmd->t_task_cdb; spc_emulate_inquiry() 728 ret = spc_emulate_inquiry_std(cmd, buf); spc_emulate_inquiry() 736 ret = evpd_handlers[p].emulate(cmd, buf); spc_emulate_inquiry() 746 rbuf = transport_kmap_data_sg(cmd); spc_emulate_inquiry() 748 memcpy(rbuf, buf, min_t(u32, SE_INQUIRY_BUF, cmd->data_length)); spc_emulate_inquiry() 749 transport_kunmap_data_sg(cmd); spc_emulate_inquiry() 754 target_complete_cmd_with_length(cmd, GOOD, len); spc_emulate_inquiry() 758 static int spc_modesense_rwrecovery(struct se_cmd *cmd, u8 pc, u8 *p) spc_modesense_rwrecovery() argument 771 static int spc_modesense_control(struct se_cmd *cmd, u8 pc, u8 *p) spc_modesense_control() argument 773 struct se_device *dev = cmd->se_dev; spc_modesense_control() 774 struct se_session *sess = cmd->se_sess; spc_modesense_control() 880 static int spc_modesense_caching(struct se_cmd *cmd, u8 pc, u8 *p) spc_modesense_caching() argument 882 struct se_device *dev = cmd->se_dev; spc_modesense_caching() 899 static int spc_modesense_informational_exceptions(struct se_cmd *cmd, u8 pc, unsigned char *p) spc_modesense_informational_exceptions() argument 973 static sense_reason_t spc_emulate_modesense(struct se_cmd *cmd) spc_emulate_modesense() argument 975 struct se_device *dev = cmd->se_dev; spc_emulate_modesense() 976 char *cdb = cmd->t_task_cdb; spc_emulate_modesense() 979 int ten = (cmd->t_task_cdb[0] == MODE_SENSE_10); spc_emulate_modesense() 998 if ((cmd->se_lun->lun_access & TRANSPORT_LUNFLAGS_READ_ONLY) || spc_emulate_modesense() 999 (cmd->se_deve && spc_emulate_modesense() 1000 (cmd->se_deve->lun_flags & TRANSPORT_LUNFLAGS_READ_ONLY))) spc_emulate_modesense() 1053 ret = modesense_handlers[i].emulate(cmd, pc, &buf[length]); spc_emulate_modesense() 1066 length += modesense_handlers[i].emulate(cmd, pc, &buf[length]); spc_emulate_modesense() 1086 rbuf = transport_kmap_data_sg(cmd); spc_emulate_modesense() 1088 memcpy(rbuf, buf, min_t(u32, SE_MODE_PAGE_BUF, cmd->data_length)); spc_emulate_modesense() 1089 transport_kunmap_data_sg(cmd); spc_emulate_modesense() 1092 target_complete_cmd_with_length(cmd, GOOD, length); spc_emulate_modesense() 1096 static sense_reason_t spc_emulate_modeselect(struct se_cmd *cmd) spc_emulate_modeselect() argument 1098 char *cdb = cmd->t_task_cdb; spc_emulate_modeselect() 1109 if (!cmd->data_length) { spc_emulate_modeselect() 1110 target_complete_cmd(cmd, GOOD); spc_emulate_modeselect() 1114 if (cmd->data_length < off + 2) spc_emulate_modeselect() 1117 buf = transport_kmap_data_sg(cmd); spc_emulate_modeselect() 1133 length = modesense_handlers[i].emulate(cmd, 0, tbuf); spc_emulate_modeselect() 1141 if (cmd->data_length < off + length) { spc_emulate_modeselect() 1150 transport_kunmap_data_sg(cmd); spc_emulate_modeselect() 1153 target_complete_cmd(cmd, GOOD); spc_emulate_modeselect() 1157 static sense_reason_t spc_emulate_request_sense(struct se_cmd *cmd) spc_emulate_request_sense() argument 1159 unsigned char *cdb = cmd->t_task_cdb; spc_emulate_request_sense() 1172 rbuf = transport_kmap_data_sg(cmd); spc_emulate_request_sense() 1176 if (!core_scsi3_ua_clear_for_request_sense(cmd, &ua_asc, &ua_ascq)) { spc_emulate_request_sense() 1203 memcpy(rbuf, buf, min_t(u32, sizeof(buf), cmd->data_length)); spc_emulate_request_sense() 1204 transport_kunmap_data_sg(cmd); spc_emulate_request_sense() 1206 target_complete_cmd(cmd, GOOD); spc_emulate_request_sense() 1210 sense_reason_t spc_emulate_report_luns(struct se_cmd *cmd) spc_emulate_report_luns() argument 1213 struct se_session *sess = cmd->se_sess; spc_emulate_report_luns() 1217 if (cmd->data_length < 16) { spc_emulate_report_luns() 1219 cmd->data_length); spc_emulate_report_luns() 1223 buf = transport_kmap_data_sg(cmd); spc_emulate_report_luns() 1249 if ((offset + 8) > cmd->data_length) spc_emulate_report_luns() 1266 transport_kunmap_data_sg(cmd); spc_emulate_report_luns() 1268 target_complete_cmd_with_length(cmd, GOOD, 8 + lun_count * 8); spc_emulate_report_luns() 1274 spc_emulate_testunitready(struct se_cmd *cmd) spc_emulate_testunitready() argument 1276 target_complete_cmd(cmd, GOOD); spc_emulate_testunitready() 1281 spc_parse_cdb(struct se_cmd *cmd, unsigned int *size) spc_parse_cdb() argument 1283 struct se_device *dev = cmd->se_dev; spc_parse_cdb() 1284 unsigned char *cdb = cmd->t_task_cdb; spc_parse_cdb() 1289 cmd->execute_cmd = spc_emulate_modeselect; spc_parse_cdb() 1293 cmd->execute_cmd = spc_emulate_modeselect; spc_parse_cdb() 1297 cmd->execute_cmd = spc_emulate_modesense; spc_parse_cdb() 1301 cmd->execute_cmd = spc_emulate_modesense; spc_parse_cdb() 1309 cmd->execute_cmd = target_scsi3_emulate_pr_in; spc_parse_cdb() 1313 cmd->execute_cmd = target_scsi3_emulate_pr_out; spc_parse_cdb() 1320 *size = cmd->data_length; spc_parse_cdb() 1322 cmd->execute_cmd = target_scsi2_reservation_release; spc_parse_cdb() 1333 *size = cmd->data_length; spc_parse_cdb() 1335 cmd->execute_cmd = target_scsi2_reservation_reserve; spc_parse_cdb() 1339 cmd->execute_cmd = spc_emulate_request_sense; spc_parse_cdb() 1348 cmd->sam_task_attr = TCM_HEAD_TAG; spc_parse_cdb() 1349 cmd->execute_cmd = spc_emulate_inquiry; spc_parse_cdb() 1357 cmd->execute_cmd = target_do_xcopy; spc_parse_cdb() 1361 cmd->execute_cmd = target_do_receive_copy_results; spc_parse_cdb() 1376 cmd->execute_cmd = spc_emulate_report_luns; spc_parse_cdb() 1382 cmd->sam_task_attr = TCM_HEAD_TAG; spc_parse_cdb() 1385 cmd->execute_cmd = spc_emulate_testunitready; spc_parse_cdb() 1395 cmd->execute_cmd = spc_parse_cdb() 1413 cmd->execute_cmd = spc_parse_cdb() 1427 cmd->se_tfo->get_fabric_name(), cdb[0]); spc_parse_cdb()
|
/linux-4.1.27/drivers/gpu/drm/nouveau/ |
H A D | nouveau_ioctl.h | 4 long nouveau_compat_ioctl(struct file *, unsigned int cmd, unsigned long arg); 5 long nouveau_drm_ioctl(struct file *, unsigned int cmd, unsigned long arg);
|
/linux-4.1.27/drivers/target/iscsi/ |
H A D | iscsi_target_seq_pdu_list.c | 31 static void iscsit_dump_seq_list(struct iscsi_cmd *cmd) iscsit_dump_seq_list() argument 37 cmd->init_task_tag); iscsit_dump_seq_list() 39 for (i = 0; i < cmd->seq_count; i++) { iscsit_dump_seq_list() 40 seq = &cmd->seq_list[i]; iscsit_dump_seq_list() 49 static void iscsit_dump_pdu_list(struct iscsi_cmd *cmd) iscsit_dump_pdu_list() argument 55 cmd->init_task_tag); iscsit_dump_pdu_list() 57 for (i = 0; i < cmd->pdu_count; i++) { iscsit_dump_pdu_list() 58 pdu = &cmd->pdu_list[i]; iscsit_dump_pdu_list() 65 static void iscsit_dump_seq_list(struct iscsi_cmd *cmd) {} iscsit_dump_pdu_list() argument 66 static void iscsit_dump_pdu_list(struct iscsi_cmd *cmd) {} iscsit_dump_pdu_list() argument 70 struct iscsi_cmd *cmd, iscsit_ordered_seq_lists() 75 for (i = 0; i < cmd->seq_count; i++) { iscsit_ordered_seq_lists() 76 if (cmd->seq_list[i].type != SEQTYPE_NORMAL) iscsit_ordered_seq_lists() 78 cmd->seq_list[i].seq_send_order = seq_count++; iscsit_ordered_seq_lists() 83 struct iscsi_cmd *cmd, iscsit_ordered_pdu_lists() 88 for (i = 0; i < cmd->pdu_count; i++) { iscsit_ordered_pdu_lists() 90 if (cmd->pdu_list[i].seq_no == seq_no) { iscsit_ordered_pdu_lists() 91 cmd->pdu_list[i].pdu_send_order = pdu_send_order++; iscsit_ordered_pdu_lists() 130 struct iscsi_cmd *cmd, iscsit_randomize_pdu_lists() 136 for (pdu_count = 0; pdu_count < cmd->pdu_count; pdu_count++) { iscsit_randomize_pdu_lists() 138 if (cmd->pdu_list[pdu_count].seq_no == seq_no) { iscsit_randomize_pdu_lists() 151 cmd->pdu_list[seq_offset+i].pdu_send_order = array[i]; iscsit_randomize_pdu_lists() 171 cmd->pdu_list[seq_offset+i].pdu_send_order = array[i]; iscsit_randomize_pdu_lists() 180 struct iscsi_cmd *cmd, iscsit_randomize_seq_lists() 184 u32 *array, seq_count = cmd->seq_count; iscsit_randomize_seq_lists() 201 for (i = 0; i < cmd->seq_count; i++) { iscsit_randomize_seq_lists() 202 if (cmd->seq_list[i].type != SEQTYPE_NORMAL) iscsit_randomize_seq_lists() 204 cmd->seq_list[i].seq_send_order = array[j++]; iscsit_randomize_seq_lists() 212 struct iscsi_cmd *cmd, iscsit_determine_counts_for_list() 221 struct iscsi_conn *conn = cmd->conn; iscsit_determine_counts_for_list() 223 if (cmd->se_cmd.data_direction == DMA_TO_DEVICE) iscsit_determine_counts_for_list() 224 mdsl = cmd->conn->conn_ops->MaxXmitDataSegmentLength; iscsit_determine_counts_for_list() 226 mdsl = cmd->conn->conn_ops->MaxRecvDataSegmentLength; iscsit_determine_counts_for_list() 234 unsolicited_data_length = min(cmd->se_cmd.data_length, iscsit_determine_counts_for_list() 237 while (offset < cmd->se_cmd.data_length) { iscsit_determine_counts_for_list() 250 if ((offset + mdsl) >= cmd->se_cmd.data_length) { iscsit_determine_counts_for_list() 252 (cmd->se_cmd.data_length - offset); iscsit_determine_counts_for_list() 253 offset += (cmd->se_cmd.data_length - offset); iscsit_determine_counts_for_list() 272 if ((offset + mdsl) >= cmd->se_cmd.data_length) { iscsit_determine_counts_for_list() 273 offset += (cmd->se_cmd.data_length - offset); iscsit_determine_counts_for_list() 296 struct iscsi_cmd *cmd, iscsit_do_build_pdu_and_seq_lists() 302 struct iscsi_conn *conn = cmd->conn; iscsit_do_build_pdu_and_seq_lists() 303 struct iscsi_pdu *pdu = cmd->pdu_list; iscsit_do_build_pdu_and_seq_lists() 304 struct iscsi_seq *seq = cmd->seq_list; iscsit_do_build_pdu_and_seq_lists() 306 if (cmd->se_cmd.data_direction == DMA_TO_DEVICE) iscsit_do_build_pdu_and_seq_lists() 307 mdsl = cmd->conn->conn_ops->MaxXmitDataSegmentLength; iscsit_do_build_pdu_and_seq_lists() 309 mdsl = cmd->conn->conn_ops->MaxRecvDataSegmentLength; iscsit_do_build_pdu_and_seq_lists() 320 unsolicited_data_length = min(cmd->se_cmd.data_length, iscsit_do_build_pdu_and_seq_lists() 323 while (offset < cmd->se_cmd.data_length) { iscsit_do_build_pdu_and_seq_lists() 357 if ((offset + mdsl) >= cmd->se_cmd.data_length) { iscsit_do_build_pdu_and_seq_lists() 361 (cmd->se_cmd.data_length - offset); iscsit_do_build_pdu_and_seq_lists() 367 (cmd->se_cmd.data_length - offset)); iscsit_do_build_pdu_and_seq_lists() 370 (cmd->se_cmd.data_length - offset); iscsit_do_build_pdu_and_seq_lists() 371 offset += (cmd->se_cmd.data_length - offset); iscsit_do_build_pdu_and_seq_lists() 409 if ((offset + mdsl) >= cmd->se_cmd.data_length) { iscsit_do_build_pdu_and_seq_lists() 412 pdu[i].length = (cmd->se_cmd.data_length - offset); iscsit_do_build_pdu_and_seq_lists() 418 (cmd->se_cmd.data_length - offset)); iscsit_do_build_pdu_and_seq_lists() 420 offset += (cmd->se_cmd.data_length - offset); iscsit_do_build_pdu_and_seq_lists() 457 if (iscsit_randomize_seq_lists(cmd, bl->type) iscsit_do_build_pdu_and_seq_lists() 461 iscsit_ordered_seq_lists(cmd, bl->type); iscsit_do_build_pdu_and_seq_lists() 464 if (iscsit_randomize_seq_lists(cmd, bl->type) iscsit_do_build_pdu_and_seq_lists() 468 iscsit_ordered_seq_lists(cmd, bl->type); iscsit_do_build_pdu_and_seq_lists() 471 iscsit_dump_seq_list(cmd); iscsit_do_build_pdu_and_seq_lists() 476 if (iscsit_randomize_pdu_lists(cmd, bl->type) iscsit_do_build_pdu_and_seq_lists() 480 iscsit_ordered_pdu_lists(cmd, bl->type); iscsit_do_build_pdu_and_seq_lists() 483 if (iscsit_randomize_pdu_lists(cmd, bl->type) iscsit_do_build_pdu_and_seq_lists() 487 iscsit_ordered_pdu_lists(cmd, bl->type); iscsit_do_build_pdu_and_seq_lists() 490 iscsit_dump_pdu_list(cmd); iscsit_do_build_pdu_and_seq_lists() 497 struct iscsi_cmd *cmd, iscsit_build_pdu_and_seq_lists() 502 struct iscsi_conn *conn = cmd->conn; iscsit_build_pdu_and_seq_lists() 516 if (cmd->data_direction == DMA_NONE) iscsit_build_pdu_and_seq_lists() 522 if (cmd->data_direction == DMA_FROM_DEVICE) { iscsit_build_pdu_and_seq_lists() 535 if (!cmd->immediate_data && !cmd->unsolicited_data) iscsit_build_pdu_and_seq_lists() 537 else if (cmd->immediate_data && !cmd->unsolicited_data) iscsit_build_pdu_and_seq_lists() 539 else if (!cmd->immediate_data && cmd->unsolicited_data) iscsit_build_pdu_and_seq_lists() 541 else if (cmd->immediate_data && cmd->unsolicited_data) iscsit_build_pdu_and_seq_lists() 545 iscsit_determine_counts_for_list(cmd, &bl, &seq_count, &pdu_count); iscsit_build_pdu_and_seq_lists() 553 cmd->seq_list = seq; iscsit_build_pdu_and_seq_lists() 554 cmd->seq_count = seq_count; iscsit_build_pdu_and_seq_lists() 564 cmd->pdu_list = pdu; iscsit_build_pdu_and_seq_lists() 565 cmd->pdu_count = pdu_count; iscsit_build_pdu_and_seq_lists() 568 return iscsit_do_build_pdu_and_seq_lists(cmd, &bl); iscsit_build_pdu_and_seq_lists() 572 struct iscsi_cmd *cmd, iscsit_get_pdu_holder() 579 if (!cmd->pdu_list) { iscsit_get_pdu_holder() 584 pdu = &cmd->pdu_list[0]; iscsit_get_pdu_holder() 586 for (i = 0; i < cmd->pdu_count; i++) iscsit_get_pdu_holder() 591 " %u, Length: %u\n", cmd->init_task_tag, offset, length); iscsit_get_pdu_holder() 596 struct iscsi_cmd *cmd, iscsit_get_pdu_holder_for_seq() 600 struct iscsi_conn *conn = cmd->conn; iscsit_get_pdu_holder_for_seq() 603 if (!cmd->pdu_list) { iscsit_get_pdu_holder_for_seq() 610 pdu = &cmd->pdu_list[cmd->pdu_start]; iscsit_get_pdu_holder_for_seq() 612 for (i = 0; pdu[i].seq_no != cmd->seq_no; i++) { iscsit_get_pdu_holder_for_seq() 619 if (pdu[i].pdu_send_order == cmd->pdu_send_order) { iscsit_get_pdu_holder_for_seq() 620 cmd->pdu_send_order++; iscsit_get_pdu_holder_for_seq() 625 cmd->pdu_start += cmd->pdu_send_order; iscsit_get_pdu_holder_for_seq() 626 cmd->pdu_send_order = 0; iscsit_get_pdu_holder_for_seq() 627 cmd->seq_no++; iscsit_get_pdu_holder_for_seq() 629 if (cmd->pdu_start < cmd->pdu_count) iscsit_get_pdu_holder_for_seq() 633 " struct iscsi_pdu for cmd->pdu_send_order: %u.\n", iscsit_get_pdu_holder_for_seq() 634 cmd->init_task_tag, cmd->pdu_send_order); iscsit_get_pdu_holder_for_seq() 646 pdu = &cmd->pdu_list[seq->pdu_start]; iscsit_get_pdu_holder_for_seq() 651 cmd->init_task_tag, seq->pdu_send_order, iscsit_get_pdu_holder_for_seq() 665 cmd->init_task_tag, seq->pdu_send_order); iscsit_get_pdu_holder_for_seq() 673 struct iscsi_cmd *cmd, iscsit_get_seq_holder() 679 if (!cmd->seq_list) { iscsit_get_seq_holder() 684 for (i = 0; i < cmd->seq_count; i++) { iscsit_get_seq_holder() 687 cmd->seq_list[i].orig_offset, cmd->seq_list[i].xfer_len, iscsit_get_seq_holder() 688 cmd->seq_list[i].seq_no); iscsit_get_seq_holder() 690 if ((cmd->seq_list[i].orig_offset + iscsit_get_seq_holder() 691 cmd->seq_list[i].xfer_len) >= iscsit_get_seq_holder() 693 return &cmd->seq_list[i]; iscsit_get_seq_holder() 697 " Offset: %u, Length: %u\n", cmd->init_task_tag, offset, iscsit_get_seq_holder() 69 iscsit_ordered_seq_lists( struct iscsi_cmd *cmd, u8 type) iscsit_ordered_seq_lists() argument 82 iscsit_ordered_pdu_lists( struct iscsi_cmd *cmd, u8 type) iscsit_ordered_pdu_lists() argument 129 iscsit_randomize_pdu_lists( struct iscsi_cmd *cmd, u8 type) iscsit_randomize_pdu_lists() argument 179 iscsit_randomize_seq_lists( struct iscsi_cmd *cmd, u8 type) iscsit_randomize_seq_lists() argument 211 iscsit_determine_counts_for_list( struct iscsi_cmd *cmd, struct iscsi_build_list *bl, u32 *seq_count, u32 *pdu_count) iscsit_determine_counts_for_list() argument 295 iscsit_do_build_pdu_and_seq_lists( struct iscsi_cmd *cmd, struct iscsi_build_list *bl) iscsit_do_build_pdu_and_seq_lists() argument 496 iscsit_build_pdu_and_seq_lists( struct iscsi_cmd *cmd, u32 immediate_data_length) iscsit_build_pdu_and_seq_lists() argument 571 iscsit_get_pdu_holder( struct iscsi_cmd *cmd, u32 offset, u32 length) iscsit_get_pdu_holder() argument 595 iscsit_get_pdu_holder_for_seq( struct iscsi_cmd *cmd, struct iscsi_seq *seq) iscsit_get_pdu_holder_for_seq() argument 672 iscsit_get_seq_holder( struct iscsi_cmd *cmd, u32 offset, u32 length) iscsit_get_seq_holder() argument
|
H A D | iscsi_target_erl1.c | 121 struct iscsi_cmd *cmd, iscsit_send_recovery_r2t_for_snack() 129 spin_lock_bh(&cmd->r2t_lock); iscsit_send_recovery_r2t_for_snack() 131 spin_unlock_bh(&cmd->r2t_lock); iscsit_send_recovery_r2t_for_snack() 135 spin_unlock_bh(&cmd->r2t_lock); iscsit_send_recovery_r2t_for_snack() 137 iscsit_add_cmd_to_immediate_queue(cmd, cmd->conn, ISTATE_SEND_R2T); iscsit_send_recovery_r2t_for_snack() 143 struct iscsi_cmd *cmd, iscsit_handle_r2t_snack() 155 if ((cmd->cmd_flags & ICF_GOT_DATACK_SNACK) && iscsit_handle_r2t_snack() 156 (begrun <= cmd->acked_data_sn)) { iscsit_handle_r2t_snack() 160 " protocol error.\n", cmd->init_task_tag, begrun, iscsit_handle_r2t_snack() 161 (begrun + runlength), cmd->acked_data_sn); iscsit_handle_r2t_snack() 163 return iscsit_reject_cmd(cmd, iscsit_handle_r2t_snack() 168 if ((begrun + runlength) > cmd->r2t_sn) { iscsit_handle_r2t_snack() 172 cmd->init_task_tag, begrun, runlength, cmd->r2t_sn); iscsit_handle_r2t_snack() 173 return iscsit_reject_cmd(cmd, iscsit_handle_r2t_snack() 178 last_r2tsn = cmd->r2t_sn; iscsit_handle_r2t_snack() 181 r2t = iscsit_get_holder_for_r2tsn(cmd, begrun); iscsit_handle_r2t_snack() 184 if (iscsit_send_recovery_r2t_for_snack(cmd, r2t) < 0) iscsit_handle_r2t_snack() 202 struct iscsi_cmd *cmd, iscsit_create_recovery_datain_values_datasequenceinorder_yes() 208 struct iscsi_conn *conn = cmd->conn; iscsit_create_recovery_datain_values_datasequenceinorder_yes() 231 cmd->seq_no = seq_no; iscsit_create_recovery_datain_values_datasequenceinorder_yes() 232 cmd->pdu_start = pdu_start; iscsit_create_recovery_datain_values_datasequenceinorder_yes() 233 cmd->pdu_send_order = data_sn_count; iscsit_create_recovery_datain_values_datasequenceinorder_yes() 248 struct iscsi_cmd *cmd, iscsit_create_recovery_datain_values_datasequenceinorder_no() 255 struct iscsi_conn *conn = cmd->conn; iscsit_create_recovery_datain_values_datasequenceinorder_no() 258 if (!cmd->seq_list) { iscsit_create_recovery_datain_values_datasequenceinorder_no() 272 for (i = 0; i < cmd->seq_count; i++) { iscsit_create_recovery_datain_values_datasequenceinorder_no() 273 seq = &cmd->seq_list[i]; iscsit_create_recovery_datain_values_datasequenceinorder_no() 300 read_data_done += cmd->seq_list[i].xfer_len; iscsit_create_recovery_datain_values_datasequenceinorder_no() 348 pdu = &cmd->pdu_list[ iscsit_create_recovery_datain_values_datasequenceinorder_no() 382 cmd->init_task_tag, begrun); iscsit_create_recovery_datain_values_datasequenceinorder_no() 393 cmd->init_task_tag, begrun, runlength, iscsit_create_recovery_datain_values_datasequenceinorder_no() 406 struct iscsi_cmd *cmd, iscsit_handle_recovery_datain() 411 struct iscsi_conn *conn = cmd->conn; iscsit_handle_recovery_datain() 413 struct se_cmd *se_cmd = &cmd->se_cmd; iscsit_handle_recovery_datain() 417 cmd->init_task_tag); iscsit_handle_recovery_datain() 425 if ((cmd->cmd_flags & ICF_GOT_DATACK_SNACK) && iscsit_handle_recovery_datain() 426 (begrun <= cmd->acked_data_sn)) { iscsit_handle_recovery_datain() 430 " protocol error.\n", cmd->init_task_tag, begrun, iscsit_handle_recovery_datain() 431 (begrun + runlength), cmd->acked_data_sn); iscsit_handle_recovery_datain() 433 return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR, buf); iscsit_handle_recovery_datain() 438 * Note: (cmd->data_sn - 1) will carry the maximum DataSN sent. iscsit_handle_recovery_datain() 440 if ((begrun + runlength) > (cmd->data_sn - 1)) { iscsit_handle_recovery_datain() 443 begrun, runlength, (cmd->data_sn - 1)); iscsit_handle_recovery_datain() 444 return iscsit_reject_cmd(cmd, ISCSI_REASON_BOOKMARK_INVALID, iscsit_handle_recovery_datain() 450 return iscsit_reject_cmd(cmd, ISCSI_REASON_BOOKMARK_NO_RESOURCES, iscsit_handle_recovery_datain() 458 iscsit_attach_datain_req(cmd, dr); iscsit_handle_recovery_datain() 460 cmd->i_state = ISTATE_SEND_DATAIN; iscsit_handle_recovery_datain() 461 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_handle_recovery_datain() 474 struct iscsi_cmd *cmd; iscsit_handle_recovery_datain_or_r2t() local 476 cmd = iscsit_find_cmd_from_itt(conn, init_task_tag); iscsit_handle_recovery_datain_or_r2t() 477 if (!cmd) iscsit_handle_recovery_datain_or_r2t() 483 switch (cmd->data_direction) { iscsit_handle_recovery_datain_or_r2t() 485 return iscsit_handle_r2t_snack(cmd, buf, begrun, runlength); iscsit_handle_recovery_datain_or_r2t() 487 return iscsit_handle_recovery_datain(cmd, buf, begrun, iscsit_handle_recovery_datain_or_r2t() 490 pr_err("Unknown cmd->data_direction: 0x%02x\n", iscsit_handle_recovery_datain_or_r2t() 491 cmd->data_direction); iscsit_handle_recovery_datain_or_r2t() 506 struct iscsi_cmd *cmd = NULL; iscsit_handle_status_snack() local 526 list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) { iscsit_handle_status_snack() 527 if (cmd->stat_sn == begrun) { iscsit_handle_status_snack() 543 spin_lock_bh(&cmd->istate_lock); iscsit_handle_status_snack() 544 if (cmd->i_state == ISTATE_SEND_DATAIN) { iscsit_handle_status_snack() 545 spin_unlock_bh(&cmd->istate_lock); iscsit_handle_status_snack() 553 spin_unlock_bh(&cmd->istate_lock); iscsit_handle_status_snack() 555 cmd->i_state = ISTATE_SEND_STATUS_RECOVERY; iscsit_handle_status_snack() 556 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_handle_status_snack() 569 struct iscsi_cmd *cmd = NULL; iscsit_handle_data_ack() local 571 cmd = iscsit_find_cmd_from_ttt(conn, targ_xfer_tag); iscsit_handle_data_ack() 572 if (!cmd) { iscsit_handle_data_ack() 578 if (begrun <= cmd->acked_data_sn) { iscsit_handle_data_ack() 581 cmd->init_task_tag, begrun, cmd->acked_data_sn); iscsit_handle_data_ack() 589 cmd->cmd_flags |= ICF_GOT_DATACK_SNACK; iscsit_handle_data_ack() 590 cmd->acked_data_sn = (begrun - 1); iscsit_handle_data_ack() 594 cmd->init_task_tag, cmd->acked_data_sn); iscsit_handle_data_ack() 600 struct iscsi_cmd *cmd, iscsit_send_recovery_r2t() 606 spin_lock_bh(&cmd->r2t_lock); iscsit_send_recovery_r2t() 607 ret = iscsit_add_r2t_to_list(cmd, offset, xfer_len, 1, 0); iscsit_send_recovery_r2t() 608 spin_unlock_bh(&cmd->r2t_lock); iscsit_send_recovery_r2t() 614 struct iscsi_cmd *cmd, iscsit_dataout_datapduinorder_no_fbit() 619 struct iscsi_conn *conn = cmd->conn; iscsit_dataout_datapduinorder_no_fbit() 627 for (i = 0; i < cmd->pdu_count; i++) { iscsit_dataout_datapduinorder_no_fbit() 628 if (cmd->pdu_list[i].seq_no == pdu->seq_no) { iscsit_dataout_datapduinorder_no_fbit() 630 first_pdu = &cmd->pdu_list[i]; iscsit_dataout_datapduinorder_no_fbit() 631 xfer_len += cmd->pdu_list[i].length; iscsit_dataout_datapduinorder_no_fbit() 637 struct iscsi_seq *seq = cmd->seq_ptr; iscsit_dataout_datapduinorder_no_fbit() 639 first_pdu = &cmd->pdu_list[seq->pdu_start]; iscsit_dataout_datapduinorder_no_fbit() 655 if (iscsit_send_recovery_r2t(cmd, offset, length) < 0) iscsit_dataout_datapduinorder_no_fbit() 683 if (iscsit_send_recovery_r2t(cmd, offset, length) < 0) iscsit_dataout_datapduinorder_no_fbit() 690 struct iscsi_cmd *cmd, iscsit_recalculate_dataout_values() 697 struct iscsi_conn *conn = cmd->conn; iscsit_recalculate_dataout_values() 701 cmd->data_sn = 0; iscsit_recalculate_dataout_values() 704 *r2t_offset = cmd->write_data_done; iscsit_recalculate_dataout_values() 705 *r2t_length = (cmd->seq_end_offset - iscsit_recalculate_dataout_values() 706 cmd->write_data_done); iscsit_recalculate_dataout_values() 710 *r2t_offset = cmd->seq_start_offset; iscsit_recalculate_dataout_values() 711 *r2t_length = (cmd->seq_end_offset - cmd->seq_start_offset); iscsit_recalculate_dataout_values() 713 for (i = 0; i < cmd->pdu_count; i++) { iscsit_recalculate_dataout_values() 714 pdu = &cmd->pdu_list[i]; iscsit_recalculate_dataout_values() 719 if ((pdu->offset >= cmd->seq_start_offset) && iscsit_recalculate_dataout_values() 721 cmd->seq_end_offset)) { iscsit_recalculate_dataout_values() 722 if (!cmd->unsolicited_data) iscsit_recalculate_dataout_values() 723 cmd->next_burst_len -= pdu->length; iscsit_recalculate_dataout_values() 725 cmd->first_burst_len -= pdu->length; iscsit_recalculate_dataout_values() 727 cmd->write_data_done -= pdu->length; iscsit_recalculate_dataout_values() 734 seq = iscsit_get_seq_holder(cmd, pdu_offset, pdu_length); iscsit_recalculate_dataout_values() 741 cmd->write_data_done -= (seq->offset - seq->orig_offset); iscsit_recalculate_dataout_values() 742 if (cmd->immediate_data) iscsit_recalculate_dataout_values() 743 cmd->first_burst_len = cmd->write_data_done; iscsit_recalculate_dataout_values() 754 pdu = &cmd->pdu_list[i+seq->pdu_start]; iscsit_recalculate_dataout_values() 767 struct iscsi_cmd *cmd, iscsit_recover_dataout_sequence() 773 spin_lock_bh(&cmd->istate_lock); iscsit_recover_dataout_sequence() 774 cmd->cmd_flags |= ICF_WITHIN_COMMAND_RECOVERY; iscsit_recover_dataout_sequence() 775 spin_unlock_bh(&cmd->istate_lock); iscsit_recover_dataout_sequence() 777 if (iscsit_recalculate_dataout_values(cmd, pdu_offset, pdu_length, iscsit_recover_dataout_sequence() 781 iscsit_send_recovery_r2t(cmd, r2t_offset, r2t_length); iscsit_recover_dataout_sequence() 870 ooo_cmdsn->cmd = NULL; iscsit_clear_ooo_cmdsns_for_conn() 881 struct iscsi_cmd *cmd = NULL; iscsit_execute_ooo_cmdsns() local 889 if (!ooo_cmdsn->cmd) { iscsit_execute_ooo_cmdsns() 895 cmd = ooo_cmdsn->cmd; iscsit_execute_ooo_cmdsns() 896 cmd->i_state = cmd->deferred_i_state; iscsit_execute_ooo_cmdsns() 901 cmd->cmd_sn, sess->exp_cmd_sn); iscsit_execute_ooo_cmdsns() 905 if (iscsit_execute_cmd(cmd, 1) < 0) iscsit_execute_ooo_cmdsns() 922 int iscsit_execute_cmd(struct iscsi_cmd *cmd, int ooo) iscsit_execute_cmd() argument 924 struct se_cmd *se_cmd = &cmd->se_cmd; iscsit_execute_cmd() 925 struct iscsi_conn *conn = cmd->conn; iscsit_execute_cmd() 928 spin_lock_bh(&cmd->istate_lock); iscsit_execute_cmd() 930 cmd->cmd_flags &= ~ICF_OOO_CMDSN; iscsit_execute_cmd() 932 switch (cmd->iscsi_opcode) { iscsit_execute_cmd() 938 if (cmd->sense_reason) { iscsit_execute_cmd() 939 if (cmd->sense_reason == TCM_RESERVATION_CONFLICT) { iscsit_execute_cmd() 940 cmd->i_state = ISTATE_SEND_STATUS; iscsit_execute_cmd() 941 spin_unlock_bh(&cmd->istate_lock); iscsit_execute_cmd() 942 iscsit_add_cmd_to_response_queue(cmd, cmd->conn, iscsit_execute_cmd() 943 cmd->i_state); iscsit_execute_cmd() 946 spin_unlock_bh(&cmd->istate_lock); iscsit_execute_cmd() 955 (cmd->unsolicited_data == 0)) != 0) iscsit_execute_cmd() 962 cmd->sense_reason, 0); iscsit_execute_cmd() 968 if (cmd->immediate_data) { iscsit_execute_cmd() 969 if (cmd->cmd_flags & ICF_GOT_LAST_DATAOUT) { iscsit_execute_cmd() 970 spin_unlock_bh(&cmd->istate_lock); iscsit_execute_cmd() 971 target_execute_cmd(&cmd->se_cmd); iscsit_execute_cmd() 974 spin_unlock_bh(&cmd->istate_lock); iscsit_execute_cmd() 976 if (!(cmd->cmd_flags & iscsit_execute_cmd() 987 iscsit_set_dataout_sequence_values(cmd); iscsit_execute_cmd() 988 conn->conn_transport->iscsit_get_dataout(conn, cmd, false); iscsit_execute_cmd() 995 spin_unlock_bh(&cmd->istate_lock); iscsit_execute_cmd() 997 if ((cmd->data_direction == DMA_TO_DEVICE) && iscsit_execute_cmd() 998 !(cmd->cmd_flags & ICF_NON_IMMEDIATE_UNSOLICITED_DATA)) { iscsit_execute_cmd() 1006 iscsit_set_unsoliticed_dataout(cmd); iscsit_execute_cmd() 1008 return transport_handle_cdb_direct(&cmd->se_cmd); iscsit_execute_cmd() 1012 spin_unlock_bh(&cmd->istate_lock); iscsit_execute_cmd() 1013 iscsit_add_cmd_to_response_queue(cmd, cmd->conn, cmd->i_state); iscsit_execute_cmd() 1016 if (cmd->se_cmd.se_tmr_req->response) { iscsit_execute_cmd() 1017 spin_unlock_bh(&cmd->istate_lock); iscsit_execute_cmd() 1018 iscsit_add_cmd_to_response_queue(cmd, cmd->conn, iscsit_execute_cmd() 1019 cmd->i_state); iscsit_execute_cmd() 1022 spin_unlock_bh(&cmd->istate_lock); iscsit_execute_cmd() 1024 return transport_generic_handle_tmr(&cmd->se_cmd); iscsit_execute_cmd() 1026 spin_unlock_bh(&cmd->istate_lock); iscsit_execute_cmd() 1027 switch (cmd->logout_reason) { iscsit_execute_cmd() 1029 lr = iscsit_logout_closesession(cmd, cmd->conn); iscsit_execute_cmd() 1032 lr = iscsit_logout_closeconnection(cmd, cmd->conn); iscsit_execute_cmd() 1035 lr = iscsit_logout_removeconnforrecovery(cmd, cmd->conn); iscsit_execute_cmd() 1039 " 0x%02x\n", cmd->logout_reason); iscsit_execute_cmd() 1045 spin_unlock_bh(&cmd->istate_lock); iscsit_execute_cmd() 1047 " unknown iSCSI Opcode: 0x%02x\n", cmd->iscsi_opcode); iscsit_execute_cmd() 1070 struct iscsi_cmd *cmd, iscsit_handle_ooo_cmdsn() 1076 cmd->deferred_i_state = cmd->i_state; iscsit_handle_ooo_cmdsn() 1077 cmd->i_state = ISTATE_DEFERRED_CMD; iscsit_handle_ooo_cmdsn() 1078 cmd->cmd_flags |= ICF_OOO_CMDSN; iscsit_handle_ooo_cmdsn() 1093 ooo_cmdsn->cmd = cmd; iscsit_handle_ooo_cmdsn() 1096 ooo_cmdsn->cid = cmd->conn->cid; iscsit_handle_ooo_cmdsn() 1109 struct iscsi_cmd *cmd, iscsit_set_dataout_timeout_values() 1113 struct iscsi_conn *conn = cmd->conn; iscsit_set_dataout_timeout_values() 1116 if (cmd->unsolicited_data) { iscsit_set_dataout_timeout_values() 1119 cmd->se_cmd.data_length) ? iscsit_set_dataout_timeout_values() 1120 cmd->se_cmd.data_length : iscsit_set_dataout_timeout_values() 1125 spin_lock_bh(&cmd->r2t_lock); iscsit_set_dataout_timeout_values() 1126 if (list_empty(&cmd->cmd_r2t_list)) { iscsit_set_dataout_timeout_values() 1127 pr_err("cmd->cmd_r2t_list is empty!\n"); iscsit_set_dataout_timeout_values() 1128 spin_unlock_bh(&cmd->r2t_lock); iscsit_set_dataout_timeout_values() 1132 list_for_each_entry(r2t, &cmd->cmd_r2t_list, r2t_list) { iscsit_set_dataout_timeout_values() 1136 spin_unlock_bh(&cmd->r2t_lock); iscsit_set_dataout_timeout_values() 1140 spin_unlock_bh(&cmd->r2t_lock); iscsit_set_dataout_timeout_values() 1143 " sequences for ITT: 0x%08x.\n", cmd->init_task_tag); iscsit_set_dataout_timeout_values() 1155 struct iscsi_cmd *cmd = (struct iscsi_cmd *) data; iscsit_handle_dataout_timeout() local 1156 struct iscsi_conn *conn = cmd->conn; iscsit_handle_dataout_timeout() 1162 spin_lock_bh(&cmd->dataout_timeout_lock); iscsit_handle_dataout_timeout() 1163 if (cmd->dataout_timer_flags & ISCSI_TF_STOP) { iscsit_handle_dataout_timeout() 1164 spin_unlock_bh(&cmd->dataout_timeout_lock); iscsit_handle_dataout_timeout() 1168 cmd->dataout_timer_flags &= ~ISCSI_TF_RUNNING; iscsit_handle_dataout_timeout() 1178 if (++cmd->dataout_timeout_retries == na->dataout_timeout_retries) { iscsit_handle_dataout_timeout() 1181 cmd->init_task_tag, na->dataout_timeout_retries); iscsit_handle_dataout_timeout() 1185 cmd->cmd_flags |= ICF_WITHIN_COMMAND_RECOVERY; iscsit_handle_dataout_timeout() 1189 pdu_offset = cmd->write_data_done; iscsit_handle_dataout_timeout() 1191 cmd->next_burst_len)) > cmd->se_cmd.data_length) iscsit_handle_dataout_timeout() 1192 pdu_length = (cmd->se_cmd.data_length - iscsit_handle_dataout_timeout() 1193 cmd->write_data_done); iscsit_handle_dataout_timeout() 1196 cmd->next_burst_len); iscsit_handle_dataout_timeout() 1198 pdu_offset = cmd->seq_start_offset; iscsit_handle_dataout_timeout() 1199 pdu_length = (cmd->seq_end_offset - iscsit_handle_dataout_timeout() 1200 cmd->seq_start_offset); iscsit_handle_dataout_timeout() 1203 if (iscsit_set_dataout_timeout_values(cmd, &pdu_offset, iscsit_handle_dataout_timeout() 1208 if (iscsit_recalculate_dataout_values(cmd, pdu_offset, pdu_length, iscsit_handle_dataout_timeout() 1214 cmd->init_task_tag, (cmd->unsolicited_data) ? "Unsolicited " : iscsit_handle_dataout_timeout() 1217 if (iscsit_send_recovery_r2t(cmd, r2t_offset, r2t_length) < 0) iscsit_handle_dataout_timeout() 1220 iscsit_start_dataout_timer(cmd, conn); iscsit_handle_dataout_timeout() 1221 spin_unlock_bh(&cmd->dataout_timeout_lock); iscsit_handle_dataout_timeout() 1227 spin_unlock_bh(&cmd->dataout_timeout_lock); iscsit_handle_dataout_timeout() 1232 void iscsit_mod_dataout_timer(struct iscsi_cmd *cmd) iscsit_mod_dataout_timer() argument 1234 struct iscsi_conn *conn = cmd->conn; iscsit_mod_dataout_timer() 1238 spin_lock_bh(&cmd->dataout_timeout_lock); iscsit_mod_dataout_timer() 1239 if (!(cmd->dataout_timer_flags & ISCSI_TF_RUNNING)) { iscsit_mod_dataout_timer() 1240 spin_unlock_bh(&cmd->dataout_timeout_lock); iscsit_mod_dataout_timer() 1244 mod_timer(&cmd->dataout_timer, iscsit_mod_dataout_timer() 1247 cmd->init_task_tag); iscsit_mod_dataout_timer() 1248 spin_unlock_bh(&cmd->dataout_timeout_lock); iscsit_mod_dataout_timer() 1252 * Called with cmd->dataout_timeout_lock held. 1255 struct iscsi_cmd *cmd, iscsit_start_dataout_timer() 1261 if (cmd->dataout_timer_flags & ISCSI_TF_RUNNING) iscsit_start_dataout_timer() 1265 " CID: %hu.\n", cmd->init_task_tag, conn->cid); iscsit_start_dataout_timer() 1267 init_timer(&cmd->dataout_timer); iscsit_start_dataout_timer() 1268 cmd->dataout_timer.expires = (get_jiffies_64() + na->dataout_timeout * HZ); iscsit_start_dataout_timer() 1269 cmd->dataout_timer.data = (unsigned long)cmd; iscsit_start_dataout_timer() 1270 cmd->dataout_timer.function = iscsit_handle_dataout_timeout; iscsit_start_dataout_timer() 1271 cmd->dataout_timer_flags &= ~ISCSI_TF_STOP; iscsit_start_dataout_timer() 1272 cmd->dataout_timer_flags |= ISCSI_TF_RUNNING; iscsit_start_dataout_timer() 1273 add_timer(&cmd->dataout_timer); iscsit_start_dataout_timer() 1276 void iscsit_stop_dataout_timer(struct iscsi_cmd *cmd) iscsit_stop_dataout_timer() argument 1278 spin_lock_bh(&cmd->dataout_timeout_lock); iscsit_stop_dataout_timer() 1279 if (!(cmd->dataout_timer_flags & ISCSI_TF_RUNNING)) { iscsit_stop_dataout_timer() 1280 spin_unlock_bh(&cmd->dataout_timeout_lock); iscsit_stop_dataout_timer() 1283 cmd->dataout_timer_flags |= ISCSI_TF_STOP; iscsit_stop_dataout_timer() 1284 spin_unlock_bh(&cmd->dataout_timeout_lock); iscsit_stop_dataout_timer() 1286 del_timer_sync(&cmd->dataout_timer); iscsit_stop_dataout_timer() 1288 spin_lock_bh(&cmd->dataout_timeout_lock); iscsit_stop_dataout_timer() 1289 cmd->dataout_timer_flags &= ~ISCSI_TF_RUNNING; iscsit_stop_dataout_timer() 1291 cmd->init_task_tag); iscsit_stop_dataout_timer() 1292 spin_unlock_bh(&cmd->dataout_timeout_lock); iscsit_stop_dataout_timer() 120 iscsit_send_recovery_r2t_for_snack( struct iscsi_cmd *cmd, struct iscsi_r2t *r2t) iscsit_send_recovery_r2t_for_snack() argument 142 iscsit_handle_r2t_snack( struct iscsi_cmd *cmd, unsigned char *buf, u32 begrun, u32 runlength) iscsit_handle_r2t_snack() argument 201 iscsit_create_recovery_datain_values_datasequenceinorder_yes( struct iscsi_cmd *cmd, struct iscsi_datain_req *dr) iscsit_create_recovery_datain_values_datasequenceinorder_yes() argument 247 iscsit_create_recovery_datain_values_datasequenceinorder_no( struct iscsi_cmd *cmd, struct iscsi_datain_req *dr) iscsit_create_recovery_datain_values_datasequenceinorder_no() argument 405 iscsit_handle_recovery_datain( struct iscsi_cmd *cmd, unsigned char *buf, u32 begrun, u32 runlength) iscsit_handle_recovery_datain() argument 599 iscsit_send_recovery_r2t( struct iscsi_cmd *cmd, u32 offset, u32 xfer_len) iscsit_send_recovery_r2t() argument 613 iscsit_dataout_datapduinorder_no_fbit( struct iscsi_cmd *cmd, struct iscsi_pdu *pdu) iscsit_dataout_datapduinorder_no_fbit() argument 689 iscsit_recalculate_dataout_values( struct iscsi_cmd *cmd, u32 pdu_offset, u32 pdu_length, u32 *r2t_offset, u32 *r2t_length) iscsit_recalculate_dataout_values() argument 766 iscsit_recover_dataout_sequence( struct iscsi_cmd *cmd, u32 pdu_offset, u32 pdu_length) iscsit_recover_dataout_sequence() argument 1068 iscsit_handle_ooo_cmdsn( struct iscsi_session *sess, struct iscsi_cmd *cmd, u32 cmdsn) iscsit_handle_ooo_cmdsn() argument 1108 iscsit_set_dataout_timeout_values( struct iscsi_cmd *cmd, u32 *offset, u32 *length) iscsit_set_dataout_timeout_values() argument 1254 iscsit_start_dataout_timer( struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_start_dataout_timer() argument
|
H A D | iscsi_target_tmr.c | 39 struct iscsi_cmd *cmd, iscsit_tmr_abort_task() 43 struct iscsi_conn *conn = cmd->conn; iscsit_tmr_abort_task() 44 struct iscsi_tmr_req *tmr_req = cmd->tmr_req; iscsit_tmr_abort_task() 45 struct se_tmr_req *se_tmr = cmd->se_cmd.se_tmr_req; iscsit_tmr_abort_task() 114 struct iscsi_cmd *cmd, iscsit_tmr_task_reassign() 118 struct iscsi_conn *conn = cmd->conn; iscsit_tmr_task_reassign() 120 struct iscsi_tmr_req *tmr_req = cmd->tmr_req; iscsit_tmr_task_reassign() 121 struct se_tmr_req *se_tmr = cmd->se_cmd.se_tmr_req; iscsit_tmr_task_reassign() 186 struct iscsi_cmd *cmd, iscsit_task_reassign_remove_cmd() 193 ret = iscsit_remove_cmd_from_connection_recovery(cmd, sess); iscsit_task_reassign_remove_cmd() 206 struct iscsi_cmd *cmd = tmr_req->ref_cmd; iscsit_task_reassign_complete_nop_out() local 209 if (!cmd->cr) { iscsit_task_reassign_complete_nop_out() 211 " is NULL!\n", cmd->init_task_tag); iscsit_task_reassign_complete_nop_out() 214 cr = cmd->cr; iscsit_task_reassign_complete_nop_out() 221 cmd->stat_sn = cmd->exp_stat_sn = 0; iscsit_task_reassign_complete_nop_out() 223 iscsit_task_reassign_remove_cmd(cmd, cr, conn->sess); iscsit_task_reassign_complete_nop_out() 226 list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); iscsit_task_reassign_complete_nop_out() 229 cmd->i_state = ISTATE_SEND_NOPIN; iscsit_task_reassign_complete_nop_out() 230 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_task_reassign_complete_nop_out() 235 struct iscsi_cmd *cmd, iscsit_task_reassign_complete_write() 240 struct iscsi_conn *conn = cmd->conn; iscsit_task_reassign_complete_write() 241 struct se_cmd *se_cmd = &cmd->se_cmd; iscsit_task_reassign_complete_write() 247 cmd->cmd_flags &= ~ICF_GOT_DATACK_SNACK; iscsit_task_reassign_complete_write() 248 cmd->acked_data_sn = 0; iscsit_task_reassign_complete_write() 250 cmd->cmd_flags |= ICF_GOT_DATACK_SNACK; iscsit_task_reassign_complete_write() 251 cmd->acked_data_sn = (tmr_req->exp_data_sn - 1); iscsit_task_reassign_complete_write() 259 if (cmd->cmd_flags & ICF_GOT_LAST_DATAOUT) { iscsit_task_reassign_complete_write() 260 if (!(cmd->se_cmd.transport_state & CMD_T_SENT)) { iscsit_task_reassign_complete_write() 263 cmd->init_task_tag, cmd->se_cmd.t_state); iscsit_task_reassign_complete_write() 268 cmd->i_state = ISTATE_SEND_STATUS; iscsit_task_reassign_complete_write() 269 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_task_reassign_complete_write() 277 if (cmd->unsolicited_data) { iscsit_task_reassign_complete_write() 278 cmd->unsolicited_data = 0; iscsit_task_reassign_complete_write() 280 offset = cmd->next_burst_len = cmd->write_data_done; iscsit_task_reassign_complete_write() 283 cmd->se_cmd.data_length) { iscsit_task_reassign_complete_write() 285 length = (cmd->se_cmd.data_length - offset); iscsit_task_reassign_complete_write() 289 spin_lock_bh(&cmd->r2t_lock); iscsit_task_reassign_complete_write() 290 if (iscsit_add_r2t_to_list(cmd, offset, length, 0, 0) < 0) { iscsit_task_reassign_complete_write() 291 spin_unlock_bh(&cmd->r2t_lock); iscsit_task_reassign_complete_write() 294 cmd->outstanding_r2ts++; iscsit_task_reassign_complete_write() 295 spin_unlock_bh(&cmd->r2t_lock); iscsit_task_reassign_complete_write() 303 return conn->conn_transport->iscsit_get_dataout(conn, cmd, true); iscsit_task_reassign_complete_write() 307 struct iscsi_cmd *cmd, iscsit_task_reassign_complete_read() 310 struct iscsi_conn *conn = cmd->conn; iscsit_task_reassign_complete_read() 312 struct se_cmd *se_cmd = &cmd->se_cmd; iscsit_task_reassign_complete_read() 318 cmd->cmd_flags &= ~ICF_GOT_DATACK_SNACK; iscsit_task_reassign_complete_read() 319 cmd->acked_data_sn = 0; iscsit_task_reassign_complete_read() 321 cmd->cmd_flags |= ICF_GOT_DATACK_SNACK; iscsit_task_reassign_complete_read() 322 cmd->acked_data_sn = (tmr_req->exp_data_sn - 1); iscsit_task_reassign_complete_read() 325 if (!(cmd->se_cmd.transport_state & CMD_T_SENT)) { iscsit_task_reassign_complete_read() 327 " transport\n", cmd->init_task_tag, iscsit_task_reassign_complete_read() 328 cmd->se_cmd.t_state); iscsit_task_reassign_complete_read() 335 " from transport\n", cmd->init_task_tag, iscsit_task_reassign_complete_read() 336 cmd->se_cmd.t_state); iscsit_task_reassign_complete_read() 352 iscsit_attach_datain_req(cmd, dr); iscsit_task_reassign_complete_read() 354 cmd->i_state = ISTATE_SEND_DATAIN; iscsit_task_reassign_complete_read() 355 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_task_reassign_complete_read() 360 struct iscsi_cmd *cmd, iscsit_task_reassign_complete_none() 363 struct iscsi_conn *conn = cmd->conn; iscsit_task_reassign_complete_none() 365 cmd->i_state = ISTATE_SEND_STATUS; iscsit_task_reassign_complete_none() 366 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_task_reassign_complete_none() 374 struct iscsi_cmd *cmd = tmr_req->ref_cmd; iscsit_task_reassign_complete_scsi_cmnd() local 377 if (!cmd->cr) { iscsit_task_reassign_complete_scsi_cmnd() 379 " is NULL!\n", cmd->init_task_tag); iscsit_task_reassign_complete_scsi_cmnd() 382 cr = cmd->cr; iscsit_task_reassign_complete_scsi_cmnd() 389 cmd->stat_sn = cmd->exp_stat_sn = 0; iscsit_task_reassign_complete_scsi_cmnd() 391 iscsit_task_reassign_remove_cmd(cmd, cr, conn->sess); iscsit_task_reassign_complete_scsi_cmnd() 394 list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); iscsit_task_reassign_complete_scsi_cmnd() 397 if (cmd->se_cmd.se_cmd_flags & SCF_SENT_CHECK_CONDITION) { iscsit_task_reassign_complete_scsi_cmnd() 398 cmd->i_state = ISTATE_SEND_STATUS; iscsit_task_reassign_complete_scsi_cmnd() 399 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_task_reassign_complete_scsi_cmnd() 403 switch (cmd->data_direction) { iscsit_task_reassign_complete_scsi_cmnd() 405 return iscsit_task_reassign_complete_write(cmd, tmr_req); iscsit_task_reassign_complete_scsi_cmnd() 407 return iscsit_task_reassign_complete_read(cmd, tmr_req); iscsit_task_reassign_complete_scsi_cmnd() 409 return iscsit_task_reassign_complete_none(cmd, tmr_req); iscsit_task_reassign_complete_scsi_cmnd() 411 pr_err("Unknown cmd->data_direction: 0x%02x\n", iscsit_task_reassign_complete_scsi_cmnd() 412 cmd->data_direction); iscsit_task_reassign_complete_scsi_cmnd() 423 struct iscsi_cmd *cmd; iscsit_task_reassign_complete() local 430 cmd = tmr_req->ref_cmd; iscsit_task_reassign_complete() 432 cmd->conn = conn; iscsit_task_reassign_complete() 434 switch (cmd->iscsi_opcode) { iscsit_task_reassign_complete() 443 " command realligence\n", cmd->iscsi_opcode); iscsit_task_reassign_complete() 451 " ITT: 0x%08x to CID: %hu.\n", cmd->iscsi_opcode, iscsit_task_reassign_complete() 452 cmd->init_task_tag, conn->cid); iscsit_task_reassign_complete() 462 int iscsit_tmr_post_handler(struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_tmr_post_handler() argument 464 struct iscsi_tmr_req *tmr_req = cmd->tmr_req; iscsit_tmr_post_handler() 465 struct se_tmr_req *se_tmr = cmd->se_cmd.se_tmr_req; iscsit_tmr_post_handler() 486 struct iscsi_cmd *cmd, iscsit_task_reassign_prepare_unsolicited_dataout() 494 cmd->data_sn = 0; iscsit_task_reassign_prepare_unsolicited_dataout() 496 if (cmd->immediate_data) iscsit_task_reassign_prepare_unsolicited_dataout() 497 cmd->r2t_offset += (cmd->first_burst_len - iscsit_task_reassign_prepare_unsolicited_dataout() 498 cmd->seq_start_offset); iscsit_task_reassign_prepare_unsolicited_dataout() 501 cmd->write_data_done -= (cmd->immediate_data) ? iscsit_task_reassign_prepare_unsolicited_dataout() 502 (cmd->first_burst_len - iscsit_task_reassign_prepare_unsolicited_dataout() 503 cmd->seq_start_offset) : iscsit_task_reassign_prepare_unsolicited_dataout() 504 cmd->first_burst_len; iscsit_task_reassign_prepare_unsolicited_dataout() 505 cmd->first_burst_len = 0; iscsit_task_reassign_prepare_unsolicited_dataout() 509 for (i = 0; i < cmd->pdu_count; i++) { iscsit_task_reassign_prepare_unsolicited_dataout() 510 pdu = &cmd->pdu_list[i]; iscsit_task_reassign_prepare_unsolicited_dataout() 515 if ((pdu->offset >= cmd->seq_start_offset) && iscsit_task_reassign_prepare_unsolicited_dataout() 517 cmd->seq_end_offset)) { iscsit_task_reassign_prepare_unsolicited_dataout() 518 cmd->first_burst_len -= pdu->length; iscsit_task_reassign_prepare_unsolicited_dataout() 519 cmd->write_data_done -= pdu->length; iscsit_task_reassign_prepare_unsolicited_dataout() 524 for (i = 0; i < cmd->seq_count; i++) { iscsit_task_reassign_prepare_unsolicited_dataout() 525 seq = &cmd->seq_list[i]; iscsit_task_reassign_prepare_unsolicited_dataout() 530 cmd->write_data_done -= iscsit_task_reassign_prepare_unsolicited_dataout() 532 cmd->first_burst_len = 0; iscsit_task_reassign_prepare_unsolicited_dataout() 542 pdu = &cmd->pdu_list[j+seq->pdu_start]; iscsit_task_reassign_prepare_unsolicited_dataout() 557 struct iscsi_cmd *cmd = tmr_req->ref_cmd; iscsit_task_reassign_prepare_write() local 566 if (cmd->unsolicited_data) iscsit_task_reassign_prepare_write() 567 iscsit_task_reassign_prepare_unsolicited_dataout(cmd, conn); iscsit_task_reassign_prepare_write() 590 spin_lock_bh(&cmd->r2t_lock); iscsit_task_reassign_prepare_write() 591 if (list_empty(&cmd->cmd_r2t_list)) { iscsit_task_reassign_prepare_write() 592 spin_unlock_bh(&cmd->r2t_lock); iscsit_task_reassign_prepare_write() 596 list_for_each_entry(r2t, &cmd->cmd_r2t_list, r2t_list) { iscsit_task_reassign_prepare_write() 645 cmd->r2t_offset -= r2t->xfer_len; iscsit_task_reassign_prepare_write() 650 cmd->data_sn = 0; iscsit_task_reassign_prepare_write() 651 cmd->r2t_offset -= (r2t->xfer_len - iscsit_task_reassign_prepare_write() 652 cmd->next_burst_len); iscsit_task_reassign_prepare_write() 657 cmd->data_sn = 0; iscsit_task_reassign_prepare_write() 658 cmd->r2t_offset -= r2t->xfer_len; iscsit_task_reassign_prepare_write() 660 for (i = 0; i < cmd->pdu_count; i++) { iscsit_task_reassign_prepare_write() 661 pdu = &cmd->pdu_list[i]; iscsit_task_reassign_prepare_write() 669 cmd->next_burst_len -= pdu->length; iscsit_task_reassign_prepare_write() 670 cmd->write_data_done -= pdu->length; iscsit_task_reassign_prepare_write() 679 seq = iscsit_get_seq_holder(cmd, r2t->offset, iscsit_task_reassign_prepare_write() 682 spin_unlock_bh(&cmd->r2t_lock); iscsit_task_reassign_prepare_write() 686 cmd->write_data_done -= iscsit_task_reassign_prepare_write() 693 cmd->seq_send_order--; iscsit_task_reassign_prepare_write() 699 pdu = &cmd->pdu_list[i+seq->pdu_start]; iscsit_task_reassign_prepare_write() 709 cmd->outstanding_r2ts--; iscsit_task_reassign_prepare_write() 711 spin_unlock_bh(&cmd->r2t_lock); iscsit_task_reassign_prepare_write() 725 cmd->cmd_flags &= ~ICF_SENT_LAST_R2T; iscsit_task_reassign_prepare_write() 726 cmd->r2t_sn = tmr_req->exp_data_sn; iscsit_task_reassign_prepare_write() 728 spin_lock_bh(&cmd->r2t_lock); iscsit_task_reassign_prepare_write() 729 list_for_each_entry_safe(r2t, r2t_tmp, &cmd->cmd_r2t_list, r2t_list) { iscsit_task_reassign_prepare_write() 744 spin_unlock_bh(&cmd->r2t_lock); iscsit_task_reassign_prepare_write() 749 iscsit_free_r2t(r2t, cmd); iscsit_task_reassign_prepare_write() 763 * current offset and original offset from cmd->write_data_done iscsit_task_reassign_prepare_write() 770 cmd->r2t_offset -= r2t->xfer_len; iscsit_task_reassign_prepare_write() 772 cmd->seq_send_order--; iscsit_task_reassign_prepare_write() 774 cmd->outstanding_r2ts--; iscsit_task_reassign_prepare_write() 775 iscsit_free_r2t(r2t, cmd); iscsit_task_reassign_prepare_write() 777 spin_unlock_bh(&cmd->r2t_lock); iscsit_task_reassign_prepare_write() 38 iscsit_tmr_abort_task( struct iscsi_cmd *cmd, unsigned char *buf) iscsit_tmr_abort_task() argument 113 iscsit_tmr_task_reassign( struct iscsi_cmd *cmd, unsigned char *buf) iscsit_tmr_task_reassign() argument 185 iscsit_task_reassign_remove_cmd( struct iscsi_cmd *cmd, struct iscsi_conn_recovery *cr, struct iscsi_session *sess) iscsit_task_reassign_remove_cmd() argument 234 iscsit_task_reassign_complete_write( struct iscsi_cmd *cmd, struct iscsi_tmr_req *tmr_req) iscsit_task_reassign_complete_write() argument 306 iscsit_task_reassign_complete_read( struct iscsi_cmd *cmd, struct iscsi_tmr_req *tmr_req) iscsit_task_reassign_complete_read() argument 359 iscsit_task_reassign_complete_none( struct iscsi_cmd *cmd, struct iscsi_tmr_req *tmr_req) iscsit_task_reassign_complete_none() argument 485 iscsit_task_reassign_prepare_unsolicited_dataout( struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_task_reassign_prepare_unsolicited_dataout() argument
|
H A D | iscsi_target_datain_values.c | 43 void iscsit_attach_datain_req(struct iscsi_cmd *cmd, struct iscsi_datain_req *dr) iscsit_attach_datain_req() argument 45 spin_lock(&cmd->datain_lock); iscsit_attach_datain_req() 46 list_add_tail(&dr->cmd_datain_node, &cmd->datain_list); iscsit_attach_datain_req() 47 spin_unlock(&cmd->datain_lock); iscsit_attach_datain_req() 50 void iscsit_free_datain_req(struct iscsi_cmd *cmd, struct iscsi_datain_req *dr) iscsit_free_datain_req() argument 52 spin_lock(&cmd->datain_lock); iscsit_free_datain_req() 54 spin_unlock(&cmd->datain_lock); iscsit_free_datain_req() 59 void iscsit_free_all_datain_reqs(struct iscsi_cmd *cmd) iscsit_free_all_datain_reqs() argument 63 spin_lock(&cmd->datain_lock); iscsit_free_all_datain_reqs() 64 list_for_each_entry_safe(dr, dr_tmp, &cmd->datain_list, cmd_datain_node) { iscsit_free_all_datain_reqs() 68 spin_unlock(&cmd->datain_lock); iscsit_free_all_datain_reqs() 71 struct iscsi_datain_req *iscsit_get_datain_req(struct iscsi_cmd *cmd) iscsit_get_datain_req() argument 73 if (list_empty(&cmd->datain_list)) { iscsit_get_datain_req() 74 pr_err("cmd->datain_list is empty for ITT:" iscsit_get_datain_req() 75 " 0x%08x\n", cmd->init_task_tag); iscsit_get_datain_req() 79 return list_first_entry(&cmd->datain_list, struct iscsi_datain_req, iscsit_get_datain_req() 87 struct iscsi_cmd *cmd, iscsit_set_datain_values_yes_and_yes() 91 struct iscsi_conn *conn = cmd->conn; iscsit_set_datain_values_yes_and_yes() 94 dr = iscsit_get_datain_req(cmd); iscsit_set_datain_values_yes_and_yes() 100 cmd, dr) < 0) iscsit_set_datain_values_yes_and_yes() 107 cmd->next_burst_len : dr->next_burst_len; iscsit_set_datain_values_yes_and_yes() 109 cmd->read_data_done : dr->read_data_done; iscsit_set_datain_values_yes_and_yes() 111 read_data_left = (cmd->se_cmd.data_length - read_data_done); iscsit_set_datain_values_yes_and_yes() 114 cmd->init_task_tag); iscsit_set_datain_values_yes_and_yes() 144 datain->data_sn = (!dr->recovery) ? cmd->data_sn++ : dr->data_sn++; iscsit_set_datain_values_yes_and_yes() 148 cmd->next_burst_len = next_burst_len; iscsit_set_datain_values_yes_and_yes() 149 cmd->read_data_done += datain->length; iscsit_set_datain_values_yes_and_yes() 185 struct iscsi_cmd *cmd, iscsit_set_datain_values_no_and_yes() 189 struct iscsi_conn *conn = cmd->conn; iscsit_set_datain_values_no_and_yes() 193 dr = iscsit_get_datain_req(cmd); iscsit_set_datain_values_no_and_yes() 199 cmd, dr) < 0) iscsit_set_datain_values_no_and_yes() 206 cmd->read_data_done : dr->read_data_done; iscsit_set_datain_values_no_and_yes() 208 cmd->seq_send_order : dr->seq_send_order; iscsit_set_datain_values_no_and_yes() 210 read_data_left = (cmd->se_cmd.data_length - read_data_done); iscsit_set_datain_values_no_and_yes() 213 cmd->init_task_tag); iscsit_set_datain_values_no_and_yes() 217 seq = iscsit_get_seq_holder_for_datain(cmd, seq_send_order); iscsit_set_datain_values_no_and_yes() 224 seq->first_datasn = cmd->data_sn; iscsit_set_datain_values_no_and_yes() 229 cmd->se_cmd.data_length) { iscsit_set_datain_values_no_and_yes() 230 datain->length = (cmd->se_cmd.data_length - offset); iscsit_set_datain_values_no_and_yes() 262 if ((read_data_done + datain->length) == cmd->se_cmd.data_length) iscsit_set_datain_values_no_and_yes() 265 datain->data_sn = (!dr->recovery) ? cmd->data_sn++ : dr->data_sn++; iscsit_set_datain_values_no_and_yes() 267 cmd->seq_send_order = seq_send_order; iscsit_set_datain_values_no_and_yes() 268 cmd->read_data_done += datain->length; iscsit_set_datain_values_no_and_yes() 306 struct iscsi_cmd *cmd, iscsit_set_datain_values_yes_and_no() 310 struct iscsi_conn *conn = cmd->conn; iscsit_set_datain_values_yes_and_no() 314 dr = iscsit_get_datain_req(cmd); iscsit_set_datain_values_yes_and_no() 320 cmd, dr) < 0) iscsit_set_datain_values_yes_and_no() 327 cmd->next_burst_len : dr->next_burst_len; iscsit_set_datain_values_yes_and_no() 329 cmd->read_data_done : dr->read_data_done; iscsit_set_datain_values_yes_and_no() 331 read_data_left = (cmd->se_cmd.data_length - read_data_done); iscsit_set_datain_values_yes_and_no() 334 cmd->init_task_tag); iscsit_set_datain_values_yes_and_no() 338 pdu = iscsit_get_pdu_holder_for_seq(cmd, NULL); iscsit_set_datain_values_yes_and_no() 342 if ((read_data_done + pdu->length) == cmd->se_cmd.data_length) { iscsit_set_datain_values_yes_and_no() 361 pdu->data_sn = (!dr->recovery) ? cmd->data_sn++ : dr->data_sn++; iscsit_set_datain_values_yes_and_no() 363 cmd->next_burst_len = next_burst_len; iscsit_set_datain_values_yes_and_no() 364 cmd->read_data_done += pdu->length; iscsit_set_datain_values_yes_and_no() 405 struct iscsi_cmd *cmd, iscsit_set_datain_values_no_and_no() 409 struct iscsi_conn *conn = cmd->conn; iscsit_set_datain_values_no_and_no() 414 dr = iscsit_get_datain_req(cmd); iscsit_set_datain_values_no_and_no() 420 cmd, dr) < 0) iscsit_set_datain_values_no_and_no() 427 cmd->read_data_done : dr->read_data_done; iscsit_set_datain_values_no_and_no() 429 cmd->seq_send_order : dr->seq_send_order; iscsit_set_datain_values_no_and_no() 431 read_data_left = (cmd->se_cmd.data_length - read_data_done); iscsit_set_datain_values_no_and_no() 434 cmd->init_task_tag); iscsit_set_datain_values_no_and_no() 438 seq = iscsit_get_seq_holder_for_datain(cmd, seq_send_order); iscsit_set_datain_values_no_and_no() 445 seq->first_datasn = cmd->data_sn; iscsit_set_datain_values_no_and_no() 447 pdu = iscsit_get_pdu_holder_for_seq(cmd, seq); iscsit_set_datain_values_no_and_no() 461 if ((read_data_done + pdu->length) == cmd->se_cmd.data_length) iscsit_set_datain_values_no_and_no() 464 pdu->data_sn = (!dr->recovery) ? cmd->data_sn++ : dr->data_sn++; iscsit_set_datain_values_no_and_no() 466 cmd->seq_send_order = seq_send_order; iscsit_set_datain_values_no_and_no() 467 cmd->read_data_done += pdu->length; iscsit_set_datain_values_no_and_no() 507 struct iscsi_cmd *cmd, iscsit_get_datain_values() 510 struct iscsi_conn *conn = cmd->conn; iscsit_get_datain_values() 514 return iscsit_set_datain_values_yes_and_yes(cmd, datain); iscsit_get_datain_values() 517 return iscsit_set_datain_values_no_and_yes(cmd, datain); iscsit_get_datain_values() 520 return iscsit_set_datain_values_yes_and_no(cmd, datain); iscsit_get_datain_values() 523 return iscsit_set_datain_values_no_and_no(cmd, datain); iscsit_get_datain_values() 86 iscsit_set_datain_values_yes_and_yes( struct iscsi_cmd *cmd, struct iscsi_datain *datain) iscsit_set_datain_values_yes_and_yes() argument 184 iscsit_set_datain_values_no_and_yes( struct iscsi_cmd *cmd, struct iscsi_datain *datain) iscsit_set_datain_values_no_and_yes() argument 305 iscsit_set_datain_values_yes_and_no( struct iscsi_cmd *cmd, struct iscsi_datain *datain) iscsit_set_datain_values_yes_and_no() argument 404 iscsit_set_datain_values_no_and_no( struct iscsi_cmd *cmd, struct iscsi_datain *datain) iscsit_set_datain_values_no_and_no() argument 506 iscsit_get_datain_values( struct iscsi_cmd *cmd, struct iscsi_datain *datain) iscsit_get_datain_values() argument
|
H A D | iscsi_target_erl2.c | 36 struct iscsi_cmd *cmd, iscsit_create_conn_recovery_datain_values() 40 struct iscsi_conn *conn = cmd->conn; iscsit_create_conn_recovery_datain_values() 42 cmd->next_burst_len = 0; iscsit_create_conn_recovery_datain_values() 43 cmd->read_data_done = 0; iscsit_create_conn_recovery_datain_values() 46 if ((cmd->next_burst_len + iscsit_create_conn_recovery_datain_values() 49 cmd->read_data_done += iscsit_create_conn_recovery_datain_values() 51 cmd->next_burst_len += iscsit_create_conn_recovery_datain_values() 54 cmd->read_data_done += iscsit_create_conn_recovery_datain_values() 56 cmd->next_burst_len); iscsit_create_conn_recovery_datain_values() 57 cmd->next_burst_len = 0; iscsit_create_conn_recovery_datain_values() 64 struct iscsi_cmd *cmd) iscsit_create_conn_recovery_dataout_values() 67 struct iscsi_conn *conn = cmd->conn; iscsit_create_conn_recovery_dataout_values() 69 cmd->data_sn = 0; iscsit_create_conn_recovery_dataout_values() 70 cmd->next_burst_len = 0; iscsit_create_conn_recovery_dataout_values() 72 while (cmd->write_data_done > write_data_done) { iscsit_create_conn_recovery_dataout_values() 74 cmd->write_data_done) iscsit_create_conn_recovery_dataout_values() 80 cmd->write_data_done = write_data_done; iscsit_create_conn_recovery_dataout_values() 129 struct iscsi_cmd *cmd, *cmd_tmp; iscsit_free_connection_recovery_entires() local 138 list_for_each_entry_safe(cmd, cmd_tmp, iscsit_free_connection_recovery_entires() 141 list_del_init(&cmd->i_conn_node); iscsit_free_connection_recovery_entires() 142 cmd->conn = NULL; iscsit_free_connection_recovery_entires() 144 iscsit_free_cmd(cmd, true); iscsit_free_connection_recovery_entires() 160 list_for_each_entry_safe(cmd, cmd_tmp, iscsit_free_connection_recovery_entires() 163 list_del_init(&cmd->i_conn_node); iscsit_free_connection_recovery_entires() 164 cmd->conn = NULL; iscsit_free_connection_recovery_entires() 166 iscsit_free_cmd(cmd, true); iscsit_free_connection_recovery_entires() 207 struct iscsi_cmd *cmd, iscsit_remove_cmd_from_connection_recovery() 212 if (!cmd->cr) { iscsit_remove_cmd_from_connection_recovery() 214 " is NULL!\n", cmd->init_task_tag); iscsit_remove_cmd_from_connection_recovery() 217 cr = cmd->cr; iscsit_remove_cmd_from_connection_recovery() 219 list_del_init(&cmd->i_conn_node); iscsit_remove_cmd_from_connection_recovery() 228 struct iscsi_cmd *cmd, *cmd_tmp; iscsit_discard_cr_cmds_by_expstatsn() local 232 list_for_each_entry_safe(cmd, cmd_tmp, iscsit_discard_cr_cmds_by_expstatsn() 235 if (((cmd->deferred_i_state != ISTATE_SENT_STATUS) && iscsit_discard_cr_cmds_by_expstatsn() 236 (cmd->deferred_i_state != ISTATE_REMOVE)) || iscsit_discard_cr_cmds_by_expstatsn() 237 (cmd->stat_sn >= exp_statsn)) { iscsit_discard_cr_cmds_by_expstatsn() 243 " 0x%08x, CID: %hu.\n", cmd->init_task_tag, iscsit_discard_cr_cmds_by_expstatsn() 244 cmd->stat_sn, cr->cid); iscsit_discard_cr_cmds_by_expstatsn() 246 iscsit_remove_cmd_from_connection_recovery(cmd, sess); iscsit_discard_cr_cmds_by_expstatsn() 249 iscsit_free_cmd(cmd, true); iscsit_discard_cr_cmds_by_expstatsn() 276 struct iscsi_cmd *cmd, *cmd_tmp; iscsit_discard_unacknowledged_ooo_cmdsns_for_conn() local 296 list_for_each_entry_safe(cmd, cmd_tmp, &conn->conn_cmd_list, i_conn_node) { iscsit_discard_unacknowledged_ooo_cmdsns_for_conn() 297 if (!(cmd->cmd_flags & ICF_OOO_CMDSN)) iscsit_discard_unacknowledged_ooo_cmdsns_for_conn() 300 list_del_init(&cmd->i_conn_node); iscsit_discard_unacknowledged_ooo_cmdsns_for_conn() 303 iscsit_free_cmd(cmd, true); iscsit_discard_unacknowledged_ooo_cmdsns_for_conn() 317 struct iscsi_cmd *cmd, *cmd_tmp; iscsit_prepare_cmds_for_realligance() local 338 * list_del_init(&cmd->i_conn_node); to release the command to the iscsit_prepare_cmds_for_realligance() 345 list_for_each_entry_safe(cmd, cmd_tmp, &conn->conn_cmd_list, i_conn_node) { iscsit_prepare_cmds_for_realligance() 347 if ((cmd->iscsi_opcode != ISCSI_OP_SCSI_CMD) && iscsit_prepare_cmds_for_realligance() 348 (cmd->iscsi_opcode != ISCSI_OP_NOOP_OUT)) { iscsit_prepare_cmds_for_realligance() 351 " CID: %hu\n", cmd->iscsi_opcode, iscsit_prepare_cmds_for_realligance() 352 cmd->init_task_tag, cmd->cmd_sn, conn->cid); iscsit_prepare_cmds_for_realligance() 354 list_del_init(&cmd->i_conn_node); iscsit_prepare_cmds_for_realligance() 356 iscsit_free_cmd(cmd, true); iscsit_prepare_cmds_for_realligance() 372 if (!(cmd->cmd_flags & ICF_OOO_CMDSN) && !cmd->immediate_cmd && iscsit_prepare_cmds_for_realligance() 373 iscsi_sna_gte(cmd->cmd_sn, conn->sess->exp_cmd_sn)) { iscsit_prepare_cmds_for_realligance() 374 list_del_init(&cmd->i_conn_node); iscsit_prepare_cmds_for_realligance() 376 iscsit_free_cmd(cmd, true); iscsit_prepare_cmds_for_realligance() 384 " realligence.\n", cmd->iscsi_opcode, iscsit_prepare_cmds_for_realligance() 385 cmd->init_task_tag, cmd->cmd_sn, cmd->stat_sn, iscsit_prepare_cmds_for_realligance() 388 cmd->deferred_i_state = cmd->i_state; iscsit_prepare_cmds_for_realligance() 389 cmd->i_state = ISTATE_IN_CONNECTION_RECOVERY; iscsit_prepare_cmds_for_realligance() 391 if (cmd->data_direction == DMA_TO_DEVICE) iscsit_prepare_cmds_for_realligance() 392 iscsit_stop_dataout_timer(cmd); iscsit_prepare_cmds_for_realligance() 394 cmd->sess = conn->sess; iscsit_prepare_cmds_for_realligance() 396 list_del_init(&cmd->i_conn_node); iscsit_prepare_cmds_for_realligance() 399 iscsit_free_all_datain_reqs(cmd); iscsit_prepare_cmds_for_realligance() 401 transport_wait_for_tasks(&cmd->se_cmd); iscsit_prepare_cmds_for_realligance() 403 * Add the struct iscsi_cmd to the connection recovery cmd list iscsit_prepare_cmds_for_realligance() 406 list_add_tail(&cmd->i_conn_node, &cr->conn_recovery_cmd_list); iscsit_prepare_cmds_for_realligance() 410 cmd->cr = cr; iscsit_prepare_cmds_for_realligance() 411 cmd->conn = NULL; iscsit_prepare_cmds_for_realligance() 35 iscsit_create_conn_recovery_datain_values( struct iscsi_cmd *cmd, __be32 exp_data_sn) iscsit_create_conn_recovery_datain_values() argument 63 iscsit_create_conn_recovery_dataout_values( struct iscsi_cmd *cmd) iscsit_create_conn_recovery_dataout_values() argument 206 iscsit_remove_cmd_from_connection_recovery( struct iscsi_cmd *cmd, struct iscsi_session *sess) iscsit_remove_cmd_from_connection_recovery() argument
|
H A D | iscsi_target_util.c | 60 * Called with cmd->r2t_lock held. 63 struct iscsi_cmd *cmd, iscsit_add_r2t_to_list() 79 r2t->r2t_sn = (!r2t_sn) ? cmd->r2t_sn++ : r2t_sn; iscsit_add_r2t_to_list() 82 list_add_tail(&r2t->r2t_list, &cmd->cmd_r2t_list); iscsit_add_r2t_to_list() 83 spin_unlock_bh(&cmd->r2t_lock); iscsit_add_r2t_to_list() 85 iscsit_add_cmd_to_immediate_queue(cmd, cmd->conn, ISTATE_SEND_R2T); iscsit_add_r2t_to_list() 87 spin_lock_bh(&cmd->r2t_lock); iscsit_add_r2t_to_list() 92 struct iscsi_cmd *cmd, iscsit_get_r2t_for_eos() 98 spin_lock_bh(&cmd->r2t_lock); iscsit_get_r2t_for_eos() 99 list_for_each_entry(r2t, &cmd->cmd_r2t_list, r2t_list) { iscsit_get_r2t_for_eos() 102 spin_unlock_bh(&cmd->r2t_lock); iscsit_get_r2t_for_eos() 106 spin_unlock_bh(&cmd->r2t_lock); iscsit_get_r2t_for_eos() 113 struct iscsi_r2t *iscsit_get_r2t_from_list(struct iscsi_cmd *cmd) iscsit_get_r2t_from_list() argument 117 spin_lock_bh(&cmd->r2t_lock); iscsit_get_r2t_from_list() 118 list_for_each_entry(r2t, &cmd->cmd_r2t_list, r2t_list) { iscsit_get_r2t_from_list() 120 spin_unlock_bh(&cmd->r2t_lock); iscsit_get_r2t_from_list() 124 spin_unlock_bh(&cmd->r2t_lock); iscsit_get_r2t_from_list() 127 " 0x%08x.\n", cmd->init_task_tag); iscsit_get_r2t_from_list() 132 * Called with cmd->r2t_lock held. 134 void iscsit_free_r2t(struct iscsi_r2t *r2t, struct iscsi_cmd *cmd) iscsit_free_r2t() argument 140 void iscsit_free_r2ts_from_list(struct iscsi_cmd *cmd) iscsit_free_r2ts_from_list() argument 144 spin_lock_bh(&cmd->r2t_lock); iscsit_free_r2ts_from_list() 145 list_for_each_entry_safe(r2t, r2t_tmp, &cmd->cmd_r2t_list, r2t_list) iscsit_free_r2ts_from_list() 146 iscsit_free_r2t(r2t, cmd); iscsit_free_r2ts_from_list() 147 spin_unlock_bh(&cmd->r2t_lock); iscsit_free_r2ts_from_list() 156 struct iscsi_cmd *cmd; iscsit_allocate_cmd() local 165 cmd = (struct iscsi_cmd *)(se_sess->sess_cmd_map + (tag * size)); iscsit_allocate_cmd() 166 memset(cmd, 0, size); iscsit_allocate_cmd() 168 cmd->se_cmd.map_tag = tag; iscsit_allocate_cmd() 169 cmd->conn = conn; iscsit_allocate_cmd() 170 INIT_LIST_HEAD(&cmd->i_conn_node); iscsit_allocate_cmd() 171 INIT_LIST_HEAD(&cmd->datain_list); iscsit_allocate_cmd() 172 INIT_LIST_HEAD(&cmd->cmd_r2t_list); iscsit_allocate_cmd() 173 spin_lock_init(&cmd->datain_lock); iscsit_allocate_cmd() 174 spin_lock_init(&cmd->dataout_timeout_lock); iscsit_allocate_cmd() 175 spin_lock_init(&cmd->istate_lock); iscsit_allocate_cmd() 176 spin_lock_init(&cmd->error_lock); iscsit_allocate_cmd() 177 spin_lock_init(&cmd->r2t_lock); iscsit_allocate_cmd() 179 return cmd; iscsit_allocate_cmd() 184 struct iscsi_cmd *cmd, iscsit_get_seq_holder_for_datain() 189 for (i = 0; i < cmd->seq_count; i++) iscsit_get_seq_holder_for_datain() 190 if (cmd->seq_list[i].seq_send_order == seq_send_order) iscsit_get_seq_holder_for_datain() 191 return &cmd->seq_list[i]; iscsit_get_seq_holder_for_datain() 196 struct iscsi_seq *iscsit_get_seq_holder_for_r2t(struct iscsi_cmd *cmd) iscsit_get_seq_holder_for_r2t() argument 200 if (!cmd->seq_list) { iscsit_get_seq_holder_for_r2t() 205 for (i = 0; i < cmd->seq_count; i++) { iscsit_get_seq_holder_for_r2t() 206 if (cmd->seq_list[i].type != SEQTYPE_NORMAL) iscsit_get_seq_holder_for_r2t() 208 if (cmd->seq_list[i].seq_send_order == cmd->seq_send_order) { iscsit_get_seq_holder_for_r2t() 209 cmd->seq_send_order++; iscsit_get_seq_holder_for_r2t() 210 return &cmd->seq_list[i]; iscsit_get_seq_holder_for_r2t() 218 struct iscsi_cmd *cmd, iscsit_get_holder_for_r2tsn() 223 spin_lock_bh(&cmd->r2t_lock); iscsit_get_holder_for_r2tsn() 224 list_for_each_entry(r2t, &cmd->cmd_r2t_list, r2t_list) { iscsit_get_holder_for_r2tsn() 226 spin_unlock_bh(&cmd->r2t_lock); iscsit_get_holder_for_r2tsn() 230 spin_unlock_bh(&cmd->r2t_lock); iscsit_get_holder_for_r2tsn() 278 int iscsit_sequence_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_sequence_cmd() argument 290 ret = iscsit_execute_cmd(cmd, 0); iscsit_sequence_cmd() 299 ret = iscsit_handle_ooo_cmdsn(conn->sess, cmd, be32_to_cpu(cmdsn)); iscsit_sequence_cmd() 310 cmd->i_state = ISTATE_REMOVE; iscsit_sequence_cmd() 311 iscsit_add_cmd_to_immediate_queue(cmd, conn, cmd->i_state); iscsit_sequence_cmd() 323 iscsit_reject_cmd(cmd, reason, buf); iscsit_sequence_cmd() 329 int iscsit_check_unsolicited_dataout(struct iscsi_cmd *cmd, unsigned char *buf) iscsit_check_unsolicited_dataout() argument 331 struct iscsi_conn *conn = cmd->conn; iscsit_check_unsolicited_dataout() 332 struct se_cmd *se_cmd = &cmd->se_cmd; iscsit_check_unsolicited_dataout() 344 if ((cmd->first_burst_len + payload_length) > iscsit_check_unsolicited_dataout() 348 (cmd->first_burst_len + payload_length), iscsit_check_unsolicited_dataout() 358 if (((cmd->first_burst_len + payload_length) != cmd->se_cmd.data_length) && iscsit_check_unsolicited_dataout() 359 ((cmd->first_burst_len + payload_length) != iscsit_check_unsolicited_dataout() 364 (cmd->first_burst_len + payload_length), iscsit_check_unsolicited_dataout() 365 conn->sess->sess_ops->FirstBurstLength, cmd->se_cmd.data_length); iscsit_check_unsolicited_dataout() 377 struct iscsi_cmd *cmd; iscsit_find_cmd_from_itt() local 380 list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) { iscsit_find_cmd_from_itt() 381 if (cmd->init_task_tag == init_task_tag) { iscsit_find_cmd_from_itt() 383 return cmd; iscsit_find_cmd_from_itt() 399 struct iscsi_cmd *cmd; iscsit_find_cmd_from_itt_or_dump() local 402 list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) { iscsit_find_cmd_from_itt_or_dump() 403 if (cmd->cmd_flags & ICF_GOT_LAST_DATAOUT) iscsit_find_cmd_from_itt_or_dump() 405 if (cmd->init_task_tag == init_task_tag) { iscsit_find_cmd_from_itt_or_dump() 407 return cmd; iscsit_find_cmd_from_itt_or_dump() 424 struct iscsi_cmd *cmd = NULL; iscsit_find_cmd_from_ttt() local 427 list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) { iscsit_find_cmd_from_ttt() 428 if (cmd->targ_xfer_tag == targ_xfer_tag) { iscsit_find_cmd_from_ttt() 430 return cmd; iscsit_find_cmd_from_ttt() 446 struct iscsi_cmd *cmd = NULL; iscsit_find_cmd_for_recovery() local 455 list_for_each_entry(cmd, &cr->conn_recovery_cmd_list, i_conn_node) { iscsit_find_cmd_for_recovery() 456 if (cmd->init_task_tag == init_task_tag) { iscsit_find_cmd_for_recovery() 461 *cmd_ptr = cmd; iscsit_find_cmd_for_recovery() 475 list_for_each_entry(cmd, &cr->conn_recovery_cmd_list, i_conn_node) { iscsit_find_cmd_for_recovery() 476 if (cmd->init_task_tag == init_task_tag) { iscsit_find_cmd_for_recovery() 481 *cmd_ptr = cmd; iscsit_find_cmd_for_recovery() 493 struct iscsi_cmd *cmd, iscsit_add_cmd_to_immediate_queue() 506 qr->cmd = cmd; iscsit_add_cmd_to_immediate_queue() 511 atomic_inc(&cmd->immed_queue_count); iscsit_add_cmd_to_immediate_queue() 531 if (qr->cmd) iscsit_get_cmd_from_immediate_queue() 532 atomic_dec(&qr->cmd->immed_queue_count); iscsit_get_cmd_from_immediate_queue() 539 struct iscsi_cmd *cmd, iscsit_remove_cmd_from_immediate_queue() 545 if (!atomic_read(&cmd->immed_queue_count)) { iscsit_remove_cmd_from_immediate_queue() 551 if (qr->cmd != cmd) iscsit_remove_cmd_from_immediate_queue() 554 atomic_dec(&qr->cmd->immed_queue_count); iscsit_remove_cmd_from_immediate_queue() 560 if (atomic_read(&cmd->immed_queue_count)) { iscsit_remove_cmd_from_immediate_queue() 562 cmd->init_task_tag, iscsit_remove_cmd_from_immediate_queue() 563 atomic_read(&cmd->immed_queue_count)); iscsit_remove_cmd_from_immediate_queue() 568 struct iscsi_cmd *cmd, iscsit_add_cmd_to_response_queue() 581 qr->cmd = cmd; iscsit_add_cmd_to_response_queue() 586 atomic_inc(&cmd->response_queue_count); iscsit_add_cmd_to_response_queue() 606 if (qr->cmd) iscsit_get_cmd_from_response_queue() 607 atomic_dec(&qr->cmd->response_queue_count); iscsit_get_cmd_from_response_queue() 614 struct iscsi_cmd *cmd, iscsit_remove_cmd_from_response_queue() 620 if (!atomic_read(&cmd->response_queue_count)) { iscsit_remove_cmd_from_response_queue() 627 if (qr->cmd != cmd) iscsit_remove_cmd_from_response_queue() 630 atomic_dec(&qr->cmd->response_queue_count); iscsit_remove_cmd_from_response_queue() 636 if (atomic_read(&cmd->response_queue_count)) { iscsit_remove_cmd_from_response_queue() 638 cmd->init_task_tag, iscsit_remove_cmd_from_response_queue() 639 atomic_read(&cmd->response_queue_count)); iscsit_remove_cmd_from_response_queue() 668 if (qr->cmd) iscsit_free_queue_reqs_for_conn() 669 atomic_dec(&qr->cmd->immed_queue_count); iscsit_free_queue_reqs_for_conn() 679 if (qr->cmd) iscsit_free_queue_reqs_for_conn() 680 atomic_dec(&qr->cmd->response_queue_count); iscsit_free_queue_reqs_for_conn() 687 void iscsit_release_cmd(struct iscsi_cmd *cmd) iscsit_release_cmd() argument 690 struct se_cmd *se_cmd = &cmd->se_cmd; iscsit_release_cmd() 692 if (cmd->conn) iscsit_release_cmd() 693 sess = cmd->conn->sess; iscsit_release_cmd() 695 sess = cmd->sess; iscsit_release_cmd() 699 kfree(cmd->buf_ptr); iscsit_release_cmd() 700 kfree(cmd->pdu_list); iscsit_release_cmd() 701 kfree(cmd->seq_list); iscsit_release_cmd() 702 kfree(cmd->tmr_req); iscsit_release_cmd() 703 kfree(cmd->iov_data); iscsit_release_cmd() 704 kfree(cmd->text_in_ptr); iscsit_release_cmd() 710 void __iscsit_free_cmd(struct iscsi_cmd *cmd, bool scsi_cmd, __iscsit_free_cmd() argument 713 struct iscsi_conn *conn = cmd->conn; __iscsit_free_cmd() 716 if (cmd->data_direction == DMA_TO_DEVICE) { __iscsit_free_cmd() 717 iscsit_stop_dataout_timer(cmd); __iscsit_free_cmd() 718 iscsit_free_r2ts_from_list(cmd); __iscsit_free_cmd() 720 if (cmd->data_direction == DMA_FROM_DEVICE) __iscsit_free_cmd() 721 iscsit_free_all_datain_reqs(cmd); __iscsit_free_cmd() 725 iscsit_remove_cmd_from_immediate_queue(cmd, conn); __iscsit_free_cmd() 726 iscsit_remove_cmd_from_response_queue(cmd, conn); __iscsit_free_cmd() 730 void iscsit_free_cmd(struct iscsi_cmd *cmd, bool shutdown) iscsit_free_cmd() argument 738 switch (cmd->iscsi_opcode) { iscsit_free_cmd() 740 se_cmd = &cmd->se_cmd; iscsit_free_cmd() 741 __iscsit_free_cmd(cmd, true, shutdown); iscsit_free_cmd() 746 rc = transport_generic_free_cmd(&cmd->se_cmd, shutdown); iscsit_free_cmd() 748 __iscsit_free_cmd(cmd, true, shutdown); iscsit_free_cmd() 756 * associated cmd->se_cmd needs to be released. iscsit_free_cmd() 758 if (cmd->se_cmd.se_tfo != NULL) { iscsit_free_cmd() 759 se_cmd = &cmd->se_cmd; iscsit_free_cmd() 760 __iscsit_free_cmd(cmd, true, shutdown); iscsit_free_cmd() 762 rc = transport_generic_free_cmd(&cmd->se_cmd, shutdown); iscsit_free_cmd() 764 __iscsit_free_cmd(cmd, true, shutdown); iscsit_free_cmd() 771 __iscsit_free_cmd(cmd, false, shutdown); iscsit_free_cmd() 772 iscsit_release_cmd(cmd); iscsit_free_cmd() 932 struct iscsi_cmd *cmd; iscsit_add_nopin() local 934 cmd = iscsit_allocate_cmd(conn, TASK_RUNNING); iscsit_add_nopin() 935 if (!cmd) iscsit_add_nopin() 938 cmd->iscsi_opcode = ISCSI_OP_NOOP_IN; iscsit_add_nopin() 941 cmd->init_task_tag = RESERVED_ITT; iscsit_add_nopin() 942 cmd->targ_xfer_tag = (want_response) ? iscsit_add_nopin() 945 list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); iscsit_add_nopin() 950 iscsit_add_cmd_to_immediate_queue(cmd, conn, state); iscsit_add_nopin() 1149 struct iscsi_cmd *cmd, iscsit_send_tx_data() 1158 tx_size = cmd->tx_size; iscsit_send_tx_data() 1161 iov = &cmd->iov_data[0]; iscsit_send_tx_data() 1162 iov_count = cmd->iov_data_count; iscsit_send_tx_data() 1164 iov = &cmd->iov_misc[0]; iscsit_send_tx_data() 1165 iov_count = cmd->iov_misc_count; iscsit_send_tx_data() 1176 cmd->tx_size = 0; iscsit_send_tx_data() 1182 struct iscsi_cmd *cmd, iscsit_fe_sendpage_sg() 1185 struct scatterlist *sg = cmd->first_data_sg; iscsit_fe_sendpage_sg() 1188 u32 offset = cmd->first_data_sg_off; iscsit_fe_sendpage_sg() 1196 iov.iov_base = cmd->pdu; iscsit_fe_sendpage_sg() 1208 data_len = cmd->tx_size - tx_hdr_size - cmd->padding; iscsit_fe_sendpage_sg() 1211 * in order to determine proper offset into cmd->iov_data[] iscsit_fe_sendpage_sg() 1215 if (cmd->padding) iscsit_fe_sendpage_sg() 1216 iov_off = (cmd->iov_data_count - 2); iscsit_fe_sendpage_sg() 1218 iov_off = (cmd->iov_data_count - 1); iscsit_fe_sendpage_sg() 1220 iov_off = (cmd->iov_data_count - 1); iscsit_fe_sendpage_sg() 1249 if (cmd->padding) { iscsit_fe_sendpage_sg() 1250 struct kvec *iov_p = &cmd->iov_data[iov_off++]; iscsit_fe_sendpage_sg() 1252 tx_sent = tx_data(conn, iov_p, 1, cmd->padding); iscsit_fe_sendpage_sg() 1253 if (cmd->padding != tx_sent) { iscsit_fe_sendpage_sg() 1264 struct kvec *iov_d = &cmd->iov_data[iov_off]; iscsit_fe_sendpage_sg() 62 iscsit_add_r2t_to_list( struct iscsi_cmd *cmd, u32 offset, u32 xfer_len, int recovery, u32 r2t_sn) iscsit_add_r2t_to_list() argument 91 iscsit_get_r2t_for_eos( struct iscsi_cmd *cmd, u32 offset, u32 length) iscsit_get_r2t_for_eos() argument 183 iscsit_get_seq_holder_for_datain( struct iscsi_cmd *cmd, u32 seq_send_order) iscsit_get_seq_holder_for_datain() argument 217 iscsit_get_holder_for_r2tsn( struct iscsi_cmd *cmd, u32 r2t_sn) iscsit_get_holder_for_r2tsn() argument 492 iscsit_add_cmd_to_immediate_queue( struct iscsi_cmd *cmd, struct iscsi_conn *conn, u8 state) iscsit_add_cmd_to_immediate_queue() argument 538 iscsit_remove_cmd_from_immediate_queue( struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_remove_cmd_from_immediate_queue() argument 567 iscsit_add_cmd_to_response_queue( struct iscsi_cmd *cmd, struct iscsi_conn *conn, u8 state) iscsit_add_cmd_to_response_queue() argument 613 iscsit_remove_cmd_from_response_queue( struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_remove_cmd_from_response_queue() argument 1148 iscsit_send_tx_data( struct iscsi_cmd *cmd, struct iscsi_conn *conn, int use_misc) iscsit_send_tx_data() argument 1181 iscsit_fe_sendpage_sg( struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_fe_sendpage_sg() argument
|
H A D | iscsi_target.c | 492 static int iscsit_queue_rsp(struct iscsi_conn *conn, struct iscsi_cmd *cmd) iscsit_queue_rsp() argument 494 iscsit_add_cmd_to_response_queue(cmd, cmd->conn, cmd->i_state); iscsit_queue_rsp() 498 static void iscsit_aborted_task(struct iscsi_conn *conn, struct iscsi_cmd *cmd) iscsit_aborted_task() argument 500 bool scsi_cmd = (cmd->iscsi_opcode == ISCSI_OP_SCSI_CMD); iscsit_aborted_task() 503 if (!list_empty(&cmd->i_conn_node)) iscsit_aborted_task() 504 list_del_init(&cmd->i_conn_node); iscsit_aborted_task() 507 __iscsit_free_cmd(cmd, scsi_cmd, true); iscsit_aborted_task() 650 struct iscsi_cmd *cmd; iscsit_add_reject() local 652 cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); iscsit_add_reject() 653 if (!cmd) iscsit_add_reject() 656 cmd->iscsi_opcode = ISCSI_OP_REJECT; iscsit_add_reject() 657 cmd->reject_reason = reason; iscsit_add_reject() 659 cmd->buf_ptr = kmemdup(buf, ISCSI_HDR_LEN, GFP_KERNEL); iscsit_add_reject() 660 if (!cmd->buf_ptr) { iscsit_add_reject() 661 pr_err("Unable to allocate memory for cmd->buf_ptr\n"); iscsit_add_reject() 662 iscsit_free_cmd(cmd, false); iscsit_add_reject() 667 list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); iscsit_add_reject() 670 cmd->i_state = ISTATE_SEND_REJECT; iscsit_add_reject() 671 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_add_reject() 677 struct iscsi_cmd *cmd, iscsit_add_reject_from_cmd() 684 if (!cmd->conn) { iscsit_add_reject_from_cmd() 685 pr_err("cmd->conn is NULL for ITT: 0x%08x\n", iscsit_add_reject_from_cmd() 686 cmd->init_task_tag); iscsit_add_reject_from_cmd() 689 conn = cmd->conn; iscsit_add_reject_from_cmd() 691 cmd->iscsi_opcode = ISCSI_OP_REJECT; iscsit_add_reject_from_cmd() 692 cmd->reject_reason = reason; iscsit_add_reject_from_cmd() 694 cmd->buf_ptr = kmemdup(buf, ISCSI_HDR_LEN, GFP_KERNEL); iscsit_add_reject_from_cmd() 695 if (!cmd->buf_ptr) { iscsit_add_reject_from_cmd() 696 pr_err("Unable to allocate memory for cmd->buf_ptr\n"); iscsit_add_reject_from_cmd() 697 iscsit_free_cmd(cmd, false); iscsit_add_reject_from_cmd() 703 list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); iscsit_add_reject_from_cmd() 707 cmd->i_state = ISTATE_SEND_REJECT; iscsit_add_reject_from_cmd() 708 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_add_reject_from_cmd() 713 if (cmd->se_cmd.se_tfo != NULL) { iscsit_add_reject_from_cmd() 715 target_put_sess_cmd(&cmd->se_cmd); iscsit_add_reject_from_cmd() 720 static int iscsit_add_reject_cmd(struct iscsi_cmd *cmd, u8 reason, iscsit_add_reject_cmd() argument 723 return iscsit_add_reject_from_cmd(cmd, reason, true, buf); iscsit_add_reject_cmd() 726 int iscsit_reject_cmd(struct iscsi_cmd *cmd, u8 reason, unsigned char *buf) iscsit_reject_cmd() argument 728 return iscsit_add_reject_from_cmd(cmd, reason, false, buf); iscsit_reject_cmd() 736 struct iscsi_cmd *cmd, iscsit_map_iovec() 748 sg = &cmd->se_cmd.t_data_sg[data_offset / PAGE_SIZE]; iscsit_map_iovec() 751 cmd->first_data_sg = sg; iscsit_map_iovec() 752 cmd->first_data_sg_off = page_off; iscsit_map_iovec() 766 cmd->kmapped_nents = i; iscsit_map_iovec() 771 static void iscsit_unmap_iovec(struct iscsi_cmd *cmd) iscsit_unmap_iovec() argument 776 sg = cmd->first_data_sg; iscsit_unmap_iovec() 778 for (i = 0; i < cmd->kmapped_nents; i++) iscsit_unmap_iovec() 785 struct iscsi_cmd *cmd, *cmd_p; iscsit_ack_from_expstatsn() local 793 list_for_each_entry_safe(cmd, cmd_p, &conn->conn_cmd_list, i_conn_node) { iscsit_ack_from_expstatsn() 794 spin_lock(&cmd->istate_lock); iscsit_ack_from_expstatsn() 795 if ((cmd->i_state == ISTATE_SENT_STATUS) && iscsit_ack_from_expstatsn() 796 iscsi_sna_lt(cmd->stat_sn, exp_statsn)) { iscsit_ack_from_expstatsn() 797 cmd->i_state = ISTATE_REMOVE; iscsit_ack_from_expstatsn() 798 spin_unlock(&cmd->istate_lock); iscsit_ack_from_expstatsn() 799 list_move_tail(&cmd->i_conn_node, &ack_list); iscsit_ack_from_expstatsn() 802 spin_unlock(&cmd->istate_lock); iscsit_ack_from_expstatsn() 806 list_for_each_entry_safe(cmd, cmd_p, &ack_list, i_conn_node) { iscsit_ack_from_expstatsn() 807 list_del_init(&cmd->i_conn_node); iscsit_ack_from_expstatsn() 808 iscsit_free_cmd(cmd, false); iscsit_ack_from_expstatsn() 812 static int iscsit_allocate_iovecs(struct iscsi_cmd *cmd) iscsit_allocate_iovecs() argument 814 u32 iov_count = max(1UL, DIV_ROUND_UP(cmd->se_cmd.data_length, PAGE_SIZE)); iscsit_allocate_iovecs() 818 cmd->iov_data = kzalloc(iov_count * sizeof(struct kvec), GFP_KERNEL); iscsit_allocate_iovecs() 819 if (!cmd->iov_data) { iscsit_allocate_iovecs() 820 pr_err("Unable to allocate cmd->iov_data\n"); iscsit_allocate_iovecs() 824 cmd->orig_iov_data_count = iov_count; iscsit_allocate_iovecs() 828 int iscsit_setup_scsi_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_setup_scsi_cmd() argument 847 return iscsit_add_reject_cmd(cmd, iscsit_setup_scsi_cmd() 876 return iscsit_add_reject_cmd(cmd, iscsit_setup_scsi_cmd() 883 return iscsit_add_reject_cmd(cmd, iscsit_setup_scsi_cmd() 890 return iscsit_add_reject_cmd(cmd, iscsit_setup_scsi_cmd() 897 return iscsit_add_reject_cmd(cmd, iscsit_setup_scsi_cmd() 906 return iscsit_add_reject_cmd(cmd, iscsit_setup_scsi_cmd() 914 return iscsit_add_reject_cmd(cmd, iscsit_setup_scsi_cmd() 922 return iscsit_add_reject_cmd(cmd, iscsit_setup_scsi_cmd() 930 return iscsit_add_reject_cmd(cmd, iscsit_setup_scsi_cmd() 938 cmd->data_direction = data_direction; iscsit_setup_scsi_cmd() 958 cmd->iscsi_opcode = ISCSI_OP_SCSI_CMD; iscsit_setup_scsi_cmd() 959 cmd->i_state = ISTATE_NEW_CMD; iscsit_setup_scsi_cmd() 960 cmd->immediate_cmd = ((hdr->opcode & ISCSI_OP_IMMEDIATE) ? 1 : 0); iscsit_setup_scsi_cmd() 961 cmd->immediate_data = (payload_length) ? 1 : 0; iscsit_setup_scsi_cmd() 962 cmd->unsolicited_data = ((!(hdr->flags & ISCSI_FLAG_CMD_FINAL) && iscsit_setup_scsi_cmd() 964 if (cmd->unsolicited_data) iscsit_setup_scsi_cmd() 965 cmd->cmd_flags |= ICF_NON_IMMEDIATE_UNSOLICITED_DATA; iscsit_setup_scsi_cmd() 967 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; iscsit_setup_scsi_cmd() 969 cmd->targ_xfer_tag = session_get_next_ttt(conn->sess); iscsit_setup_scsi_cmd() 971 cmd->targ_xfer_tag = 0xFFFFFFFF; iscsit_setup_scsi_cmd() 972 cmd->cmd_sn = be32_to_cpu(hdr->cmdsn); iscsit_setup_scsi_cmd() 973 cmd->exp_stat_sn = be32_to_cpu(hdr->exp_statsn); iscsit_setup_scsi_cmd() 974 cmd->first_burst_len = payload_length; iscsit_setup_scsi_cmd() 977 cmd->data_direction == DMA_FROM_DEVICE) { iscsit_setup_scsi_cmd() 982 return iscsit_add_reject_cmd(cmd, iscsit_setup_scsi_cmd() 985 iscsit_attach_datain_req(cmd, dr); iscsit_setup_scsi_cmd() 991 transport_init_se_cmd(&cmd->se_cmd, &iscsi_ops, iscsit_setup_scsi_cmd() 993 cmd->data_direction, sam_task_attr, iscsit_setup_scsi_cmd() 994 cmd->sense_buffer + 2); iscsit_setup_scsi_cmd() 1001 target_get_sess_cmd(&cmd->se_cmd, true); iscsit_setup_scsi_cmd() 1003 cmd->sense_reason = transport_lookup_cmd_lun(&cmd->se_cmd, iscsit_setup_scsi_cmd() 1005 if (cmd->sense_reason) iscsit_setup_scsi_cmd() 1008 cmd->sense_reason = target_setup_cmd_from_cdb(&cmd->se_cmd, hdr->cdb); iscsit_setup_scsi_cmd() 1009 if (cmd->sense_reason) { iscsit_setup_scsi_cmd() 1010 if (cmd->sense_reason == TCM_OUT_OF_RESOURCES) { iscsit_setup_scsi_cmd() 1011 return iscsit_add_reject_cmd(cmd, iscsit_setup_scsi_cmd() 1018 if (iscsit_build_pdu_and_seq_lists(cmd, payload_length) < 0) { iscsit_setup_scsi_cmd() 1019 return iscsit_add_reject_cmd(cmd, iscsit_setup_scsi_cmd() 1025 list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); iscsit_setup_scsi_cmd() 1031 core_alua_check_nonop_delay(&cmd->se_cmd); iscsit_setup_scsi_cmd() 1037 void iscsit_set_unsoliticed_dataout(struct iscsi_cmd *cmd) iscsit_set_unsoliticed_dataout() argument 1039 iscsit_set_dataout_sequence_values(cmd); iscsit_set_unsoliticed_dataout() 1041 spin_lock_bh(&cmd->dataout_timeout_lock); iscsit_set_unsoliticed_dataout() 1042 iscsit_start_dataout_timer(cmd, cmd->conn); iscsit_set_unsoliticed_dataout() 1043 spin_unlock_bh(&cmd->dataout_timeout_lock); iscsit_set_unsoliticed_dataout() 1047 int iscsit_process_scsi_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_process_scsi_cmd() argument 1061 if (!cmd->immediate_data) { iscsit_process_scsi_cmd() 1062 cmdsn_ret = iscsit_sequence_cmd(conn, cmd, iscsit_process_scsi_cmd() 1067 target_put_sess_cmd(&cmd->se_cmd); iscsit_process_scsi_cmd() 1077 if (!cmd->immediate_data) { iscsit_process_scsi_cmd() 1078 if (!cmd->sense_reason && cmd->unsolicited_data) iscsit_process_scsi_cmd() 1079 iscsit_set_unsoliticed_dataout(cmd); iscsit_process_scsi_cmd() 1080 if (!cmd->sense_reason) iscsit_process_scsi_cmd() 1083 target_put_sess_cmd(&cmd->se_cmd); iscsit_process_scsi_cmd() 1092 if (cmd->sense_reason) { iscsit_process_scsi_cmd() 1093 if (cmd->reject_reason) iscsit_process_scsi_cmd() 1102 cmd->sense_reason = transport_generic_new_cmd(&cmd->se_cmd); iscsit_process_scsi_cmd() 1103 if (cmd->sense_reason) iscsit_process_scsi_cmd() 1111 iscsit_get_immediate_data(struct iscsi_cmd *cmd, struct iscsi_scsi_req *hdr, iscsit_get_immediate_data() argument 1121 immed_ret = iscsit_handle_immediate_data(cmd, hdr, iscsit_get_immediate_data() 1122 cmd->first_burst_len); iscsit_get_immediate_data() 1130 cmdsn_ret = iscsit_sequence_cmd(cmd->conn, cmd, iscsit_get_immediate_data() 1135 if (cmd->sense_reason || cmdsn_ret == CMDSN_LOWER_THAN_EXP) { iscsit_get_immediate_data() 1138 rc = iscsit_dump_data_payload(cmd->conn, iscsit_get_immediate_data() 1139 cmd->first_burst_len, 1); iscsit_get_immediate_data() 1140 target_put_sess_cmd(&cmd->se_cmd); iscsit_get_immediate_data() 1142 } else if (cmd->unsolicited_data) iscsit_get_immediate_data() 1143 iscsit_set_unsoliticed_dataout(cmd); iscsit_get_immediate_data() 1157 cmd->i_state = ISTATE_REMOVE; iscsit_get_immediate_data() 1158 iscsit_add_cmd_to_immediate_queue(cmd, cmd->conn, cmd->i_state); iscsit_get_immediate_data() 1166 iscsit_handle_scsi_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_handle_scsi_cmd() argument 1173 rc = iscsit_setup_scsi_cmd(conn, cmd, buf); iscsit_handle_scsi_cmd() 1180 if (iscsit_allocate_iovecs(cmd) < 0) { iscsit_handle_scsi_cmd() 1181 return iscsit_reject_cmd(cmd, iscsit_handle_scsi_cmd() 1184 immed_data = cmd->immediate_data; iscsit_handle_scsi_cmd() 1186 rc = iscsit_process_scsi_cmd(conn, cmd, hdr); iscsit_handle_scsi_cmd() 1195 return iscsit_get_immediate_data(cmd, hdr, dump_payload); iscsit_handle_scsi_cmd() 1200 struct iscsi_cmd *cmd, iscsit_do_crypto_hash_sg() 1213 sg = cmd->first_data_sg; iscsit_do_crypto_hash_sg() 1214 page_off = cmd->first_data_sg_off; iscsit_do_crypto_hash_sg() 1265 struct iscsi_cmd *cmd = NULL; iscsit_check_dataout_hdr() local 1286 cmd = iscsit_find_cmd_from_itt_or_dump(conn, hdr->itt, iscsit_check_dataout_hdr() 1288 if (!cmd) iscsit_check_dataout_hdr() 1296 if (cmd->cmd_flags & ICF_GOT_LAST_DATAOUT) { iscsit_check_dataout_hdr() 1299 cmd->init_task_tag); iscsit_check_dataout_hdr() 1303 if (cmd->data_direction != DMA_TO_DEVICE) { iscsit_check_dataout_hdr() 1305 " NON-WRITE command.\n", cmd->init_task_tag); iscsit_check_dataout_hdr() 1308 se_cmd = &cmd->se_cmd; iscsit_check_dataout_hdr() 1309 iscsit_mod_dataout_timer(cmd); iscsit_check_dataout_hdr() 1311 if ((be32_to_cpu(hdr->offset) + payload_length) > cmd->se_cmd.data_length) { iscsit_check_dataout_hdr() 1314 hdr->offset, payload_length, cmd->se_cmd.data_length); iscsit_check_dataout_hdr() 1315 return iscsit_reject_cmd(cmd, ISCSI_REASON_BOOKMARK_INVALID, buf); iscsit_check_dataout_hdr() 1318 if (cmd->unsolicited_data) { iscsit_check_dataout_hdr() 1324 transport_send_check_condition_and_sense(&cmd->se_cmd, iscsit_check_dataout_hdr() 1346 iscsit_stop_dataout_timer(cmd); iscsit_check_dataout_hdr() 1365 if (--cmd->outstanding_r2ts < 1) { iscsit_check_dataout_hdr() 1366 iscsit_stop_dataout_timer(cmd); iscsit_check_dataout_hdr() 1378 rc = iscsit_check_pre_dataout(cmd, buf); iscsit_check_dataout_hdr() 1384 *out_cmd = cmd; iscsit_check_dataout_hdr() 1390 iscsit_get_dataout(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_get_dataout() argument 1399 iov = &cmd->iov_data[0]; iscsit_get_dataout() 1401 iov_ret = iscsit_map_iovec(cmd, iov, be32_to_cpu(hdr->offset), iscsit_get_dataout() 1410 iov[iov_count].iov_base = cmd->pad_bytes; iscsit_get_dataout() 1422 rx_got = rx_data(conn, &cmd->iov_data[0], iov_count, rx_size); iscsit_get_dataout() 1424 iscsit_unmap_iovec(cmd); iscsit_get_dataout() 1432 data_crc = iscsit_do_crypto_hash_sg(&conn->conn_rx_hash, cmd, iscsit_get_dataout() 1435 cmd->pad_bytes); iscsit_get_dataout() 1455 iscsit_check_dataout_payload(struct iscsi_cmd *cmd, struct iscsi_data *hdr, iscsit_check_dataout_payload() argument 1458 struct iscsi_conn *conn = cmd->conn; iscsit_check_dataout_payload() 1464 rc = iscsit_check_post_dataout(cmd, (unsigned char *)hdr, data_crc_failed); iscsit_check_dataout_payload() 1468 iscsit_set_dataout_sequence_values(cmd); iscsit_check_dataout_payload() 1469 conn->conn_transport->iscsit_get_dataout(conn, cmd, false); iscsit_check_dataout_payload() 1475 spin_lock_bh(&cmd->istate_lock); iscsit_check_dataout_payload() 1476 ooo_cmdsn = (cmd->cmd_flags & ICF_OOO_CMDSN); iscsit_check_dataout_payload() 1477 cmd->cmd_flags |= ICF_GOT_LAST_DATAOUT; iscsit_check_dataout_payload() 1478 cmd->i_state = ISTATE_RECEIVED_LAST_DATAOUT; iscsit_check_dataout_payload() 1479 spin_unlock_bh(&cmd->istate_lock); iscsit_check_dataout_payload() 1481 iscsit_stop_dataout_timer(cmd); iscsit_check_dataout_payload() 1484 target_execute_cmd(&cmd->se_cmd); iscsit_check_dataout_payload() 1495 struct iscsi_cmd *cmd = NULL; iscsit_handle_data_out() local 1500 rc = iscsit_check_dataout_hdr(conn, buf, &cmd); iscsit_handle_data_out() 1503 else if (!cmd) iscsit_handle_data_out() 1506 rc = iscsit_get_dataout(conn, cmd, hdr); iscsit_handle_data_out() 1512 return iscsit_check_dataout_payload(cmd, hdr, data_crc_failed); iscsit_handle_data_out() 1515 int iscsit_setup_nop_out(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_setup_nop_out() argument 1522 if (!cmd) iscsit_setup_nop_out() 1526 return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR, iscsit_setup_nop_out() 1533 if (!cmd) iscsit_setup_nop_out() 1537 return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR, iscsit_setup_nop_out() 1546 if (!cmd) iscsit_setup_nop_out() 1550 return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR, iscsit_setup_nop_out() 1567 cmd->iscsi_opcode = ISCSI_OP_NOOP_OUT; iscsit_setup_nop_out() 1568 cmd->i_state = ISTATE_SEND_NOPIN; iscsit_setup_nop_out() 1569 cmd->immediate_cmd = ((hdr->opcode & ISCSI_OP_IMMEDIATE) ? iscsit_setup_nop_out() 1571 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; iscsit_setup_nop_out() 1572 cmd->targ_xfer_tag = 0xFFFFFFFF; iscsit_setup_nop_out() 1573 cmd->cmd_sn = be32_to_cpu(hdr->cmdsn); iscsit_setup_nop_out() 1574 cmd->exp_stat_sn = be32_to_cpu(hdr->exp_statsn); iscsit_setup_nop_out() 1575 cmd->data_direction = DMA_NONE; iscsit_setup_nop_out() 1582 int iscsit_process_nop_out(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_process_nop_out() argument 1591 if (!cmd) iscsit_process_nop_out() 1596 list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); iscsit_process_nop_out() 1602 iscsit_add_cmd_to_response_queue(cmd, conn, iscsit_process_nop_out() 1603 cmd->i_state); iscsit_process_nop_out() 1607 cmdsn_ret = iscsit_sequence_cmd(conn, cmd, iscsit_process_nop_out() 1640 static int iscsit_handle_nop_out(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_handle_nop_out() argument 1649 ret = iscsit_setup_nop_out(conn, cmd, hdr); iscsit_handle_nop_out() 1667 iov = &cmd->iov_misc[0]; iscsit_handle_nop_out() 1675 iov[niov].iov_base = &cmd->pad_bytes; iscsit_handle_nop_out() 1685 rx_got = rx_data(conn, &cmd->iov_misc[0], niov, rx_size); iscsit_handle_nop_out() 1694 padding, cmd->pad_bytes, iscsit_handle_nop_out() 1729 cmd->buf_ptr = ping_data; iscsit_handle_nop_out() 1730 cmd->buf_ptr_size = payload_length; iscsit_handle_nop_out() 1737 return iscsit_process_nop_out(conn, cmd, hdr); iscsit_handle_nop_out() 1739 if (cmd) iscsit_handle_nop_out() 1740 iscsit_free_cmd(cmd, false); iscsit_handle_nop_out() 1747 iscsit_handle_task_mgt_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_handle_task_mgt_cmd() argument 1778 return iscsit_add_reject_cmd(cmd, iscsit_handle_task_mgt_cmd() 1785 cmd->data_direction = DMA_NONE; iscsit_handle_task_mgt_cmd() 1787 cmd->tmr_req = kzalloc(sizeof(struct iscsi_tmr_req), GFP_KERNEL); iscsit_handle_task_mgt_cmd() 1788 if (!cmd->tmr_req) { iscsit_handle_task_mgt_cmd() 1791 return iscsit_add_reject_cmd(cmd, iscsit_handle_task_mgt_cmd() 1805 transport_init_se_cmd(&cmd->se_cmd, &iscsi_ops, iscsit_handle_task_mgt_cmd() 1807 TCM_SIMPLE_TAG, cmd->sense_buffer + 2); iscsit_handle_task_mgt_cmd() 1809 target_get_sess_cmd(&cmd->se_cmd, true); iscsit_handle_task_mgt_cmd() 1837 return iscsit_add_reject_cmd(cmd, iscsit_handle_task_mgt_cmd() 1841 ret = core_tmr_alloc_req(&cmd->se_cmd, cmd->tmr_req, iscsit_handle_task_mgt_cmd() 1844 return iscsit_add_reject_cmd(cmd, iscsit_handle_task_mgt_cmd() 1847 cmd->tmr_req->se_tmr_req = cmd->se_cmd.se_tmr_req; iscsit_handle_task_mgt_cmd() 1850 cmd->iscsi_opcode = ISCSI_OP_SCSI_TMFUNC; iscsit_handle_task_mgt_cmd() 1851 cmd->i_state = ISTATE_SEND_TASKMGTRSP; iscsit_handle_task_mgt_cmd() 1852 cmd->immediate_cmd = ((hdr->opcode & ISCSI_OP_IMMEDIATE) ? 1 : 0); iscsit_handle_task_mgt_cmd() 1853 cmd->init_task_tag = hdr->itt; iscsit_handle_task_mgt_cmd() 1854 cmd->targ_xfer_tag = 0xFFFFFFFF; iscsit_handle_task_mgt_cmd() 1855 cmd->cmd_sn = be32_to_cpu(hdr->cmdsn); iscsit_handle_task_mgt_cmd() 1856 cmd->exp_stat_sn = be32_to_cpu(hdr->exp_statsn); iscsit_handle_task_mgt_cmd() 1857 se_tmr = cmd->se_cmd.se_tmr_req; iscsit_handle_task_mgt_cmd() 1858 tmr_req = cmd->tmr_req; iscsit_handle_task_mgt_cmd() 1863 ret = transport_lookup_tmr_lun(&cmd->se_cmd, iscsit_handle_task_mgt_cmd() 1873 se_tmr->response = iscsit_tmr_abort_task(cmd, buf); iscsit_handle_task_mgt_cmd() 1895 se_tmr->response = iscsit_tmr_task_reassign(cmd, buf); iscsit_handle_task_mgt_cmd() 1904 return iscsit_add_reject_cmd(cmd, iscsit_handle_task_mgt_cmd() 1919 list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); iscsit_handle_task_mgt_cmd() 1923 int cmdsn_ret = iscsit_sequence_cmd(conn, cmd, buf, hdr->cmdsn); iscsit_handle_task_mgt_cmd() 1939 return transport_generic_handle_tmr(&cmd->se_cmd); iscsit_handle_task_mgt_cmd() 1951 target_put_sess_cmd(&cmd->se_cmd); iscsit_handle_task_mgt_cmd() 1954 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_handle_task_mgt_cmd() 1961 iscsit_setup_text_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_setup_text_cmd() argument 1970 return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR, iscsit_setup_text_cmd() 1977 return iscsit_reject_cmd(cmd, ISCSI_REASON_CMD_NOT_SUPPORTED, iscsit_setup_text_cmd() 1985 cmd->iscsi_opcode = ISCSI_OP_TEXT; iscsit_setup_text_cmd() 1986 cmd->i_state = ISTATE_SEND_TEXTRSP; iscsit_setup_text_cmd() 1987 cmd->immediate_cmd = ((hdr->opcode & ISCSI_OP_IMMEDIATE) ? 1 : 0); iscsit_setup_text_cmd() 1988 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; iscsit_setup_text_cmd() 1989 cmd->targ_xfer_tag = 0xFFFFFFFF; iscsit_setup_text_cmd() 1990 cmd->cmd_sn = be32_to_cpu(hdr->cmdsn); iscsit_setup_text_cmd() 1991 cmd->exp_stat_sn = be32_to_cpu(hdr->exp_statsn); iscsit_setup_text_cmd() 1992 cmd->data_direction = DMA_NONE; iscsit_setup_text_cmd() 1993 cmd->text_in_ptr = NULL; iscsit_setup_text_cmd() 2000 iscsit_process_text_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_process_text_cmd() argument 2003 unsigned char *text_in = cmd->text_in_ptr, *text_ptr; iscsit_process_text_cmd() 2007 cmd->targ_xfer_tag = be32_to_cpu(hdr->ttt); iscsit_process_text_cmd() 2008 if (cmd->targ_xfer_tag == 0xFFFFFFFF) { iscsit_process_text_cmd() 2027 cmd->cmd_flags |= ICF_SENDTARGETS_ALL; iscsit_process_text_cmd() 2030 cmd->cmd_flags |= ICF_SENDTARGETS_SINGLE; iscsit_process_text_cmd() 2037 list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); iscsit_process_text_cmd() 2044 cmdsn_ret = iscsit_sequence_cmd(conn, cmd, iscsit_process_text_cmd() 2052 return iscsit_execute_cmd(cmd, 0); iscsit_process_text_cmd() 2055 return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR, iscsit_process_text_cmd() 2061 iscsit_handle_text_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_handle_text_cmd() argument 2069 rc = iscsit_setup_text_cmd(conn, cmd, hdr); iscsit_handle_text_cmd() 2086 cmd->text_in_ptr = text_in; iscsit_handle_text_cmd() 2147 return iscsit_process_text_cmd(conn, cmd, hdr); iscsit_handle_text_cmd() 2150 kfree(cmd->text_in_ptr); iscsit_handle_text_cmd() 2151 cmd->text_in_ptr = NULL; iscsit_handle_text_cmd() 2152 return iscsit_reject_cmd(cmd, ISCSI_REASON_PROTOCOL_ERROR, buf); iscsit_handle_text_cmd() 2155 int iscsit_logout_closesession(struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_logout_closesession() argument 2180 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_logout_closesession() 2185 int iscsit_logout_closeconnection(struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_logout_closeconnection() argument 2191 " %hu on CID: %hu.\n", cmd->logout_cid, conn->cid); iscsit_logout_closeconnection() 2197 if (conn->cid == cmd->logout_cid) { iscsit_logout_closeconnection() 2217 cmd->logout_cid); iscsit_logout_closeconnection() 2219 cmd->logout_response = ISCSI_LOGOUT_CID_NOT_FOUND; iscsit_logout_closeconnection() 2220 iscsit_add_cmd_to_response_queue(cmd, conn, iscsit_logout_closeconnection() 2221 cmd->i_state); iscsit_logout_closeconnection() 2228 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_logout_closeconnection() 2233 int iscsit_logout_removeconnforrecovery(struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_logout_removeconnforrecovery() argument 2238 " CID: %hu on CID: %hu.\n", cmd->logout_cid, conn->cid); iscsit_logout_removeconnforrecovery() 2243 cmd->logout_response = ISCSI_LOGOUT_RECOVERY_UNSUPPORTED; iscsit_logout_removeconnforrecovery() 2244 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_logout_removeconnforrecovery() 2248 if (conn->cid == cmd->logout_cid) { iscsit_logout_removeconnforrecovery() 2251 cmd->logout_cid, conn->cid); iscsit_logout_removeconnforrecovery() 2252 cmd->logout_response = ISCSI_LOGOUT_CLEANUP_FAILED; iscsit_logout_removeconnforrecovery() 2253 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_logout_removeconnforrecovery() 2257 iscsit_add_cmd_to_response_queue(cmd, conn, cmd->i_state); iscsit_logout_removeconnforrecovery() 2263 iscsit_handle_logout_cmd(struct iscsi_conn *conn, struct iscsi_cmd *cmd, iscsit_handle_logout_cmd() argument 2291 iscsit_free_cmd(cmd, false); iscsit_handle_logout_cmd() 2295 cmd->iscsi_opcode = ISCSI_OP_LOGOUT; iscsit_handle_logout_cmd() 2296 cmd->i_state = ISTATE_SEND_LOGOUTRSP; iscsit_handle_logout_cmd() 2297 cmd->immediate_cmd = ((hdr->opcode & ISCSI_OP_IMMEDIATE) ? 1 : 0); iscsit_handle_logout_cmd() 2298 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; iscsit_handle_logout_cmd() 2299 cmd->targ_xfer_tag = 0xFFFFFFFF; iscsit_handle_logout_cmd() 2300 cmd->cmd_sn = be32_to_cpu(hdr->cmdsn); iscsit_handle_logout_cmd() 2301 cmd->exp_stat_sn = be32_to_cpu(hdr->exp_statsn); iscsit_handle_logout_cmd() 2302 cmd->logout_cid = be16_to_cpu(hdr->cid); iscsit_handle_logout_cmd() 2303 cmd->logout_reason = reason_code; iscsit_handle_logout_cmd() 2304 cmd->data_direction = DMA_NONE; iscsit_handle_logout_cmd() 2316 list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list); iscsit_handle_logout_cmd() 2326 if (cmd->immediate_cmd) { iscsit_handle_logout_cmd() 2327 int ret = iscsit_execute_cmd(cmd, 0); iscsit_handle_logout_cmd() 2332 cmdsn_ret = iscsit_sequence_cmd(conn, cmd, buf, hdr->cmdsn); iscsit_handle_logout_cmd() 2408 struct iscsi_cmd *cmd, iscsit_handle_immediate_data() 2414 struct iscsi_conn *conn = cmd->conn; iscsit_handle_immediate_data() 2417 iov_ret = iscsit_map_iovec(cmd, cmd->iov_data, cmd->write_data_done, length); iscsit_handle_immediate_data() 2423 iov = &cmd->iov_data[0]; iscsit_handle_immediate_data() 2427 iov[iov_count].iov_base = cmd->pad_bytes; iscsit_handle_immediate_data() 2438 rx_got = rx_data(conn, &cmd->iov_data[0], iov_count, rx_size); iscsit_handle_immediate_data() 2440 iscsit_unmap_iovec(cmd); iscsit_handle_immediate_data() 2450 data_crc = iscsit_do_crypto_hash_sg(&conn->conn_rx_hash, cmd, iscsit_handle_immediate_data() 2451 cmd->write_data_done, length, padding, iscsit_handle_immediate_data() 2452 cmd->pad_bytes); iscsit_handle_immediate_data() 2463 iscsit_reject_cmd(cmd, iscsit_handle_immediate_data() 2468 iscsit_reject_cmd(cmd, iscsit_handle_immediate_data() 2480 cmd->write_data_done += length; iscsit_handle_immediate_data() 2482 if (cmd->write_data_done == cmd->se_cmd.data_length) { iscsit_handle_immediate_data() 2483 spin_lock_bh(&cmd->istate_lock); iscsit_handle_immediate_data() 2484 cmd->cmd_flags |= ICF_GOT_LAST_DATAOUT; iscsit_handle_immediate_data() 2485 cmd->i_state = ISTATE_RECEIVED_LAST_DATAOUT; iscsit_handle_immediate_data() 2486 spin_unlock_bh(&cmd->istate_lock); iscsit_handle_immediate_data() 2499 struct iscsi_cmd *cmd; iscsit_build_conn_drop_async_message() local 2518 cmd = iscsit_allocate_cmd(conn_p, TASK_RUNNING); iscsit_build_conn_drop_async_message() 2519 if (!cmd) { iscsit_build_conn_drop_async_message() 2524 cmd->logout_cid = conn->cid; iscsit_build_conn_drop_async_message() 2525 cmd->iscsi_opcode = ISCSI_OP_ASYNC_EVENT; iscsit_build_conn_drop_async_message() 2526 cmd->i_state = ISTATE_SEND_ASYNCMSG; iscsit_build_conn_drop_async_message() 2529 list_add_tail(&cmd->i_conn_node, &conn_p->conn_cmd_list); iscsit_build_conn_drop_async_message() 2532 iscsit_add_cmd_to_response_queue(cmd, conn_p, cmd->i_state); iscsit_build_conn_drop_async_message() 2537 struct iscsi_cmd *cmd, iscsit_send_conn_drop_async_message() 2542 cmd->tx_size = ISCSI_HDR_LEN; iscsit_send_conn_drop_async_message() 2543 cmd->iscsi_opcode = ISCSI_OP_ASYNC_EVENT; iscsit_send_conn_drop_async_message() 2545 hdr = (struct iscsi_async *) cmd->pdu; iscsit_send_conn_drop_async_message() 2548 cmd->init_task_tag = RESERVED_ITT; iscsit_send_conn_drop_async_message() 2549 cmd->targ_xfer_tag = 0xFFFFFFFF; iscsit_send_conn_drop_async_message() 2551 cmd->stat_sn = conn->stat_sn++; iscsit_send_conn_drop_async_message() 2552 hdr->statsn = cpu_to_be32(cmd->stat_sn); iscsit_send_conn_drop_async_message() 2556 hdr->param1 = cpu_to_be16(cmd->logout_cid); iscsit_send_conn_drop_async_message() 2561 u32 *header_digest = (u32 *)&cmd->pdu[ISCSI_HDR_LEN]; iscsit_send_conn_drop_async_message() 2566 cmd->tx_size += ISCSI_CRC_LEN; iscsit_send_conn_drop_async_message() 2571 cmd->iov_misc[0].iov_base = cmd->pdu; iscsit_send_conn_drop_async_message() 2572 cmd->iov_misc[0].iov_len = cmd->tx_size; iscsit_send_conn_drop_async_message() 2573 cmd->iov_misc_count = 1; iscsit_send_conn_drop_async_message() 2576 " 0x%08x, for CID: %hu on CID: %hu\n", cmd->stat_sn, iscsit_send_conn_drop_async_message() 2577 cmd->logout_cid, conn->cid); iscsit_send_conn_drop_async_message() 2592 iscsit_build_datain_pdu(struct iscsi_cmd *cmd, struct iscsi_conn *conn, iscsit_build_datain_pdu() argument 2599 if (cmd->se_cmd.se_cmd_flags & SCF_OVERFLOW_BIT) { iscsit_build_datain_pdu() 2601 hdr->residual_count = cpu_to_be32(cmd->se_cmd.residual_count); iscsit_build_datain_pdu() 2602 } else if (cmd->se_cmd.se_cmd_flags & SCF_UNDERFLOW_BIT) { iscsit_build_datain_pdu() 2604 hdr->residual_count = cpu_to_be32(cmd->se_cmd.residual_count); iscsit_build_datain_pdu() 2609 int_to_scsilun(cmd->se_cmd.orig_fe_lun, iscsit_build_datain_pdu() 2614 hdr->itt = cmd->init_task_tag; iscsit_build_datain_pdu() 2617 hdr->ttt = cpu_to_be32(cmd->targ_xfer_tag); iscsit_build_datain_pdu() 2621 hdr->statsn = cpu_to_be32(cmd->stat_sn); iscsit_build_datain_pdu() 2632 cmd->init_task_tag, ntohl(hdr->statsn), ntohl(hdr->datasn), iscsit_build_datain_pdu() 2636 static int iscsit_send_datain(struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_send_datain() argument 2638 struct iscsi_data_rsp *hdr = (struct iscsi_data_rsp *)&cmd->pdu[0]; iscsit_send_datain() 2647 dr = iscsit_get_datain_values(cmd, &datain); iscsit_send_datain() 2650 cmd->init_task_tag); iscsit_send_datain() 2656 if ((datain.offset + datain.length) > cmd->se_cmd.data_length) { iscsit_send_datain() 2658 " datain.length: %u exceeds cmd->data_length: %u\n", iscsit_send_datain() 2659 cmd->init_task_tag, datain.offset, datain.length, iscsit_send_datain() 2660 cmd->se_cmd.data_length); iscsit_send_datain() 2670 (cmd->se_cmd.se_cmd_flags & SCF_TRANSPORT_TASK_SENSE)) iscsit_send_datain() 2675 iscsit_increment_maxcmdsn(cmd, conn->sess); iscsit_send_datain() 2676 cmd->stat_sn = conn->stat_sn++; iscsit_send_datain() 2683 iscsit_build_datain_pdu(cmd, conn, &datain, hdr, set_statsn); iscsit_send_datain() 2685 iov = &cmd->iov_data[0]; iscsit_send_datain() 2686 iov[iov_count].iov_base = cmd->pdu; iscsit_send_datain() 2691 u32 *header_digest = (u32 *)&cmd->pdu[ISCSI_HDR_LEN]; iscsit_send_datain() 2693 iscsit_do_crypto_hash_buf(&conn->conn_tx_hash, cmd->pdu, iscsit_send_datain() 2703 iov_ret = iscsit_map_iovec(cmd, &cmd->iov_data[1], iscsit_send_datain() 2711 cmd->padding = ((-datain.length) & 3); iscsit_send_datain() 2712 if (cmd->padding) { iscsit_send_datain() 2713 iov[iov_count].iov_base = cmd->pad_bytes; iscsit_send_datain() 2714 iov[iov_count++].iov_len = cmd->padding; iscsit_send_datain() 2715 tx_size += cmd->padding; iscsit_send_datain() 2718 cmd->padding); iscsit_send_datain() 2721 cmd->data_crc = iscsit_do_crypto_hash_sg(&conn->conn_tx_hash, cmd, iscsit_send_datain() 2722 datain.offset, datain.length, cmd->padding, cmd->pad_bytes); iscsit_send_datain() 2724 iov[iov_count].iov_base = &cmd->data_crc; iscsit_send_datain() 2729 " 0x%08x\n", datain.length+cmd->padding, cmd->data_crc); iscsit_send_datain() 2732 cmd->iov_data_count = iov_count; iscsit_send_datain() 2733 cmd->tx_size = tx_size; iscsit_send_datain() 2737 ret = iscsit_fe_sendpage_sg(cmd, conn); iscsit_send_datain() 2739 ret = iscsit_send_tx_data(cmd, conn, 0); iscsit_send_datain() 2741 iscsit_unmap_iovec(cmd); iscsit_send_datain() 2749 eodr = (cmd->se_cmd.se_cmd_flags & SCF_TRANSPORT_TASK_SENSE) ? iscsit_send_datain() 2751 iscsit_free_datain_req(cmd, dr); iscsit_send_datain() 2758 iscsit_build_logout_rsp(struct iscsi_cmd *cmd, struct iscsi_conn *conn, iscsit_build_logout_rsp() argument 2769 switch (cmd->logout_reason) { iscsit_build_logout_rsp() 2773 cmd->logout_response = ISCSI_LOGOUT_SUCCESS; iscsit_build_logout_rsp() 2776 if (cmd->logout_response == ISCSI_LOGOUT_CID_NOT_FOUND) iscsit_build_logout_rsp() 2786 * on, the connection responding to cmd->logout_cid iscsit_build_logout_rsp() 2791 " successful.\n", cmd->logout_cid, conn->cid); iscsit_build_logout_rsp() 2792 cmd->logout_response = ISCSI_LOGOUT_SUCCESS; iscsit_build_logout_rsp() 2795 if ((cmd->logout_response == ISCSI_LOGOUT_RECOVERY_UNSUPPORTED) || iscsit_build_logout_rsp() 2796 (cmd->logout_response == ISCSI_LOGOUT_CLEANUP_FAILED)) iscsit_build_logout_rsp() 2803 cmd->logout_cid); iscsit_build_logout_rsp() 2810 conn->sess, cmd->logout_cid); iscsit_build_logout_rsp() 2814 cmd->logout_cid); iscsit_build_logout_rsp() 2815 cmd->logout_response = ISCSI_LOGOUT_CID_NOT_FOUND; iscsit_build_logout_rsp() 2819 iscsit_discard_cr_cmds_by_expstatsn(cr, cmd->exp_stat_sn); iscsit_build_logout_rsp() 2823 cmd->logout_cid, conn->cid); iscsit_build_logout_rsp() 2824 cmd->logout_response = ISCSI_LOGOUT_SUCCESS; iscsit_build_logout_rsp() 2827 pr_err("Unknown cmd->logout_reason: 0x%02x\n", iscsit_build_logout_rsp() 2828 cmd->logout_reason); iscsit_build_logout_rsp() 2834 hdr->response = cmd->logout_response; iscsit_build_logout_rsp() 2835 hdr->itt = cmd->init_task_tag; iscsit_build_logout_rsp() 2836 cmd->stat_sn = conn->stat_sn++; iscsit_build_logout_rsp() 2837 hdr->statsn = cpu_to_be32(cmd->stat_sn); iscsit_build_logout_rsp() 2839 iscsit_increment_maxcmdsn(cmd, conn->sess); iscsit_build_logout_rsp() 2845 cmd->init_task_tag, cmd->stat_sn, hdr->response, iscsit_build_logout_rsp() 2846 cmd->logout_cid, conn->cid); iscsit_build_logout_rsp() 2853 iscsit_send_logout(struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_send_logout() argument 2858 rc = iscsit_build_logout_rsp(cmd, conn, iscsit_send_logout() 2859 (struct iscsi_logout_rsp *)&cmd->pdu[0]); iscsit_send_logout() 2864 iov = &cmd->iov_misc[0]; iscsit_send_logout() 2865 iov[niov].iov_base = cmd->pdu; iscsit_send_logout() 2869 u32 *header_digest = (u32 *)&cmd->pdu[ISCSI_HDR_LEN]; iscsit_send_logout() 2871 iscsit_do_crypto_hash_buf(&conn->conn_tx_hash, &cmd->pdu[0], iscsit_send_logout() 2879 cmd->iov_misc_count = niov; iscsit_send_logout() 2880 cmd->tx_size = tx_size; iscsit_send_logout() 2886 iscsit_build_nopin_rsp(struct iscsi_cmd *cmd, struct iscsi_conn *conn, iscsit_build_nopin_rsp() argument 2891 hton24(hdr->dlength, cmd->buf_ptr_size); iscsit_build_nopin_rsp() 2894 hdr->itt = cmd->init_task_tag; iscsit_build_nopin_rsp() 2895 hdr->ttt = cpu_to_be32(cmd->targ_xfer_tag); iscsit_build_nopin_rsp() 2896 cmd->stat_sn = (nopout_response) ? conn->stat_sn++ : iscsit_build_nopin_rsp() 2898 hdr->statsn = cpu_to_be32(cmd->stat_sn); iscsit_build_nopin_rsp() 2901 iscsit_increment_maxcmdsn(cmd, conn->sess); iscsit_build_nopin_rsp() 2908 "Solicitied" : "Unsolicitied", cmd->init_task_tag, iscsit_build_nopin_rsp() 2909 cmd->targ_xfer_tag, cmd->stat_sn, cmd->buf_ptr_size); iscsit_build_nopin_rsp() 2917 struct iscsi_cmd *cmd, iscsit_send_unsolicited_nopin() 2921 struct iscsi_nopin *hdr = (struct iscsi_nopin *)&cmd->pdu[0]; iscsit_send_unsolicited_nopin() 2924 iscsit_build_nopin_rsp(cmd, conn, hdr, false); iscsit_send_unsolicited_nopin() 2927 u32 *header_digest = (u32 *)&cmd->pdu[ISCSI_HDR_LEN]; iscsit_send_unsolicited_nopin() 2937 cmd->iov_misc[0].iov_base = cmd->pdu; iscsit_send_unsolicited_nopin() 2938 cmd->iov_misc[0].iov_len = tx_size; iscsit_send_unsolicited_nopin() 2939 cmd->iov_misc_count = 1; iscsit_send_unsolicited_nopin() 2940 cmd->tx_size = tx_size; iscsit_send_unsolicited_nopin() 2943 " 0x%08x CID: %hu\n", hdr->ttt, cmd->stat_sn, conn->cid); iscsit_send_unsolicited_nopin() 2945 ret = iscsit_send_tx_data(cmd, conn, 1); iscsit_send_unsolicited_nopin() 2951 spin_lock_bh(&cmd->istate_lock); iscsit_send_unsolicited_nopin() 2952 cmd->i_state = want_response ? iscsit_send_unsolicited_nopin() 2954 spin_unlock_bh(&cmd->istate_lock); iscsit_send_unsolicited_nopin() 2960 iscsit_send_nopin(struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_send_nopin() argument 2962 struct iscsi_nopin *hdr = (struct iscsi_nopin *)&cmd->pdu[0]; iscsit_send_nopin() 2967 iscsit_build_nopin_rsp(cmd, conn, hdr, true); iscsit_send_nopin() 2970 iov = &cmd->iov_misc[0]; iscsit_send_nopin() 2971 iov[niov].iov_base = cmd->pdu; iscsit_send_nopin() 2975 u32 *header_digest = (u32 *)&cmd->pdu[ISCSI_HDR_LEN]; iscsit_send_nopin() 2990 if (cmd->buf_ptr_size) { iscsit_send_nopin() 2991 iov[niov].iov_base = cmd->buf_ptr; iscsit_send_nopin() 2992 iov[niov++].iov_len = cmd->buf_ptr_size; iscsit_send_nopin() 2993 tx_size += cmd->buf_ptr_size; iscsit_send_nopin() 2996 " data.\n", cmd->buf_ptr_size); iscsit_send_nopin() 2998 padding = ((-cmd->buf_ptr_size) & 3); iscsit_send_nopin() 3000 iov[niov].iov_base = &cmd->pad_bytes; iscsit_send_nopin() 3008 cmd->buf_ptr, cmd->buf_ptr_size, iscsit_send_nopin() 3009 padding, (u8 *)&cmd->pad_bytes, iscsit_send_nopin() 3010 (u8 *)&cmd->data_crc); iscsit_send_nopin() 3012 iov[niov].iov_base = &cmd->data_crc; iscsit_send_nopin() 3017 cmd->buf_ptr_size, cmd->data_crc); iscsit_send_nopin() 3021 cmd->iov_misc_count = niov; iscsit_send_nopin() 3022 cmd->tx_size = tx_size; iscsit_send_nopin() 3028 struct iscsi_cmd *cmd, iscsit_send_r2t() 3036 r2t = iscsit_get_r2t_from_list(cmd); iscsit_send_r2t() 3040 hdr = (struct iscsi_r2t_rsp *) cmd->pdu; iscsit_send_r2t() 3044 int_to_scsilun(cmd->se_cmd.orig_fe_lun, iscsit_send_r2t() 3046 hdr->itt = cmd->init_task_tag; iscsit_send_r2t() 3056 cmd->iov_misc[0].iov_base = cmd->pdu; iscsit_send_r2t() 3057 cmd->iov_misc[0].iov_len = ISCSI_HDR_LEN; iscsit_send_r2t() 3061 u32 *header_digest = (u32 *)&cmd->pdu[ISCSI_HDR_LEN]; iscsit_send_r2t() 3066 cmd->iov_misc[0].iov_len += ISCSI_CRC_LEN; iscsit_send_r2t() 3074 (!r2t->recovery_r2t) ? "" : "Recovery ", cmd->init_task_tag, iscsit_send_r2t() 3078 cmd->iov_misc_count = 1; iscsit_send_r2t() 3079 cmd->tx_size = tx_size; iscsit_send_r2t() 3081 spin_lock_bh(&cmd->r2t_lock); iscsit_send_r2t() 3083 spin_unlock_bh(&cmd->r2t_lock); iscsit_send_r2t() 3085 ret = iscsit_send_tx_data(cmd, conn, 1); iscsit_send_r2t() 3091 spin_lock_bh(&cmd->dataout_timeout_lock); iscsit_send_r2t() 3092 iscsit_start_dataout_timer(cmd, conn); iscsit_send_r2t() 3093 spin_unlock_bh(&cmd->dataout_timeout_lock); iscsit_send_r2t() 3104 struct iscsi_cmd *cmd, iscsit_build_r2ts_for_cmd() 3110 spin_lock_bh(&cmd->r2t_lock); iscsit_build_r2ts_for_cmd() 3111 if (cmd->cmd_flags & ICF_SENT_LAST_R2T) { iscsit_build_r2ts_for_cmd() 3112 spin_unlock_bh(&cmd->r2t_lock); iscsit_build_r2ts_for_cmd() 3118 cmd->r2t_offset = max(cmd->r2t_offset, cmd->write_data_done); iscsit_build_r2ts_for_cmd() 3120 while (cmd->outstanding_r2ts < conn->sess->sess_ops->MaxOutstandingR2T) { iscsit_build_r2ts_for_cmd() 3122 offset = cmd->r2t_offset; iscsit_build_r2ts_for_cmd() 3127 cmd->next_burst_len; iscsit_build_r2ts_for_cmd() 3129 if (new_data_end > cmd->se_cmd.data_length) iscsit_build_r2ts_for_cmd() 3130 xfer_len = cmd->se_cmd.data_length - offset; iscsit_build_r2ts_for_cmd() 3134 cmd->next_burst_len; iscsit_build_r2ts_for_cmd() 3139 if (new_data_end > cmd->se_cmd.data_length) iscsit_build_r2ts_for_cmd() 3140 xfer_len = cmd->se_cmd.data_length - offset; iscsit_build_r2ts_for_cmd() 3144 cmd->r2t_offset += xfer_len; iscsit_build_r2ts_for_cmd() 3146 if (cmd->r2t_offset == cmd->se_cmd.data_length) iscsit_build_r2ts_for_cmd() 3147 cmd->cmd_flags |= ICF_SENT_LAST_R2T; iscsit_build_r2ts_for_cmd() 3151 seq = iscsit_get_seq_holder_for_r2t(cmd); iscsit_build_r2ts_for_cmd() 3153 spin_unlock_bh(&cmd->r2t_lock); iscsit_build_r2ts_for_cmd() 3160 if (cmd->seq_send_order == cmd->seq_count) iscsit_build_r2ts_for_cmd() 3161 cmd->cmd_flags |= ICF_SENT_LAST_R2T; iscsit_build_r2ts_for_cmd() 3163 cmd->outstanding_r2ts++; iscsit_build_r2ts_for_cmd() 3166 if (iscsit_add_r2t_to_list(cmd, offset, xfer_len, 0, 0) < 0) { iscsit_build_r2ts_for_cmd() 3167 spin_unlock_bh(&cmd->r2t_lock); iscsit_build_r2ts_for_cmd() 3171 if (cmd->cmd_flags & ICF_SENT_LAST_R2T) iscsit_build_r2ts_for_cmd() 3174 spin_unlock_bh(&cmd->r2t_lock); iscsit_build_r2ts_for_cmd() 3179 void iscsit_build_rsp_pdu(struct iscsi_cmd *cmd, struct iscsi_conn *conn, iscsit_build_rsp_pdu() argument 3183 cmd->stat_sn = conn->stat_sn++; iscsit_build_rsp_pdu() 3190 if (cmd->se_cmd.se_cmd_flags & SCF_OVERFLOW_BIT) { iscsit_build_rsp_pdu() 3192 hdr->residual_count = cpu_to_be32(cmd->se_cmd.residual_count); iscsit_build_rsp_pdu() 3193 } else if (cmd->se_cmd.se_cmd_flags & SCF_UNDERFLOW_BIT) { iscsit_build_rsp_pdu() 3195 hdr->residual_count = cpu_to_be32(cmd->se_cmd.residual_count); iscsit_build_rsp_pdu() 3197 hdr->response = cmd->iscsi_response; iscsit_build_rsp_pdu() 3198 hdr->cmd_status = cmd->se_cmd.scsi_status; iscsit_build_rsp_pdu() 3199 hdr->itt = cmd->init_task_tag; iscsit_build_rsp_pdu() 3200 hdr->statsn = cpu_to_be32(cmd->stat_sn); iscsit_build_rsp_pdu() 3202 iscsit_increment_maxcmdsn(cmd, conn->sess); iscsit_build_rsp_pdu() 3208 cmd->init_task_tag, cmd->stat_sn, cmd->se_cmd.scsi_status, iscsit_build_rsp_pdu() 3209 cmd->se_cmd.scsi_status, conn->cid); iscsit_build_rsp_pdu() 3213 static int iscsit_send_response(struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_send_response() argument 3215 struct iscsi_scsi_rsp *hdr = (struct iscsi_scsi_rsp *)&cmd->pdu[0]; iscsit_send_response() 3219 bool inc_stat_sn = (cmd->i_state == ISTATE_SEND_STATUS); iscsit_send_response() 3221 iscsit_build_rsp_pdu(cmd, conn, inc_stat_sn, hdr); iscsit_send_response() 3223 iov = &cmd->iov_misc[0]; iscsit_send_response() 3224 iov[iov_count].iov_base = cmd->pdu; iscsit_send_response() 3231 if (cmd->se_cmd.sense_buffer && iscsit_send_response() 3232 ((cmd->se_cmd.se_cmd_flags & SCF_TRANSPORT_TASK_SENSE) || iscsit_send_response() 3233 (cmd->se_cmd.se_cmd_flags & SCF_EMULATED_TASK_SENSE))) { iscsit_send_response() 3234 put_unaligned_be16(cmd->se_cmd.scsi_sense_length, cmd->sense_buffer); iscsit_send_response() 3235 cmd->se_cmd.scsi_sense_length += sizeof (__be16); iscsit_send_response() 3237 padding = -(cmd->se_cmd.scsi_sense_length) & 3; iscsit_send_response() 3238 hton24(hdr->dlength, (u32)cmd->se_cmd.scsi_sense_length); iscsit_send_response() 3239 iov[iov_count].iov_base = cmd->sense_buffer; iscsit_send_response() 3241 (cmd->se_cmd.scsi_sense_length + padding); iscsit_send_response() 3242 tx_size += cmd->se_cmd.scsi_sense_length; iscsit_send_response() 3245 memset(cmd->sense_buffer + iscsit_send_response() 3246 cmd->se_cmd.scsi_sense_length, 0, padding); iscsit_send_response() 3254 cmd->sense_buffer, iscsit_send_response() 3255 (cmd->se_cmd.scsi_sense_length + padding), iscsit_send_response() 3256 0, NULL, (u8 *)&cmd->data_crc); iscsit_send_response() 3258 iov[iov_count].iov_base = &cmd->data_crc; iscsit_send_response() 3264 (cmd->se_cmd.scsi_sense_length + padding), iscsit_send_response() 3265 cmd->data_crc); iscsit_send_response() 3270 cmd->se_cmd.scsi_sense_length); iscsit_send_response() 3274 u32 *header_digest = (u32 *)&cmd->pdu[ISCSI_HDR_LEN]; iscsit_send_response() 3276 iscsit_do_crypto_hash_buf(&conn->conn_tx_hash, cmd->pdu, iscsit_send_response() 3285 cmd->iov_misc_count = iov_count; iscsit_send_response() 3286 cmd->tx_size = tx_size; iscsit_send_response() 3309 iscsit_build_task_mgt_rsp(struct iscsi_cmd *cmd, struct iscsi_conn *conn, iscsit_build_task_mgt_rsp() argument 3312 struct se_tmr_req *se_tmr = cmd->se_cmd.se_tmr_req; iscsit_build_task_mgt_rsp() 3317 hdr->itt = cmd->init_task_tag; iscsit_build_task_mgt_rsp() 3318 cmd->stat_sn = conn->stat_sn++; iscsit_build_task_mgt_rsp() 3319 hdr->statsn = cpu_to_be32(cmd->stat_sn); iscsit_build_task_mgt_rsp() 3321 iscsit_increment_maxcmdsn(cmd, conn->sess); iscsit_build_task_mgt_rsp() 3327 cmd->init_task_tag, cmd->stat_sn, hdr->response, conn->cid); iscsit_build_task_mgt_rsp() 3332 iscsit_send_task_mgt_rsp(struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_send_task_mgt_rsp() argument 3334 struct iscsi_tm_rsp *hdr = (struct iscsi_tm_rsp *)&cmd->pdu[0]; iscsit_send_task_mgt_rsp() 3337 iscsit_build_task_mgt_rsp(cmd, conn, hdr); iscsit_send_task_mgt_rsp() 3339 cmd->iov_misc[0].iov_base = cmd->pdu; iscsit_send_task_mgt_rsp() 3340 cmd->iov_misc[0].iov_len = ISCSI_HDR_LEN; iscsit_send_task_mgt_rsp() 3344 u32 *header_digest = (u32 *)&cmd->pdu[ISCSI_HDR_LEN]; iscsit_send_task_mgt_rsp() 3349 cmd->iov_misc[0].iov_len += ISCSI_CRC_LEN; iscsit_send_task_mgt_rsp() 3355 cmd->iov_misc_count = 1; iscsit_send_task_mgt_rsp() 3356 cmd->tx_size = tx_size; iscsit_send_task_mgt_rsp() 3388 iscsit_build_sendtargets_response(struct iscsi_cmd *cmd, iscsit_build_sendtargets_response() argument 3393 struct iscsi_conn *conn = cmd->conn; iscsit_build_sendtargets_response() 3400 unsigned char *text_in = cmd->text_in_ptr, *text_ptr = NULL; iscsit_build_sendtargets_response() 3415 if (cmd->cmd_flags & ICF_SENDTARGETS_SINGLE) { iscsit_build_sendtargets_response() 3431 if ((cmd->cmd_flags & ICF_SENDTARGETS_SINGLE) && iscsit_build_sendtargets_response() 3449 cmd->conn->sess->sess_ops->InitiatorName))) { iscsit_build_sendtargets_response() 3532 if (cmd->cmd_flags & ICF_SENDTARGETS_SINGLE) iscsit_build_sendtargets_response() 3537 cmd->buf_ptr = payload; iscsit_build_sendtargets_response() 3543 iscsit_build_text_rsp(struct iscsi_cmd *cmd, struct iscsi_conn *conn, iscsit_build_text_rsp() argument 3550 text_length = iscsit_build_sendtargets_response(cmd, network_transport, iscsit_build_text_rsp() 3551 cmd->read_data_done, iscsit_build_text_rsp() 3560 cmd->read_data_done += text_length; iscsit_build_text_rsp() 3561 if (cmd->targ_xfer_tag == 0xFFFFFFFF) iscsit_build_text_rsp() 3562 cmd->targ_xfer_tag = session_get_next_ttt(conn->sess); iscsit_build_text_rsp() 3567 hdr->itt = cmd->init_task_tag; iscsit_build_text_rsp() 3568 hdr->ttt = cpu_to_be32(cmd->targ_xfer_tag); iscsit_build_text_rsp() 3569 cmd->stat_sn = conn->stat_sn++; iscsit_build_text_rsp() 3570 hdr->statsn = cpu_to_be32(cmd->stat_sn); iscsit_build_text_rsp() 3572 iscsit_increment_maxcmdsn(cmd, conn->sess); iscsit_build_text_rsp() 3578 cmd->maxcmdsn_inc = 0; iscsit_build_text_rsp() 3583 " Length: %u, CID: %hu F: %d C: %d\n", cmd->init_task_tag, iscsit_build_text_rsp() 3584 cmd->targ_xfer_tag, cmd->stat_sn, text_length, conn->cid, iscsit_build_text_rsp() 3593 struct iscsi_cmd *cmd, iscsit_send_text_rsp() 3596 struct iscsi_text_rsp *hdr = (struct iscsi_text_rsp *)cmd->pdu; iscsit_send_text_rsp() 3601 rc = iscsit_build_text_rsp(cmd, conn, hdr, ISCSI_TCP); iscsit_send_text_rsp() 3606 iov = &cmd->iov_misc[0]; iscsit_send_text_rsp() 3607 iov[iov_count].iov_base = cmd->pdu; iscsit_send_text_rsp() 3609 iov[iov_count].iov_base = cmd->buf_ptr; iscsit_send_text_rsp() 3615 u32 *header_digest = (u32 *)&cmd->pdu[ISCSI_HDR_LEN]; iscsit_send_text_rsp() 3628 cmd->buf_ptr, text_length, iscsit_send_text_rsp() 3629 0, NULL, (u8 *)&cmd->data_crc); iscsit_send_text_rsp() 3631 iov[iov_count].iov_base = &cmd->data_crc; iscsit_send_text_rsp() 3637 cmd->data_crc); iscsit_send_text_rsp() 3640 cmd->iov_misc_count = iov_count; iscsit_send_text_rsp() 3641 cmd->tx_size = tx_size; iscsit_send_text_rsp() 3647 iscsit_build_reject(struct iscsi_cmd *cmd, struct iscsi_conn *conn, iscsit_build_reject() argument 3651 hdr->reason = cmd->reject_reason; iscsit_build_reject() 3655 cmd->stat_sn = conn->stat_sn++; iscsit_build_reject() 3656 hdr->statsn = cpu_to_be32(cmd->stat_sn); iscsit_build_reject() 3664 struct iscsi_cmd *cmd, iscsit_send_reject() 3667 struct iscsi_reject *hdr = (struct iscsi_reject *)&cmd->pdu[0]; iscsit_send_reject() 3671 iscsit_build_reject(cmd, conn, hdr); iscsit_send_reject() 3673 iov = &cmd->iov_misc[0]; iscsit_send_reject() 3674 iov[iov_count].iov_base = cmd->pdu; iscsit_send_reject() 3676 iov[iov_count].iov_base = cmd->buf_ptr; iscsit_send_reject() 3682 u32 *header_digest = (u32 *)&cmd->pdu[ISCSI_HDR_LEN]; iscsit_send_reject() 3694 iscsit_do_crypto_hash_buf(&conn->conn_tx_hash, cmd->buf_ptr, iscsit_send_reject() 3695 ISCSI_HDR_LEN, 0, NULL, (u8 *)&cmd->data_crc); iscsit_send_reject() 3697 iov[iov_count].iov_base = &cmd->data_crc; iscsit_send_reject() 3701 " PDU 0x%08x\n", cmd->data_crc); iscsit_send_reject() 3704 cmd->iov_misc_count = iov_count; iscsit_send_reject() 3705 cmd->tx_size = tx_size; iscsit_send_reject() 3765 iscsit_immediate_queue(struct iscsi_conn *conn, struct iscsi_cmd *cmd, int state) iscsit_immediate_queue() argument 3771 ret = iscsit_send_r2t(cmd, conn); iscsit_immediate_queue() 3777 list_del_init(&cmd->i_conn_node); iscsit_immediate_queue() 3780 iscsit_free_cmd(cmd, false); iscsit_immediate_queue() 3784 ret = iscsit_send_unsolicited_nopin(cmd, conn, 1); iscsit_immediate_queue() 3789 ret = iscsit_send_unsolicited_nopin(cmd, conn, 0); iscsit_immediate_queue() 3796 cmd->iscsi_opcode, cmd->init_task_tag, state, iscsit_immediate_queue() 3812 struct iscsi_cmd *cmd; iscsit_handle_immediate_queue() local 3818 cmd = qr->cmd; iscsit_handle_immediate_queue() 3822 ret = t->iscsit_immediate_queue(conn, cmd, state); iscsit_handle_immediate_queue() 3831 iscsit_response_queue(struct iscsi_conn *conn, struct iscsi_cmd *cmd, int state) iscsit_response_queue() argument 3838 ret = iscsit_send_datain(cmd, conn); iscsit_response_queue() 3846 spin_lock_bh(&cmd->istate_lock); iscsit_response_queue() 3847 cmd->i_state = ISTATE_SENT_STATUS; iscsit_response_queue() 3848 spin_unlock_bh(&cmd->istate_lock); iscsit_response_queue() 3857 spin_lock_bh(&cmd->istate_lock); iscsit_response_queue() 3858 cmd->i_state = ISTATE_SEND_STATUS; iscsit_response_queue() 3859 spin_unlock_bh(&cmd->istate_lock); iscsit_response_queue() 3867 ret = iscsit_send_response(cmd, conn); iscsit_response_queue() 3870 ret = iscsit_send_logout(cmd, conn); iscsit_response_queue() 3874 cmd, conn); iscsit_response_queue() 3877 ret = iscsit_send_nopin(cmd, conn); iscsit_response_queue() 3880 ret = iscsit_send_reject(cmd, conn); iscsit_response_queue() 3883 ret = iscsit_send_task_mgt_rsp(cmd, conn); iscsit_response_queue() 3886 ret = iscsit_tmr_post_handler(cmd, conn); iscsit_response_queue() 3891 ret = iscsit_send_text_rsp(cmd, conn); iscsit_response_queue() 3896 cmd->iscsi_opcode, cmd->init_task_tag, iscsit_response_queue() 3903 if (iscsit_send_tx_data(cmd, conn, 1) < 0) { iscsit_response_queue() 3905 iscsit_unmap_iovec(cmd); iscsit_response_queue() 3908 iscsit_unmap_iovec(cmd); iscsit_response_queue() 3912 if (!iscsit_logout_post_handler(cmd, conn)) iscsit_response_queue() 3922 spin_lock_bh(&cmd->istate_lock); iscsit_response_queue() 3923 cmd->i_state = ISTATE_SENT_STATUS; iscsit_response_queue() 3924 spin_unlock_bh(&cmd->istate_lock); iscsit_response_queue() 3929 cmd->iscsi_opcode, cmd->init_task_tag, iscsit_response_queue() 3930 cmd->i_state, conn->cid); iscsit_response_queue() 3947 struct iscsi_cmd *cmd; iscsit_handle_response_queue() local 3952 cmd = qr->cmd; iscsit_handle_response_queue() 3956 ret = t->iscsit_response_queue(conn, cmd, state); iscsit_handle_response_queue() 4016 struct iscsi_cmd *cmd; iscsi_target_rx_opcode() local 4021 cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); iscsi_target_rx_opcode() 4022 if (!cmd) iscsi_target_rx_opcode() 4025 ret = iscsit_handle_scsi_cmd(conn, cmd, buf); iscsi_target_rx_opcode() 4031 cmd = NULL; iscsi_target_rx_opcode() 4033 cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); iscsi_target_rx_opcode() 4034 if (!cmd) iscsi_target_rx_opcode() 4037 ret = iscsit_handle_nop_out(conn, cmd, buf); iscsi_target_rx_opcode() 4040 cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); iscsi_target_rx_opcode() 4041 if (!cmd) iscsi_target_rx_opcode() 4044 ret = iscsit_handle_task_mgt_cmd(conn, cmd, buf); iscsi_target_rx_opcode() 4048 cmd = iscsit_find_cmd_from_itt(conn, hdr->itt); iscsi_target_rx_opcode() 4049 if (!cmd) iscsi_target_rx_opcode() 4052 cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); iscsi_target_rx_opcode() 4053 if (!cmd) iscsi_target_rx_opcode() 4057 ret = iscsit_handle_text_cmd(conn, cmd, buf); iscsi_target_rx_opcode() 4060 cmd = iscsit_allocate_cmd(conn, TASK_INTERRUPTIBLE); iscsi_target_rx_opcode() 4061 if (!cmd) iscsi_target_rx_opcode() 4064 ret = iscsit_handle_logout_cmd(conn, cmd, buf); iscsi_target_rx_opcode() 4218 struct iscsi_cmd *cmd = NULL, *cmd_tmp = NULL; iscsit_release_commands_from_conn() local 4226 list_for_each_entry_safe(cmd, cmd_tmp, &conn->conn_cmd_list, i_conn_node) { iscsit_release_commands_from_conn() 4228 list_del_init(&cmd->i_conn_node); iscsit_release_commands_from_conn() 4231 iscsit_increment_maxcmdsn(cmd, sess); iscsit_release_commands_from_conn() 4233 iscsit_free_cmd(cmd, true); iscsit_release_commands_from_conn() 4243 struct iscsi_cmd *cmd; iscsit_stop_timers_for_cmds() local 4246 list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) { iscsit_stop_timers_for_cmds() 4247 if (cmd->data_direction == DMA_TO_DEVICE) iscsit_stop_timers_for_cmds() 4248 iscsit_stop_dataout_timer(cmd); iscsit_stop_timers_for_cmds() 4644 struct iscsi_cmd *cmd, iscsit_logout_post_handler() 4649 switch (cmd->logout_reason) { iscsit_logout_post_handler() 4651 switch (cmd->logout_response) { iscsit_logout_post_handler() 4661 if (conn->cid == cmd->logout_cid) { iscsit_logout_post_handler() 4662 switch (cmd->logout_response) { iscsit_logout_post_handler() 4671 switch (cmd->logout_response) { iscsit_logout_post_handler() 4674 cmd->logout_cid); iscsit_logout_post_handler() 4685 switch (cmd->logout_response) { iscsit_logout_post_handler() 676 iscsit_add_reject_from_cmd( struct iscsi_cmd *cmd, u8 reason, bool add_to_conn, unsigned char *buf) iscsit_add_reject_from_cmd() argument 735 iscsit_map_iovec( struct iscsi_cmd *cmd, struct kvec *iov, u32 data_offset, u32 data_length) iscsit_map_iovec() argument 1198 iscsit_do_crypto_hash_sg( struct hash_desc *hash, struct iscsi_cmd *cmd, u32 data_offset, u32 data_length, u32 padding, u8 *pad_bytes) iscsit_do_crypto_hash_sg() argument 2407 iscsit_handle_immediate_data( struct iscsi_cmd *cmd, struct iscsi_scsi_req *hdr, u32 length) iscsit_handle_immediate_data() argument 2536 iscsit_send_conn_drop_async_message( struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_send_conn_drop_async_message() argument 2916 iscsit_send_unsolicited_nopin( struct iscsi_cmd *cmd, struct iscsi_conn *conn, int want_response) iscsit_send_unsolicited_nopin() argument 3027 iscsit_send_r2t( struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_send_r2t() argument 3102 iscsit_build_r2ts_for_cmd( struct iscsi_conn *conn, struct iscsi_cmd *cmd, bool recovery) iscsit_build_r2ts_for_cmd() argument 3592 iscsit_send_text_rsp( struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_send_text_rsp() argument 3663 iscsit_send_reject( struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_send_reject() argument 4643 iscsit_logout_post_handler( struct iscsi_cmd *cmd, struct iscsi_conn *conn) iscsit_logout_post_handler() argument
|
H A D | iscsi_target_erl0.c | 38 struct iscsi_cmd *cmd) iscsit_set_dataout_sequence_values() 40 struct iscsi_conn *conn = cmd->conn; iscsit_set_dataout_sequence_values() 45 if (cmd->unsolicited_data) { iscsit_set_dataout_sequence_values() 46 cmd->seq_start_offset = cmd->write_data_done; iscsit_set_dataout_sequence_values() 47 cmd->seq_end_offset = (cmd->write_data_done + iscsit_set_dataout_sequence_values() 48 ((cmd->se_cmd.data_length > iscsit_set_dataout_sequence_values() 50 conn->sess->sess_ops->FirstBurstLength : cmd->se_cmd.data_length)); iscsit_set_dataout_sequence_values() 57 if (!cmd->seq_start_offset && !cmd->seq_end_offset) { iscsit_set_dataout_sequence_values() 58 cmd->seq_start_offset = cmd->write_data_done; iscsit_set_dataout_sequence_values() 59 cmd->seq_end_offset = (cmd->se_cmd.data_length > iscsit_set_dataout_sequence_values() 61 (cmd->write_data_done + iscsit_set_dataout_sequence_values() 62 conn->sess->sess_ops->MaxBurstLength) : cmd->se_cmd.data_length; iscsit_set_dataout_sequence_values() 64 cmd->seq_start_offset = cmd->seq_end_offset; iscsit_set_dataout_sequence_values() 65 cmd->seq_end_offset = ((cmd->seq_end_offset + iscsit_set_dataout_sequence_values() 67 cmd->se_cmd.data_length) ? cmd->se_cmd.data_length : iscsit_set_dataout_sequence_values() 68 (cmd->seq_end_offset + iscsit_set_dataout_sequence_values() 74 struct iscsi_cmd *cmd, iscsit_dataout_within_command_recovery_check() 77 struct iscsi_conn *conn = cmd->conn; iscsit_dataout_within_command_recovery_check() 94 if ((cmd->cmd_flags & ICF_WITHIN_COMMAND_RECOVERY) && iscsit_dataout_within_command_recovery_check() 95 cmd->write_data_done != be32_to_cpu(hdr->offset)) iscsit_dataout_within_command_recovery_check() 98 cmd->cmd_flags &= ~ICF_WITHIN_COMMAND_RECOVERY; iscsit_dataout_within_command_recovery_check() 102 seq = iscsit_get_seq_holder(cmd, be32_to_cpu(hdr->offset), iscsit_dataout_within_command_recovery_check() 109 cmd->seq_ptr = seq; iscsit_dataout_within_command_recovery_check() 140 struct iscsi_cmd *cmd, iscsit_dataout_check_unsolicited_sequence() 144 struct iscsi_conn *conn = cmd->conn; iscsit_dataout_check_unsolicited_sequence() 149 if ((be32_to_cpu(hdr->offset) < cmd->seq_start_offset) || iscsit_dataout_check_unsolicited_sequence() 150 ((be32_to_cpu(hdr->offset) + payload_length) > cmd->seq_end_offset)) { iscsit_dataout_check_unsolicited_sequence() 153 " DataSequenceInOrder=Yes.\n", cmd->init_task_tag, iscsit_dataout_check_unsolicited_sequence() 154 be32_to_cpu(hdr->offset), payload_length, cmd->seq_start_offset, iscsit_dataout_check_unsolicited_sequence() 155 cmd->seq_end_offset); iscsit_dataout_check_unsolicited_sequence() 159 first_burst_len = (cmd->first_burst_len + payload_length); iscsit_dataout_check_unsolicited_sequence() 165 transport_send_check_condition_and_sense(&cmd->se_cmd, iscsit_dataout_check_unsolicited_sequence() 183 if ((first_burst_len != cmd->se_cmd.data_length) && iscsit_dataout_check_unsolicited_sequence() 189 cmd->se_cmd.data_length); iscsit_dataout_check_unsolicited_sequence() 190 transport_send_check_condition_and_sense(&cmd->se_cmd, iscsit_dataout_check_unsolicited_sequence() 198 " error.\n", cmd->init_task_tag, iscsit_dataout_check_unsolicited_sequence() 202 if (first_burst_len == cmd->se_cmd.data_length) { iscsit_dataout_check_unsolicited_sequence() 205 " error.\n", cmd->init_task_tag, cmd->se_cmd.data_length); iscsit_dataout_check_unsolicited_sequence() 215 struct iscsi_cmd *cmd, iscsit_dataout_check_sequence() 219 struct iscsi_conn *conn = cmd->conn; iscsit_dataout_check_sequence() 237 if ((be32_to_cpu(hdr->offset) < cmd->seq_start_offset) || iscsit_dataout_check_sequence() 238 ((be32_to_cpu(hdr->offset) + payload_length) > cmd->seq_end_offset)) { iscsit_dataout_check_sequence() 241 " DataSequenceInOrder=Yes.\n", cmd->init_task_tag, iscsit_dataout_check_sequence() 242 be32_to_cpu(hdr->offset), payload_length, cmd->seq_start_offset, iscsit_dataout_check_sequence() 243 cmd->seq_end_offset); iscsit_dataout_check_sequence() 250 next_burst_len = (cmd->next_burst_len + payload_length); iscsit_dataout_check_sequence() 252 seq = iscsit_get_seq_holder(cmd, be32_to_cpu(hdr->offset), iscsit_dataout_check_sequence() 259 cmd->seq_ptr = seq; iscsit_dataout_check_sequence() 273 " error.\n", cmd->init_task_tag, iscsit_dataout_check_sequence() 295 ((cmd->write_data_done + payload_length) < iscsit_dataout_check_sequence() 296 cmd->se_cmd.data_length)) { iscsit_dataout_check_sequence() 299 " error.\n", cmd->init_task_tag); iscsit_dataout_check_sequence() 306 " error.\n", cmd->init_task_tag); iscsit_dataout_check_sequence() 316 " not set, protocol error.", cmd->init_task_tag, iscsit_dataout_check_sequence() 320 if ((cmd->write_data_done + payload_length) == iscsit_dataout_check_sequence() 321 cmd->se_cmd.data_length) { iscsit_dataout_check_sequence() 325 cmd->init_task_tag); iscsit_dataout_check_sequence() 333 cmd->init_task_tag); iscsit_dataout_check_sequence() 344 struct iscsi_cmd *cmd, iscsit_dataout_check_datasn() 348 struct iscsi_conn *conn = cmd->conn; iscsit_dataout_check_datasn() 361 data_sn = cmd->data_sn; iscsit_dataout_check_datasn() 363 struct iscsi_seq *seq = cmd->seq_ptr; iscsit_dataout_check_datasn() 369 " higher than expected 0x%08x.\n", cmd->init_task_tag, iscsit_dataout_check_datasn() 375 cmd->init_task_tag, be32_to_cpu(hdr->datasn), data_sn); iscsit_dataout_check_datasn() 395 struct iscsi_cmd *cmd, iscsit_dataout_pre_datapduinorder_yes() 399 struct iscsi_conn *conn = cmd->conn; iscsit_dataout_pre_datapduinorder_yes() 413 if (be32_to_cpu(hdr->offset) != cmd->write_data_done) { iscsit_dataout_pre_datapduinorder_yes() 415 " %u different than expected %u.\n", cmd->init_task_tag, iscsit_dataout_pre_datapduinorder_yes() 416 be32_to_cpu(hdr->offset), cmd->write_data_done); iscsit_dataout_pre_datapduinorder_yes() 421 struct iscsi_seq *seq = cmd->seq_ptr; iscsit_dataout_pre_datapduinorder_yes() 425 " %u greater than expected %u.\n", cmd->init_task_tag, iscsit_dataout_pre_datapduinorder_yes() 432 cmd->init_task_tag, be32_to_cpu(hdr->offset), iscsit_dataout_pre_datapduinorder_yes() 451 return (recovery) ? iscsit_recover_dataout_sequence(cmd, iscsit_dataout_pre_datapduinorder_yes() 457 struct iscsi_cmd *cmd, iscsit_dataout_pre_datapduinorder_no() 464 pdu = iscsit_get_pdu_holder(cmd, be32_to_cpu(hdr->offset), iscsit_dataout_pre_datapduinorder_no() 469 cmd->pdu_ptr = pdu; iscsit_dataout_pre_datapduinorder_no() 478 " Offset: %u, Length: %u\n", cmd->init_task_tag, iscsit_dataout_pre_datapduinorder_no() 480 return iscsit_dump_data_payload(cmd->conn, payload_length, 1); iscsit_dataout_pre_datapduinorder_no() 488 static int iscsit_dataout_update_r2t(struct iscsi_cmd *cmd, u32 offset, u32 length) iscsit_dataout_update_r2t() argument 492 if (cmd->unsolicited_data) iscsit_dataout_update_r2t() 495 r2t = iscsit_get_r2t_for_eos(cmd, offset, length); iscsit_dataout_update_r2t() 499 spin_lock_bh(&cmd->r2t_lock); iscsit_dataout_update_r2t() 501 cmd->outstanding_r2ts--; iscsit_dataout_update_r2t() 502 spin_unlock_bh(&cmd->r2t_lock); iscsit_dataout_update_r2t() 508 struct iscsi_cmd *cmd, iscsit_dataout_update_datapduinorder_no() 513 struct iscsi_pdu *pdu = cmd->pdu_ptr; iscsit_dataout_update_datapduinorder_no() 532 ret = iscsit_dataout_datapduinorder_no_fbit(cmd, pdu); iscsit_dataout_update_datapduinorder_no() 541 struct iscsi_cmd *cmd, iscsit_dataout_post_crc_passed() 545 struct iscsi_conn *conn = cmd->conn; iscsit_dataout_post_crc_passed() 550 if (cmd->unsolicited_data) { iscsit_dataout_post_crc_passed() 551 if ((cmd->first_burst_len + payload_length) == iscsit_dataout_post_crc_passed() 553 if (iscsit_dataout_update_r2t(cmd, be32_to_cpu(hdr->offset), iscsit_dataout_post_crc_passed() 560 ret = iscsit_dataout_update_datapduinorder_no(cmd, iscsit_dataout_post_crc_passed() 567 cmd->first_burst_len += payload_length; iscsit_dataout_post_crc_passed() 570 cmd->data_sn++; iscsit_dataout_post_crc_passed() 572 seq = cmd->seq_ptr; iscsit_dataout_post_crc_passed() 580 cmd->first_burst_len = 0; iscsit_dataout_post_crc_passed() 581 cmd->unsolicited_data = 0; iscsit_dataout_post_crc_passed() 585 if ((cmd->next_burst_len + payload_length) == iscsit_dataout_post_crc_passed() 587 if (iscsit_dataout_update_r2t(cmd, iscsit_dataout_post_crc_passed() 596 cmd, be32_to_cpu(hdr->datasn), iscsit_dataout_post_crc_passed() 602 cmd->next_burst_len += payload_length; iscsit_dataout_post_crc_passed() 603 cmd->data_sn++; iscsit_dataout_post_crc_passed() 606 cmd->next_burst_len = 0; iscsit_dataout_post_crc_passed() 608 seq = cmd->seq_ptr; iscsit_dataout_post_crc_passed() 612 if (iscsit_dataout_update_r2t(cmd, iscsit_dataout_post_crc_passed() 621 cmd, be32_to_cpu(hdr->datasn), iscsit_dataout_post_crc_passed() 639 cmd->data_sn = 0; iscsit_dataout_post_crc_passed() 641 cmd->write_data_done += payload_length; iscsit_dataout_post_crc_passed() 643 if (cmd->write_data_done == cmd->se_cmd.data_length) iscsit_dataout_post_crc_passed() 652 struct iscsi_cmd *cmd, iscsit_dataout_post_crc_failed() 655 struct iscsi_conn *conn = cmd->conn; iscsit_dataout_post_crc_failed() 665 pdu = cmd->pdu_ptr; iscsit_dataout_post_crc_failed() 681 return iscsit_recover_dataout_sequence(cmd, be32_to_cpu(hdr->offset), iscsit_dataout_post_crc_failed() 690 struct iscsi_cmd *cmd, iscsit_check_pre_dataout() 694 struct iscsi_conn *conn = cmd->conn; iscsit_check_pre_dataout() 696 ret = iscsit_dataout_within_command_recovery_check(cmd, buf); iscsit_check_pre_dataout() 701 ret = iscsit_dataout_check_datasn(cmd, buf); iscsit_check_pre_dataout() 706 if (cmd->unsolicited_data) { iscsit_check_pre_dataout() 707 ret = iscsit_dataout_check_unsolicited_sequence(cmd, buf); iscsit_check_pre_dataout() 712 ret = iscsit_dataout_check_sequence(cmd, buf); iscsit_check_pre_dataout() 719 iscsit_dataout_pre_datapduinorder_yes(cmd, buf) : iscsit_check_pre_dataout() 720 iscsit_dataout_pre_datapduinorder_no(cmd, buf); iscsit_check_pre_dataout() 728 struct iscsi_cmd *cmd, iscsit_check_post_dataout() 732 struct iscsi_conn *conn = cmd->conn; iscsit_check_post_dataout() 734 cmd->dataout_timeout_retries = 0; iscsit_check_post_dataout() 737 return iscsit_dataout_post_crc_passed(cmd, buf); iscsit_check_post_dataout() 742 iscsit_reject_cmd(cmd, ISCSI_REASON_DATA_DIGEST_ERROR, iscsit_check_post_dataout() 747 iscsit_reject_cmd(cmd, ISCSI_REASON_DATA_DIGEST_ERROR, buf); iscsit_check_post_dataout() 748 return iscsit_dataout_post_crc_failed(cmd, buf); iscsit_check_post_dataout() 37 iscsit_set_dataout_sequence_values( struct iscsi_cmd *cmd) iscsit_set_dataout_sequence_values() argument 73 iscsit_dataout_within_command_recovery_check( struct iscsi_cmd *cmd, unsigned char *buf) iscsit_dataout_within_command_recovery_check() argument 139 iscsit_dataout_check_unsolicited_sequence( struct iscsi_cmd *cmd, unsigned char *buf) iscsit_dataout_check_unsolicited_sequence() argument 214 iscsit_dataout_check_sequence( struct iscsi_cmd *cmd, unsigned char *buf) iscsit_dataout_check_sequence() argument 343 iscsit_dataout_check_datasn( struct iscsi_cmd *cmd, unsigned char *buf) iscsit_dataout_check_datasn() argument 394 iscsit_dataout_pre_datapduinorder_yes( struct iscsi_cmd *cmd, unsigned char *buf) iscsit_dataout_pre_datapduinorder_yes() argument 456 iscsit_dataout_pre_datapduinorder_no( struct iscsi_cmd *cmd, unsigned char *buf) iscsit_dataout_pre_datapduinorder_no() argument 507 iscsit_dataout_update_datapduinorder_no( struct iscsi_cmd *cmd, u32 data_sn, int f_bit) iscsit_dataout_update_datapduinorder_no() argument 540 iscsit_dataout_post_crc_passed( struct iscsi_cmd *cmd, unsigned char *buf) iscsit_dataout_post_crc_passed() argument 651 iscsit_dataout_post_crc_failed( struct iscsi_cmd *cmd, unsigned char *buf) iscsit_dataout_post_crc_failed() argument 689 iscsit_check_pre_dataout( struct iscsi_cmd *cmd, unsigned char *buf) iscsit_check_pre_dataout() argument 727 iscsit_check_post_dataout( struct iscsi_cmd *cmd, unsigned char *buf, u8 data_crc_failed) iscsit_check_post_dataout() argument
|
/linux-4.1.27/drivers/media/tuners/ |
H A D | si2157.c | 22 static int si2157_cmd_execute(struct i2c_client *client, struct si2157_cmd *cmd) si2157_cmd_execute() argument 30 if (cmd->wlen) { si2157_cmd_execute() 31 /* write cmd and args for firmware */ si2157_cmd_execute() 32 ret = i2c_master_send(client, cmd->args, cmd->wlen); si2157_cmd_execute() 35 } else if (ret != cmd->wlen) { si2157_cmd_execute() 41 if (cmd->rlen) { si2157_cmd_execute() 42 /* wait cmd execution terminate */ si2157_cmd_execute() 46 ret = i2c_master_recv(client, cmd->args, cmd->rlen); si2157_cmd_execute() 49 } else if (ret != cmd->rlen) { si2157_cmd_execute() 55 if ((cmd->args[0] >> 7) & 0x01) si2157_cmd_execute() 59 dev_dbg(&client->dev, "cmd execution took %d ms\n", si2157_cmd_execute() 63 if (!((cmd->args[0] >> 7) & 0x01)) { si2157_cmd_execute() 83 struct si2157_cmd cmd; si2157_init() local 95 memcpy(cmd.args, "\xc0\x05\x01\x00\x00\x0b\x00\x00\x01", 9); si2157_init() 96 cmd.wlen = 9; si2157_init() 98 memcpy(cmd.args, "\xc0\x00\x0c\x00\x00\x01\x01\x01\x01\x01\x01\x02\x00\x00\x01", 15); si2157_init() 99 cmd.wlen = 15; si2157_init() 101 cmd.rlen = 1; si2157_init() 102 ret = si2157_cmd_execute(client, &cmd); si2157_init() 107 memcpy(cmd.args, "\x02", 1); si2157_init() 108 cmd.wlen = 1; si2157_init() 109 cmd.rlen = 13; si2157_init() 110 ret = si2157_cmd_execute(client, &cmd); si2157_init() 114 chip_id = cmd.args[1] << 24 | cmd.args[2] << 16 | cmd.args[3] << 8 | si2157_init() 115 cmd.args[4] << 0; si2157_init() 135 cmd.args[2], cmd.args[1], si2157_init() 136 cmd.args[3], cmd.args[4]); si2157_init() 142 cmd.args[2], cmd.args[1], cmd.args[3], cmd.args[4]); si2157_init() 173 memcpy(cmd.args, &fw->data[(fw->size - remaining) + 1], len); si2157_init() 174 cmd.wlen = len; si2157_init() 175 cmd.rlen = 1; si2157_init() 176 ret = si2157_cmd_execute(client, &cmd); si2157_init() 188 memcpy(cmd.args, "\x01\x01", 2); si2157_init() 189 cmd.wlen = 2; si2157_init() 190 cmd.rlen = 1; si2157_init() 191 ret = si2157_cmd_execute(client, &cmd); si2157_init() 196 memcpy(cmd.args, "\x11", 1); si2157_init() 197 cmd.wlen = 1; si2157_init() 198 cmd.rlen = 10; si2157_init() 199 ret = si2157_cmd_execute(client, &cmd); si2157_init() 204 cmd.args[6], cmd.args[7], cmd.args[8]); si2157_init() 224 struct si2157_cmd cmd; si2157_sleep() local 231 memcpy(cmd.args, "\x16\x00", 2); si2157_sleep() 232 cmd.wlen = 2; si2157_sleep() 233 cmd.rlen = 1; si2157_sleep() 234 ret = si2157_cmd_execute(client, &cmd); si2157_sleep() 250 struct si2157_cmd cmd; si2157_set_params() local 293 memcpy(cmd.args, "\x14\x00\x03\x07\x00\x00", 6); si2157_set_params() 294 cmd.args[4] = delivery_system | bandwidth; si2157_set_params() 296 cmd.args[5] = 0x01; si2157_set_params() 297 cmd.wlen = 6; si2157_set_params() 298 cmd.rlen = 4; si2157_set_params() 299 ret = si2157_cmd_execute(client, &cmd); si2157_set_params() 304 memcpy(cmd.args, "\x14\x00\x02\x07\x00\x01", 6); si2157_set_params() 306 memcpy(cmd.args, "\x14\x00\x02\x07\x01\x00", 6); si2157_set_params() 307 cmd.wlen = 6; si2157_set_params() 308 cmd.rlen = 4; si2157_set_params() 309 ret = si2157_cmd_execute(client, &cmd); si2157_set_params() 315 memcpy(cmd.args, "\x14\x00\x06\x07", 4); si2157_set_params() 316 cmd.args[4] = (if_frequency / 1000) & 0xff; si2157_set_params() 317 cmd.args[5] = ((if_frequency / 1000) >> 8) & 0xff; si2157_set_params() 318 cmd.wlen = 6; si2157_set_params() 319 cmd.rlen = 4; si2157_set_params() 320 ret = si2157_cmd_execute(client, &cmd); si2157_set_params() 328 memcpy(cmd.args, "\x41\x00\x00\x00\x00\x00\x00\x00", 8); si2157_set_params() 329 cmd.args[4] = (c->frequency >> 0) & 0xff; si2157_set_params() 330 cmd.args[5] = (c->frequency >> 8) & 0xff; si2157_set_params() 331 cmd.args[6] = (c->frequency >> 16) & 0xff; si2157_set_params() 332 cmd.args[7] = (c->frequency >> 24) & 0xff; si2157_set_params() 333 cmd.wlen = 8; si2157_set_params() 334 cmd.rlen = 1; si2157_set_params() 335 ret = si2157_cmd_execute(client, &cmd); si2157_set_params() 373 struct si2157_cmd cmd; si2157_probe() local 392 cmd.wlen = 0; si2157_probe() 393 cmd.rlen = 1; si2157_probe() 394 ret = si2157_cmd_execute(client, &cmd); si2157_probe()
|
/linux-4.1.27/drivers/media/dvb-frontends/ |
H A D | si2168.c | 22 static int si2168_cmd_execute(struct i2c_client *client, struct si2168_cmd *cmd) si2168_cmd_execute() argument 30 if (cmd->wlen) { si2168_cmd_execute() 31 /* write cmd and args for firmware */ si2168_cmd_execute() 32 ret = i2c_master_send(client, cmd->args, cmd->wlen); si2168_cmd_execute() 35 } else if (ret != cmd->wlen) { si2168_cmd_execute() 41 if (cmd->rlen) { si2168_cmd_execute() 42 /* wait cmd execution terminate */ si2168_cmd_execute() 46 ret = i2c_master_recv(client, cmd->args, cmd->rlen); si2168_cmd_execute() 49 } else if (ret != cmd->rlen) { si2168_cmd_execute() 55 if ((cmd->args[0] >> 7) & 0x01) si2168_cmd_execute() 59 dev_dbg(&client->dev, "cmd execution took %d ms\n", si2168_cmd_execute() 63 if (!((cmd->args[0] >> 7) & 0x01)) { si2168_cmd_execute() 84 struct si2168_cmd cmd; si2168_read_status() local 95 memcpy(cmd.args, "\xa0\x01", 2); si2168_read_status() 96 cmd.wlen = 2; si2168_read_status() 97 cmd.rlen = 13; si2168_read_status() 100 memcpy(cmd.args, "\x90\x01", 2); si2168_read_status() 101 cmd.wlen = 2; si2168_read_status() 102 cmd.rlen = 9; si2168_read_status() 105 memcpy(cmd.args, "\x50\x01", 2); si2168_read_status() 106 cmd.wlen = 2; si2168_read_status() 107 cmd.rlen = 14; si2168_read_status() 114 ret = si2168_cmd_execute(client, &cmd); si2168_read_status() 118 switch ((cmd.args[2] >> 1) & 0x03) { si2168_read_status() 133 c->cnr.stat[0].svalue = cmd.args[3] * 1000 / 4; si2168_read_status() 140 *status, cmd.rlen, cmd.args); si2168_read_status() 154 struct si2168_cmd cmd; si2168_set_frontend() local 210 memcpy(cmd.args, "\x88\x02\x02\x02\x02", 5); si2168_set_frontend() 211 cmd.wlen = 5; si2168_set_frontend() 212 cmd.rlen = 5; si2168_set_frontend() 213 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 219 memcpy(cmd.args, "\x89\x21\x06\x11\xff\x98", 6); si2168_set_frontend() 221 memcpy(cmd.args, "\x89\x21\x06\x11\x89\xf0", 6); si2168_set_frontend() 223 memcpy(cmd.args, "\x89\x21\x06\x11\x89\x20", 6); si2168_set_frontend() 224 cmd.wlen = 6; si2168_set_frontend() 225 cmd.rlen = 3; si2168_set_frontend() 226 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 232 cmd.args[0] = 0x52; si2168_set_frontend() 233 cmd.args[1] = c->stream_id & 0xff; si2168_set_frontend() 234 cmd.args[2] = c->stream_id == NO_STREAM_ID_FILTER ? 0 : 1; si2168_set_frontend() 235 cmd.wlen = 3; si2168_set_frontend() 236 cmd.rlen = 1; si2168_set_frontend() 237 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 242 memcpy(cmd.args, "\x51\x03", 2); si2168_set_frontend() 243 cmd.wlen = 2; si2168_set_frontend() 244 cmd.rlen = 12; si2168_set_frontend() 245 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 249 memcpy(cmd.args, "\x12\x08\x04", 3); si2168_set_frontend() 250 cmd.wlen = 3; si2168_set_frontend() 251 cmd.rlen = 3; si2168_set_frontend() 252 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 256 memcpy(cmd.args, "\x14\x00\x0c\x10\x12\x00", 6); si2168_set_frontend() 257 cmd.wlen = 6; si2168_set_frontend() 258 cmd.rlen = 4; si2168_set_frontend() 259 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 263 memcpy(cmd.args, "\x14\x00\x06\x10\x24\x00", 6); si2168_set_frontend() 264 cmd.wlen = 6; si2168_set_frontend() 265 cmd.rlen = 4; si2168_set_frontend() 266 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 270 memcpy(cmd.args, "\x14\x00\x07\x10\x00\x24", 6); si2168_set_frontend() 271 cmd.wlen = 6; si2168_set_frontend() 272 cmd.rlen = 4; si2168_set_frontend() 273 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 277 memcpy(cmd.args, "\x14\x00\x0a\x10\x00\x00", 6); si2168_set_frontend() 278 cmd.args[4] = delivery_system | bandwidth; si2168_set_frontend() 279 cmd.wlen = 6; si2168_set_frontend() 280 cmd.rlen = 4; si2168_set_frontend() 281 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 287 memcpy(cmd.args, "\x14\x00\x02\x11", 4); si2168_set_frontend() 288 cmd.args[4] = ((c->symbol_rate / 1000) >> 0) & 0xff; si2168_set_frontend() 289 cmd.args[5] = ((c->symbol_rate / 1000) >> 8) & 0xff; si2168_set_frontend() 290 cmd.wlen = 6; si2168_set_frontend() 291 cmd.rlen = 4; si2168_set_frontend() 292 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 297 memcpy(cmd.args, "\x14\x00\x0f\x10\x10\x00", 6); si2168_set_frontend() 298 cmd.wlen = 6; si2168_set_frontend() 299 cmd.rlen = 4; si2168_set_frontend() 300 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 304 memcpy(cmd.args, "\x14\x00\x09\x10\xe3\x08", 6); si2168_set_frontend() 305 cmd.args[5] |= dev->ts_clock_inv ? 0x00 : 0x10; si2168_set_frontend() 306 cmd.wlen = 6; si2168_set_frontend() 307 cmd.rlen = 4; si2168_set_frontend() 308 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 312 memcpy(cmd.args, "\x14\x00\x08\x10\xd7\x05", 6); si2168_set_frontend() 313 cmd.args[5] |= dev->ts_clock_inv ? 0x00 : 0x10; si2168_set_frontend() 314 cmd.wlen = 6; si2168_set_frontend() 315 cmd.rlen = 4; si2168_set_frontend() 316 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 320 memcpy(cmd.args, "\x14\x00\x01\x12\x00\x00", 6); si2168_set_frontend() 321 cmd.wlen = 6; si2168_set_frontend() 322 cmd.rlen = 4; si2168_set_frontend() 323 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 327 memcpy(cmd.args, "\x14\x00\x01\x03\x0c\x00", 6); si2168_set_frontend() 328 cmd.wlen = 6; si2168_set_frontend() 329 cmd.rlen = 4; si2168_set_frontend() 330 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 334 memcpy(cmd.args, "\x85", 1); si2168_set_frontend() 335 cmd.wlen = 1; si2168_set_frontend() 336 cmd.rlen = 1; si2168_set_frontend() 337 ret = si2168_cmd_execute(client, &cmd); si2168_set_frontend() 356 struct si2168_cmd cmd; si2168_init() local 362 memcpy(cmd.args, "\xc0\x12\x00\x0c\x00\x0d\x16\x00\x00\x00\x00\x00\x00", 13); si2168_init() 363 cmd.wlen = 13; si2168_init() 364 cmd.rlen = 0; si2168_init() 365 ret = si2168_cmd_execute(client, &cmd); si2168_init() 371 memcpy(cmd.args, "\xc0\x06\x08\x0f\x00\x20\x21\x01", 8); si2168_init() 372 cmd.wlen = 8; si2168_init() 373 cmd.rlen = 1; si2168_init() 374 ret = si2168_cmd_execute(client, &cmd); si2168_init() 378 memcpy(cmd.args, "\x85", 1); si2168_init() 379 cmd.wlen = 1; si2168_init() 380 cmd.rlen = 1; si2168_init() 381 ret = si2168_cmd_execute(client, &cmd); si2168_init() 389 memcpy(cmd.args, "\xc0\x06\x01\x0f\x00\x20\x20\x01", 8); si2168_init() 390 cmd.wlen = 8; si2168_init() 391 cmd.rlen = 1; si2168_init() 392 ret = si2168_cmd_execute(client, &cmd); si2168_init() 397 memcpy(cmd.args, "\x02", 1); si2168_init() 398 cmd.wlen = 1; si2168_init() 399 cmd.rlen = 13; si2168_init() 400 ret = si2168_cmd_execute(client, &cmd); si2168_init() 404 chip_id = cmd.args[1] << 24 | cmd.args[2] << 16 | cmd.args[3] << 8 | si2168_init() 405 cmd.args[4] << 0; si2168_init() 423 cmd.args[2], cmd.args[1], si2168_init() 424 cmd.args[3], cmd.args[4]); si2168_init() 430 cmd.args[2], cmd.args[1], cmd.args[3], cmd.args[4]); si2168_init() 464 memcpy(cmd.args, &fw->data[(fw->size - remaining) + 1], len); si2168_init() 465 cmd.wlen = len; si2168_init() 466 cmd.rlen = 1; si2168_init() 467 ret = si2168_cmd_execute(client, &cmd); si2168_init() 475 memcpy(cmd.args, &fw->data[fw->size - remaining], len); si2168_init() 476 cmd.wlen = len; si2168_init() 477 cmd.rlen = 1; si2168_init() 478 ret = si2168_cmd_execute(client, &cmd); si2168_init() 494 memcpy(cmd.args, "\x01\x01", 2); si2168_init() 495 cmd.wlen = 2; si2168_init() 496 cmd.rlen = 1; si2168_init() 497 ret = si2168_cmd_execute(client, &cmd); si2168_init() 502 memcpy(cmd.args, "\x11", 1); si2168_init() 503 cmd.wlen = 1; si2168_init() 504 cmd.rlen = 10; si2168_init() 505 ret = si2168_cmd_execute(client, &cmd); si2168_init() 510 cmd.args[6], cmd.args[7], cmd.args[8]); si2168_init() 513 memcpy(cmd.args, "\x14\x00\x01\x10\x10\x00", 6); si2168_init() 514 cmd.args[4] |= dev->ts_mode; si2168_init() 515 cmd.wlen = 6; si2168_init() 516 cmd.rlen = 4; si2168_init() 517 ret = si2168_cmd_execute(client, &cmd); si2168_init() 539 struct si2168_cmd cmd; si2168_sleep() local 545 memcpy(cmd.args, "\x13", 1); si2168_sleep() 546 cmd.wlen = 1; si2168_sleep() 547 cmd.rlen = 0; si2168_sleep() 548 ret = si2168_cmd_execute(client, &cmd); si2168_sleep()
|
H A D | tda10071.c | 163 struct tda10071_cmd *cmd) tda10071_cmd_execute() 173 /* write cmd and args for firmware */ tda10071_cmd_execute() 174 ret = tda10071_wr_regs(priv, 0x00, cmd->args, cmd->len); tda10071_cmd_execute() 178 /* start cmd execution */ tda10071_cmd_execute() 183 /* wait cmd execution terminate */ tda10071_cmd_execute() 209 struct tda10071_cmd cmd; tda10071_set_tone() local 235 cmd.args[0] = CMD_LNB_PCB_CONFIG; tda10071_set_tone() 236 cmd.args[1] = 0; tda10071_set_tone() 237 cmd.args[2] = 0x00; tda10071_set_tone() 238 cmd.args[3] = 0x00; tda10071_set_tone() 239 cmd.args[4] = tone; tda10071_set_tone() 240 cmd.len = 5; tda10071_set_tone() 241 ret = tda10071_cmd_execute(priv, &cmd); tda10071_set_tone() 255 struct tda10071_cmd cmd; tda10071_set_voltage() local 283 cmd.args[0] = CMD_LNB_SET_DC_LEVEL; tda10071_set_voltage() 284 cmd.args[1] = 0; tda10071_set_voltage() 285 cmd.args[2] = voltage; tda10071_set_voltage() 286 cmd.len = 3; tda10071_set_voltage() 287 ret = tda10071_cmd_execute(priv, &cmd); tda10071_set_voltage() 301 struct tda10071_cmd cmd; tda10071_diseqc_send_master_cmd() local 338 cmd.args[0] = CMD_LNB_SEND_DISEQC; tda10071_diseqc_send_master_cmd() 339 cmd.args[1] = 0; tda10071_diseqc_send_master_cmd() 340 cmd.args[2] = 0; tda10071_diseqc_send_master_cmd() 341 cmd.args[3] = 0; tda10071_diseqc_send_master_cmd() 342 cmd.args[4] = 2; tda10071_diseqc_send_master_cmd() 343 cmd.args[5] = 0; tda10071_diseqc_send_master_cmd() 344 cmd.args[6] = diseqc_cmd->msg_len; tda10071_diseqc_send_master_cmd() 345 memcpy(&cmd.args[7], diseqc_cmd->msg, diseqc_cmd->msg_len); tda10071_diseqc_send_master_cmd() 346 cmd.len = 7 + diseqc_cmd->msg_len; tda10071_diseqc_send_master_cmd() 347 ret = tda10071_cmd_execute(priv, &cmd); tda10071_diseqc_send_master_cmd() 361 struct tda10071_cmd cmd; tda10071_diseqc_recv_slave_reply() local 398 cmd.args[0] = CMD_LNB_UPDATE_REPLY; tda10071_diseqc_recv_slave_reply() 399 cmd.args[1] = 0; tda10071_diseqc_recv_slave_reply() 400 cmd.len = 2; tda10071_diseqc_recv_slave_reply() 401 ret = tda10071_cmd_execute(priv, &cmd); tda10071_diseqc_recv_slave_reply() 405 ret = tda10071_rd_regs(priv, cmd.len, reply->msg, reply->msg_len); tda10071_diseqc_recv_slave_reply() 419 struct tda10071_cmd cmd; tda10071_diseqc_send_burst() local 465 cmd.args[0] = CMD_LNB_SEND_TONEBURST; tda10071_diseqc_send_burst() 466 cmd.args[1] = 0; tda10071_diseqc_send_burst() 467 cmd.args[2] = burst; tda10071_diseqc_send_burst() 468 cmd.len = 3; tda10071_diseqc_send_burst() 469 ret = tda10071_cmd_execute(priv, &cmd); tda10071_diseqc_send_burst() 540 struct tda10071_cmd cmd; tda10071_read_signal_strength() local 550 cmd.args[0] = CMD_GET_AGCACC; tda10071_read_signal_strength() 551 cmd.args[1] = 0; tda10071_read_signal_strength() 552 cmd.len = 2; tda10071_read_signal_strength() 553 ret = tda10071_cmd_execute(priv, &cmd); tda10071_read_signal_strength() 579 struct tda10071_cmd cmd; tda10071_read_ber() local 618 cmd.args[0] = CMD_BER_UPDATE_COUNTERS; tda10071_read_ber() 619 cmd.args[1] = 0; tda10071_read_ber() 620 cmd.args[2] = i; tda10071_read_ber() 621 cmd.len = 3; tda10071_read_ber() 622 ret = tda10071_cmd_execute(priv, &cmd); tda10071_read_ber() 626 ret = tda10071_rd_regs(priv, cmd.len, buf, len); tda10071_read_ber() 667 struct tda10071_cmd cmd; tda10071_set_frontend() local 786 cmd.args[0] = CMD_CHANGE_CHANNEL; tda10071_set_frontend() 787 cmd.args[1] = 0; tda10071_set_frontend() 788 cmd.args[2] = mode; tda10071_set_frontend() 789 cmd.args[3] = (c->frequency >> 16) & 0xff; tda10071_set_frontend() 790 cmd.args[4] = (c->frequency >> 8) & 0xff; tda10071_set_frontend() 791 cmd.args[5] = (c->frequency >> 0) & 0xff; tda10071_set_frontend() 792 cmd.args[6] = ((c->symbol_rate / 1000) >> 8) & 0xff; tda10071_set_frontend() 793 cmd.args[7] = ((c->symbol_rate / 1000) >> 0) & 0xff; tda10071_set_frontend() 794 cmd.args[8] = (tda10071_ops.info.frequency_tolerance >> 8) & 0xff; tda10071_set_frontend() 795 cmd.args[9] = (tda10071_ops.info.frequency_tolerance >> 0) & 0xff; tda10071_set_frontend() 796 cmd.args[10] = rolloff; tda10071_set_frontend() 797 cmd.args[11] = inversion; tda10071_set_frontend() 798 cmd.args[12] = pilot; tda10071_set_frontend() 799 cmd.args[13] = 0x00; tda10071_set_frontend() 800 cmd.args[14] = 0x00; tda10071_set_frontend() 801 cmd.len = 15; tda10071_set_frontend() 802 ret = tda10071_cmd_execute(priv, &cmd); tda10071_set_frontend() 874 struct tda10071_cmd cmd; tda10071_init() local 947 cmd.args[0] = CMD_SET_SLEEP_MODE; tda10071_init() 948 cmd.args[1] = 0; tda10071_init() 949 cmd.args[2] = 0; tda10071_init() 950 cmd.len = 3; tda10071_init() 951 ret = tda10071_cmd_execute(priv, &cmd); tda10071_init() 1043 cmd.args[0] = CMD_GET_FW_VERSION; tda10071_init() 1044 cmd.len = 1; tda10071_init() 1045 ret = tda10071_cmd_execute(priv, &cmd); tda10071_init() 1049 ret = tda10071_rd_regs(priv, cmd.len, buf, 4); tda10071_init() 1062 cmd.args[0] = CMD_DEMOD_INIT; tda10071_init() 1063 cmd.args[1] = ((priv->cfg.xtal / 1000) >> 8) & 0xff; tda10071_init() 1064 cmd.args[2] = ((priv->cfg.xtal / 1000) >> 0) & 0xff; tda10071_init() 1065 cmd.args[3] = buf[0]; tda10071_init() 1066 cmd.args[4] = buf[1]; tda10071_init() 1067 cmd.args[5] = priv->cfg.pll_multiplier; tda10071_init() 1068 cmd.args[6] = priv->cfg.spec_inv; tda10071_init() 1069 cmd.args[7] = 0x00; tda10071_init() 1070 cmd.len = 8; tda10071_init() 1071 ret = tda10071_cmd_execute(priv, &cmd); tda10071_init() 1080 cmd.args[0] = CMD_TUNER_INIT; tda10071_init() 1081 cmd.args[1] = 0x00; tda10071_init() 1082 cmd.args[2] = 0x00; tda10071_init() 1083 cmd.args[3] = 0x00; tda10071_init() 1084 cmd.args[4] = 0x00; tda10071_init() 1085 cmd.args[5] = tmp; tda10071_init() 1086 cmd.args[6] = 0x00; tda10071_init() 1087 cmd.args[7] = 0x03; tda10071_init() 1088 cmd.args[8] = 0x02; tda10071_init() 1089 cmd.args[9] = 0x02; tda10071_init() 1090 cmd.args[10] = 0x00; tda10071_init() 1091 cmd.args[11] = 0x00; tda10071_init() 1092 cmd.args[12] = 0x00; tda10071_init() 1093 cmd.args[13] = 0x00; tda10071_init() 1094 cmd.args[14] = 0x00; tda10071_init() 1095 cmd.len = 15; tda10071_init() 1096 ret = tda10071_cmd_execute(priv, &cmd); tda10071_init() 1100 cmd.args[0] = CMD_MPEG_CONFIG; tda10071_init() 1101 cmd.args[1] = 0; tda10071_init() 1102 cmd.args[2] = priv->cfg.ts_mode; tda10071_init() 1103 cmd.args[3] = 0x00; tda10071_init() 1104 cmd.args[4] = 0x04; tda10071_init() 1105 cmd.args[5] = 0x00; tda10071_init() 1106 cmd.len = 6; tda10071_init() 1107 ret = tda10071_cmd_execute(priv, &cmd); tda10071_init() 1115 cmd.args[0] = CMD_LNB_CONFIG; tda10071_init() 1116 cmd.args[1] = 0; tda10071_init() 1117 cmd.args[2] = 150; tda10071_init() 1118 cmd.args[3] = 3; tda10071_init() 1119 cmd.args[4] = 22; tda10071_init() 1120 cmd.args[5] = 1; tda10071_init() 1121 cmd.args[6] = 1; tda10071_init() 1122 cmd.args[7] = 30; tda10071_init() 1123 cmd.args[8] = 30; tda10071_init() 1124 cmd.args[9] = 30; tda10071_init() 1125 cmd.args[10] = 30; tda10071_init() 1126 cmd.len = 11; tda10071_init() 1127 ret = tda10071_cmd_execute(priv, &cmd); tda10071_init() 1131 cmd.args[0] = CMD_BER_CONTROL; tda10071_init() 1132 cmd.args[1] = 0; tda10071_init() 1133 cmd.args[2] = 14; tda10071_init() 1134 cmd.args[3] = 14; tda10071_init() 1135 cmd.len = 4; tda10071_init() 1136 ret = tda10071_cmd_execute(priv, &cmd); tda10071_init() 1152 struct tda10071_cmd cmd; tda10071_sleep() local 1172 cmd.args[0] = CMD_SET_SLEEP_MODE; tda10071_sleep() 1173 cmd.args[1] = 0; tda10071_sleep() 1174 cmd.args[2] = 1; tda10071_sleep() 1175 cmd.len = 3; tda10071_sleep() 1176 ret = tda10071_cmd_execute(priv, &cmd); tda10071_sleep() 162 tda10071_cmd_execute(struct tda10071_priv *priv, struct tda10071_cmd *cmd) tda10071_cmd_execute() argument
|
H A D | cx24117.c | 291 struct cx24117_cmd *cmd) cx24117_writecmd() 298 "%s() demod%d i2c wr cmd len=%d\n", cx24117_writecmd() 299 __func__, state->demod, cmd->len); cx24117_writecmd() 302 memcpy(&buf[1], cmd->args, cmd->len); cx24117_writecmd() 306 msg.len = cmd->len+1; cx24117_writecmd() 311 "%s: demod%d i2c wr cmd err(%i) len=%d\n", cx24117_writecmd() 312 KBUILD_MODNAME, state->demod, ret, cmd->len); cx24117_writecmd() 505 struct cx24117_cmd *cmd) cx24117_cmd_execute_nolock() 519 cx24117_writecmd(state, cmd); cx24117_cmd_execute_nolock() 521 /* Start execution and wait for cmd to terminate */ cx24117_cmd_execute_nolock() 537 static int cx24117_cmd_execute(struct dvb_frontend *fe, struct cx24117_cmd *cmd) cx24117_cmd_execute() argument 543 ret = cx24117_cmd_execute_nolock(fe, cmd); cx24117_cmd_execute() 553 struct cx24117_cmd cmd; cx24117_load_firmware() local 641 cmd.args[0] = CMD_DEMODINIT; cx24117_load_firmware() 642 cmd.args[1] = 0x00; cx24117_load_firmware() 643 cmd.args[2] = 0x01; cx24117_load_firmware() 644 cmd.args[3] = 0x00; cx24117_load_firmware() 645 cmd.len = 4; cx24117_load_firmware() 646 ret = cx24117_cmd_execute_nolock(fe, &cmd); cx24117_load_firmware() 651 cmd.args[0] = CMD_SET_VCOFREQ; cx24117_load_firmware() 652 cmd.args[1] = 0x06; cx24117_load_firmware() 653 cmd.args[2] = 0x2b; cx24117_load_firmware() 654 cmd.args[3] = 0xd8; cx24117_load_firmware() 655 cmd.args[4] = 0xa5; cx24117_load_firmware() 656 cmd.args[5] = 0xee; cx24117_load_firmware() 657 cmd.args[6] = 0x03; cx24117_load_firmware() 658 cmd.args[7] = 0x9d; cx24117_load_firmware() 659 cmd.args[8] = 0xfc; cx24117_load_firmware() 660 cmd.args[9] = 0x06; cx24117_load_firmware() 661 cmd.args[10] = 0x02; cx24117_load_firmware() 662 cmd.args[11] = 0x9d; cx24117_load_firmware() 663 cmd.args[12] = 0xfc; cx24117_load_firmware() 664 cmd.len = 13; cx24117_load_firmware() 665 ret = cx24117_cmd_execute_nolock(fe, &cmd); cx24117_load_firmware() 670 cmd.args[0] = CMD_TUNERINIT; cx24117_load_firmware() 671 cmd.args[1] = 0x00; cx24117_load_firmware() 672 cmd.args[2] = 0x01; cx24117_load_firmware() 673 cmd.args[3] = 0x00; cx24117_load_firmware() 674 cmd.args[4] = 0x00; cx24117_load_firmware() 675 cmd.args[5] = 0x01; cx24117_load_firmware() 676 cmd.args[6] = 0x01; cx24117_load_firmware() 677 cmd.args[7] = 0x01; cx24117_load_firmware() 678 cmd.args[8] = 0x00; cx24117_load_firmware() 679 cmd.args[9] = 0x05; cx24117_load_firmware() 680 cmd.args[10] = 0x02; cx24117_load_firmware() 681 cmd.args[11] = 0x02; cx24117_load_firmware() 682 cmd.args[12] = 0x00; cx24117_load_firmware() 683 cmd.len = 13; cx24117_load_firmware() 684 ret = cx24117_cmd_execute_nolock(fe, &cmd); cx24117_load_firmware() 689 cmd.args[0] = CMD_GLOBAL_MPEGCFG; cx24117_load_firmware() 690 cmd.args[1] = 0x00; cx24117_load_firmware() 691 cmd.args[2] = 0x00; cx24117_load_firmware() 692 cmd.args[3] = 0x00; cx24117_load_firmware() 693 cmd.args[4] = 0x01; cx24117_load_firmware() 694 cmd.args[5] = 0x00; cx24117_load_firmware() 695 cmd.len = 6; cx24117_load_firmware() 696 ret = cx24117_cmd_execute_nolock(fe, &cmd); cx24117_load_firmware() 702 cmd.args[0] = CMD_MPEGCFG; cx24117_load_firmware() 703 cmd.args[1] = (u8) i; cx24117_load_firmware() 704 cmd.args[2] = 0x00; cx24117_load_firmware() 705 cmd.args[3] = 0x05; cx24117_load_firmware() 706 cmd.args[4] = 0x00; cx24117_load_firmware() 707 cmd.args[5] = 0x00; cx24117_load_firmware() 708 cmd.args[6] = 0x55; cx24117_load_firmware() 709 cmd.args[7] = 0x00; cx24117_load_firmware() 710 cmd.len = 8; cx24117_load_firmware() 711 ret = cx24117_cmd_execute_nolock(fe, &cmd); cx24117_load_firmware() 721 cmd.args[0] = CMD_FWVERSION; cx24117_load_firmware() 722 cmd.len = 2; cx24117_load_firmware() 724 cmd.args[1] = i; cx24117_load_firmware() 725 ret = cx24117_cmd_execute_nolock(fe, &cmd); cx24117_load_firmware() 793 struct cx24117_cmd cmd; cx24117_read_signal_strength() local 801 cmd.args[0] = CMD_GET_AGCACC; cx24117_read_signal_strength() 802 cmd.args[1] = (u8) state->demod; cx24117_read_signal_strength() 803 cmd.len = 2; cx24117_read_signal_strength() 804 ret = cx24117_cmd_execute(fe, &cmd); cx24117_read_signal_strength() 910 struct cx24117_cmd cmd; cx24117_set_voltage() local 921 cmd.args[0] = CMD_SET_GPIOOUT; cx24117_set_voltage() 922 cmd.args[2] = reg; /* mask */ cx24117_set_voltage() 923 cmd.len = 3; cx24117_set_voltage() 928 cmd.args[1] = reg; cx24117_set_voltage() 929 ret = cx24117_cmd_execute(fe, &cmd); cx24117_set_voltage() 941 cmd.args[0] = CMD_LNBDCLEVEL; cx24117_set_voltage() 942 cmd.args[1] = state->demod ? 0 : 1; cx24117_set_voltage() 943 cmd.args[2] = (voltage == SEC_VOLTAGE_18 ? 0x01 : 0x00); cx24117_set_voltage() 944 cmd.len = 3; cx24117_set_voltage() 945 ret = cx24117_cmd_execute(fe, &cmd); cx24117_set_voltage() 951 cmd.args[1] = 0x00; cx24117_set_voltage() 952 ret = cx24117_cmd_execute(fe, &cmd); cx24117_set_voltage() 962 struct cx24117_cmd cmd; cx24117_set_tone() local 982 cmd.args[0] = CMD_LNBPCBCONFIG; cx24117_set_tone() 983 cmd.args[1] = (state->demod ? 0 : 1); cx24117_set_tone() 984 cmd.args[2] = 0x00; cx24117_set_tone() 985 cmd.args[3] = 0x00; cx24117_set_tone() 986 cmd.len = 5; cx24117_set_tone() 989 cmd.args[4] = 0x01; cx24117_set_tone() 992 cmd.args[4] = 0x00; cx24117_set_tone() 998 return cx24117_cmd_execute(fe, &cmd); cx24117_set_tone() 1228 struct cx24117_cmd cmd; cx24117_initfe() local 1237 cmd.args[0] = CMD_SET_SLEEPMODE; cx24117_initfe() 1238 cmd.args[1] = (state->demod ? 1 : 0); cx24117_initfe() 1239 cmd.args[2] = 0; cx24117_initfe() 1240 cmd.len = 3; cx24117_initfe() 1241 ret = cx24117_cmd_execute_nolock(fe, &cmd); cx24117_initfe() 1250 cmd.args[0] = CMD_BERCTRL; cx24117_initfe() 1251 cmd.args[1] = (state->demod ? 1 : 0); cx24117_initfe() 1252 cmd.args[2] = 0x10; cx24117_initfe() 1253 cmd.args[3] = 0x10; cx24117_initfe() 1254 cmd.len = 4; cx24117_initfe() 1255 ret = cx24117_cmd_execute_nolock(fe, &cmd); cx24117_initfe() 1260 cmd.args[0] = CMD_ENABLERSCORR; cx24117_initfe() 1261 cmd.args[1] = (state->demod ? 1 : 0); cx24117_initfe() 1262 cmd.args[2] = CX24117_OCC; cx24117_initfe() 1263 cmd.len = 3; cx24117_initfe() 1264 ret = cx24117_cmd_execute_nolock(fe, &cmd); cx24117_initfe() 1270 cmd.args[0] = CMD_SET_GPIODIR; cx24117_initfe() 1271 cmd.args[1] = 0x30; cx24117_initfe() 1272 cmd.args[2] = 0x30; cx24117_initfe() 1273 cmd.len = 3; cx24117_initfe() 1274 ret = cx24117_cmd_execute_nolock(fe, &cmd); cx24117_initfe() 1288 struct cx24117_cmd cmd; cx24117_sleep() local 1294 cmd.args[0] = CMD_SET_SLEEPMODE; cx24117_sleep() 1295 cmd.args[1] = (state->demod ? 1 : 0); cx24117_sleep() 1296 cmd.args[2] = 1; cx24117_sleep() 1297 cmd.len = 3; cx24117_sleep() 1298 return cx24117_cmd_execute(fe, &cmd); cx24117_sleep() 1308 struct cx24117_cmd cmd; cx24117_set_frontend() local 1444 cmd.args[0] = CMD_TUNEREQUEST; cx24117_set_frontend() 1447 cmd.args[1] = state->demod; cx24117_set_frontend() 1450 cmd.args[2] = (state->dcur.frequency & 0xff0000) >> 16; cx24117_set_frontend() 1451 cmd.args[3] = (state->dcur.frequency & 0x00ff00) >> 8; cx24117_set_frontend() 1452 cmd.args[4] = (state->dcur.frequency & 0x0000ff); cx24117_set_frontend() 1455 cmd.args[5] = ((state->dcur.symbol_rate / 1000) & 0xff00) >> 8; cx24117_set_frontend() 1456 cmd.args[6] = ((state->dcur.symbol_rate / 1000) & 0x00ff); cx24117_set_frontend() 1459 cmd.args[7] = state->dcur.inversion_val; cx24117_set_frontend() 1462 cmd.args[8] = state->dcur.fec_val | state->dcur.pilot_val; cx24117_set_frontend() 1464 cmd.args[9] = CX24117_SEARCH_RANGE_KHZ >> 8; cx24117_set_frontend() 1465 cmd.args[10] = CX24117_SEARCH_RANGE_KHZ & 0xff; cx24117_set_frontend() 1467 cmd.args[11] = state->dcur.rolloff_val; cx24117_set_frontend() 1468 cmd.args[12] = state->dcur.fec_mask; cx24117_set_frontend() 1481 cmd.args[13] = reg_ratediv; cx24117_set_frontend() 1482 cmd.args[14] = reg_clkdiv; cx24117_set_frontend() 1489 cmd.args[15] = CX24117_PNE; cx24117_set_frontend() 1490 cmd.len = 16; cx24117_set_frontend() 1506 ret = cx24117_cmd_execute(fe, &cmd); cx24117_set_frontend() 1533 cmd.args[11]--; cx24117_set_frontend() 1565 struct cx24117_cmd cmd; cx24117_get_frontend() local 1574 cmd.args[0] = CMD_GETCTLACC; cx24117_get_frontend() 1575 cmd.args[1] = (u8) state->demod; cx24117_get_frontend() 1576 cmd.len = 2; cx24117_get_frontend() 1577 ret = cx24117_cmd_execute(fe, &cmd); cx24117_get_frontend() 290 cx24117_writecmd(struct cx24117_state *state, struct cx24117_cmd *cmd) cx24117_writecmd() argument 504 cx24117_cmd_execute_nolock(struct dvb_frontend *fe, struct cx24117_cmd *cmd) cx24117_cmd_execute_nolock() argument
|
H A D | cx24116.c | 528 static int cx24116_cmd_execute(struct dvb_frontend *fe, struct cx24116_cmd *cmd) cx24116_cmd_execute() argument 544 for (i = 0; i < cmd->len ; i++) { cx24116_cmd_execute() 545 dprintk("%s: 0x%02x == 0x%02x\n", __func__, i, cmd->args[i]); cx24116_cmd_execute() 546 cx24116_writereg(state, i, cmd->args[i]); cx24116_cmd_execute() 549 /* Start execution and wait for cmd to terminate */ cx24116_cmd_execute() 568 struct cx24116_cmd cmd; cx24116_load_firmware() local 627 cmd.args[0x00] = CMD_SET_VCO; cx24116_load_firmware() 628 cmd.args[0x01] = 0x05; cx24116_load_firmware() 629 cmd.args[0x02] = 0xdc; cx24116_load_firmware() 630 cmd.args[0x03] = 0xda; cx24116_load_firmware() 631 cmd.args[0x04] = 0xae; cx24116_load_firmware() 632 cmd.args[0x05] = 0xaa; cx24116_load_firmware() 633 cmd.args[0x06] = 0x04; cx24116_load_firmware() 634 cmd.args[0x07] = 0x9d; cx24116_load_firmware() 635 cmd.args[0x08] = 0xfc; cx24116_load_firmware() 636 cmd.args[0x09] = 0x06; cx24116_load_firmware() 637 cmd.len = 0x0a; cx24116_load_firmware() 638 ret = cx24116_cmd_execute(fe, &cmd); cx24116_load_firmware() 645 cmd.args[0x00] = CMD_TUNERINIT; cx24116_load_firmware() 646 cmd.args[0x01] = 0x00; cx24116_load_firmware() 647 cmd.args[0x02] = 0x00; cx24116_load_firmware() 648 cmd.len = 0x03; cx24116_load_firmware() 649 ret = cx24116_cmd_execute(fe, &cmd); cx24116_load_firmware() 656 cmd.args[0x00] = CMD_MPEGCONFIG; cx24116_load_firmware() 657 cmd.args[0x01] = 0x01; cx24116_load_firmware() 658 cmd.args[0x02] = 0x75; cx24116_load_firmware() 659 cmd.args[0x03] = 0x00; cx24116_load_firmware() 661 cmd.args[0x04] = state->config->mpg_clk_pos_pol; cx24116_load_firmware() 663 cmd.args[0x04] = 0x02; cx24116_load_firmware() 664 cmd.args[0x05] = 0x00; cx24116_load_firmware() 665 cmd.len = 0x06; cx24116_load_firmware() 666 ret = cx24116_cmd_execute(fe, &cmd); cx24116_load_firmware() 671 cmd.args[0x00] = CMD_UPDFWVERS; cx24116_load_firmware() 672 cmd.len = 0x02; cx24116_load_firmware() 674 cmd.args[0x01] = i; cx24116_load_firmware() 675 ret = cx24116_cmd_execute(fe, &cmd); cx24116_load_firmware() 728 struct cx24116_cmd cmd; cx24116_read_signal_strength() local 735 cmd.args[0x00] = CMD_GETAGC; cx24116_read_signal_strength() 736 cmd.len = 0x01; cx24116_read_signal_strength() 737 ret = cx24116_cmd_execute(fe, &cmd); cx24116_read_signal_strength() 849 struct cx24116_cmd cmd; cx24116_set_voltage() local 864 cmd.args[0x00] = CMD_LNBDCLEVEL; cx24116_set_voltage() 865 cmd.args[0x01] = (voltage == SEC_VOLTAGE_18 ? 0x01 : 0x00); cx24116_set_voltage() 866 cmd.len = 0x02; cx24116_set_voltage() 871 return cx24116_cmd_execute(fe, &cmd); cx24116_set_voltage() 877 struct cx24116_cmd cmd; cx24116_set_tone() local 895 cmd.args[0x00] = CMD_SET_TONE; cx24116_set_tone() 896 cmd.args[0x01] = 0x00; cx24116_set_tone() 897 cmd.args[0x02] = 0x00; cx24116_set_tone() 902 cmd.args[0x03] = 0x01; cx24116_set_tone() 906 cmd.args[0x03] = 0x00; cx24116_set_tone() 909 cmd.len = 0x04; cx24116_set_tone() 914 return cx24116_cmd_execute(fe, &cmd); cx24116_set_tone() 921 struct cx24116_cmd cmd; cx24116_diseqc_init() local 925 cmd.args[0x00] = CMD_LNBCONFIG; cx24116_diseqc_init() 926 cmd.args[0x01] = 0x00; cx24116_diseqc_init() 927 cmd.args[0x02] = 0x10; cx24116_diseqc_init() 928 cmd.args[0x03] = 0x00; cx24116_diseqc_init() 929 cmd.args[0x04] = 0x8f; cx24116_diseqc_init() 930 cmd.args[0x05] = 0x28; cx24116_diseqc_init() 931 cmd.args[0x06] = (toneburst == CX24116_DISEQC_TONEOFF) ? 0x00 : 0x01; cx24116_diseqc_init() 932 cmd.args[0x07] = 0x01; cx24116_diseqc_init() 933 cmd.len = 0x08; cx24116_diseqc_init() 934 ret = cx24116_cmd_execute(fe, &cmd); cx24116_diseqc_init() 1162 struct cx24116_cmd cmd; cx24116_initfe() local 1173 cmd.args[0x00] = CMD_TUNERSLEEP; cx24116_initfe() 1174 cmd.args[0x01] = 0; cx24116_initfe() 1175 cmd.len = 0x02; cx24116_initfe() 1176 ret = cx24116_cmd_execute(fe, &cmd); cx24116_initfe() 1194 struct cx24116_cmd cmd; cx24116_sleep() local 1200 cmd.args[0x00] = CMD_TUNERSLEEP; cx24116_sleep() 1201 cmd.args[0x01] = 1; cx24116_sleep() 1202 cmd.len = 0x02; cx24116_sleep() 1203 ret = cx24116_cmd_execute(fe, &cmd); cx24116_sleep() 1222 struct cx24116_cmd cmd; cx24116_set_frontend() local 1346 cmd.args[0x00] = CMD_BANDWIDTH; cx24116_set_frontend() 1347 cmd.args[0x01] = 0x01; cx24116_set_frontend() 1348 cmd.len = 0x02; cx24116_set_frontend() 1349 ret = cx24116_cmd_execute(fe, &cmd); cx24116_set_frontend() 1354 cmd.args[0x00] = CMD_TUNEREQUEST; cx24116_set_frontend() 1357 cmd.args[0x01] = (state->dcur.frequency & 0xff0000) >> 16; cx24116_set_frontend() 1358 cmd.args[0x02] = (state->dcur.frequency & 0x00ff00) >> 8; cx24116_set_frontend() 1359 cmd.args[0x03] = (state->dcur.frequency & 0x0000ff); cx24116_set_frontend() 1362 cmd.args[0x04] = ((state->dcur.symbol_rate / 1000) & 0xff00) >> 8; cx24116_set_frontend() 1363 cmd.args[0x05] = ((state->dcur.symbol_rate / 1000) & 0x00ff); cx24116_set_frontend() 1366 cmd.args[0x06] = state->dcur.inversion_val; cx24116_set_frontend() 1369 cmd.args[0x07] = state->dcur.fec_val | state->dcur.pilot_val; cx24116_set_frontend() 1371 cmd.args[0x08] = CX24116_SEARCH_RANGE_KHZ >> 8; cx24116_set_frontend() 1372 cmd.args[0x09] = CX24116_SEARCH_RANGE_KHZ & 0xff; cx24116_set_frontend() 1373 cmd.args[0x0a] = 0x00; cx24116_set_frontend() 1374 cmd.args[0x0b] = 0x00; cx24116_set_frontend() 1375 cmd.args[0x0c] = state->dcur.rolloff_val; cx24116_set_frontend() 1376 cmd.args[0x0d] = state->dcur.fec_mask; cx24116_set_frontend() 1379 cmd.args[0x0e] = 0x04; cx24116_set_frontend() 1380 cmd.args[0x0f] = 0x00; cx24116_set_frontend() 1381 cmd.args[0x10] = 0x01; cx24116_set_frontend() 1382 cmd.args[0x11] = 0x77; cx24116_set_frontend() 1383 cmd.args[0x12] = 0x36; cx24116_set_frontend() 1387 cmd.args[0x0e] = 0x06; cx24116_set_frontend() 1388 cmd.args[0x0f] = 0x00; cx24116_set_frontend() 1389 cmd.args[0x10] = 0x00; cx24116_set_frontend() 1390 cmd.args[0x11] = 0xFA; cx24116_set_frontend() 1391 cmd.args[0x12] = 0x24; cx24116_set_frontend() 1396 cmd.len = 0x13; cx24116_set_frontend() 1409 ret = cx24116_cmd_execute(fe, &cmd); cx24116_set_frontend() 1433 cmd.args[0x07] ^= CX24116_PILOT_ON; cx24116_set_frontend() 1437 cmd.args[0x00] = CMD_BANDWIDTH; cx24116_set_frontend() 1438 cmd.args[0x01] = 0x00; cx24116_set_frontend() 1439 cmd.len = 0x02; cx24116_set_frontend() 1440 return cx24116_cmd_execute(fe, &cmd); cx24116_set_frontend()
|
/linux-4.1.27/net/bluetooth/ |
H A D | mgmt_util.c | 60 int mgmt_cmd_status(struct sock *sk, u16 index, u16 cmd, u8 status) mgmt_cmd_status() argument 67 BT_DBG("sock %p, index %u, cmd %u, status %u", sk, index, cmd, status); mgmt_cmd_status() 81 ev->opcode = cpu_to_le16(cmd); mgmt_cmd_status() 90 int mgmt_cmd_complete(struct sock *sk, u16 index, u16 cmd, u8 status, mgmt_cmd_complete() argument 111 ev->opcode = cpu_to_le16(cmd); mgmt_cmd_complete() 127 struct mgmt_pending_cmd *cmd; mgmt_pending_find() local 129 list_for_each_entry(cmd, &hdev->mgmt_pending, list) { mgmt_pending_find() 130 if (hci_sock_get_channel(cmd->sk) != channel) mgmt_pending_find() 132 if (cmd->opcode == opcode) mgmt_pending_find() 133 return cmd; mgmt_pending_find() 144 struct mgmt_pending_cmd *cmd; mgmt_pending_find_data() local 146 list_for_each_entry(cmd, &hdev->mgmt_pending, list) { mgmt_pending_find_data() 147 if (cmd->user_data != data) mgmt_pending_find_data() 149 if (cmd->opcode == opcode) mgmt_pending_find_data() 150 return cmd; mgmt_pending_find_data() 157 void (*cb)(struct mgmt_pending_cmd *cmd, void *data), mgmt_pending_foreach() 160 struct mgmt_pending_cmd *cmd, *tmp; mgmt_pending_foreach() local 162 list_for_each_entry_safe(cmd, tmp, &hdev->mgmt_pending, list) { mgmt_pending_foreach() 163 if (opcode > 0 && cmd->opcode != opcode) mgmt_pending_foreach() 166 cb(cmd, data); mgmt_pending_foreach() 174 struct mgmt_pending_cmd *cmd; mgmt_pending_add() local 176 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mgmt_pending_add() 177 if (!cmd) mgmt_pending_add() 180 cmd->opcode = opcode; mgmt_pending_add() 181 cmd->index = hdev->id; mgmt_pending_add() 183 cmd->param = kmemdup(data, len, GFP_KERNEL); mgmt_pending_add() 184 if (!cmd->param) { mgmt_pending_add() 185 kfree(cmd); mgmt_pending_add() 189 cmd->param_len = len; mgmt_pending_add() 191 cmd->sk = sk; mgmt_pending_add() 194 list_add(&cmd->list, &hdev->mgmt_pending); mgmt_pending_add() 196 return cmd; mgmt_pending_add() 199 void mgmt_pending_free(struct mgmt_pending_cmd *cmd) mgmt_pending_free() argument 201 sock_put(cmd->sk); mgmt_pending_free() 202 kfree(cmd->param); mgmt_pending_free() 203 kfree(cmd); mgmt_pending_free() 206 void mgmt_pending_remove(struct mgmt_pending_cmd *cmd) mgmt_pending_remove() argument 208 list_del(&cmd->list); mgmt_pending_remove() 209 mgmt_pending_free(cmd); mgmt_pending_remove() 156 mgmt_pending_foreach(u16 opcode, struct hci_dev *hdev, void (*cb)(struct mgmt_pending_cmd *cmd, void *data), void *data) mgmt_pending_foreach() argument
|
H A D | mgmt.c | 922 struct mgmt_pending_cmd *cmd; get_adv_discov_flags() local 927 cmd = pending_find(MGMT_OP_SET_DISCOVERABLE, hdev); get_adv_discov_flags() 928 if (cmd) { get_adv_discov_flags() 929 struct mgmt_mode *cp = cmd->param; get_adv_discov_flags() 960 struct mgmt_pending_cmd *cmd; get_connectable() local 965 cmd = pending_find(MGMT_OP_SET_CONNECTABLE, hdev); get_connectable() 966 if (cmd) { get_connectable() 967 struct mgmt_mode *cp = cmd->param; get_connectable() 1551 struct mgmt_pending_cmd *cmd; set_powered() local 1584 cmd = mgmt_pending_add(sk, MGMT_OP_SET_POWERED, hdev, data, len); set_powered() 1585 if (!cmd) { set_powered() 1632 static void settings_rsp(struct mgmt_pending_cmd *cmd, void *data) settings_rsp() argument 1636 send_settings_rsp(cmd->sk, cmd->opcode, match->hdev); settings_rsp() 1638 list_del(&cmd->list); settings_rsp() 1641 match->sk = cmd->sk; settings_rsp() 1645 mgmt_pending_free(cmd); settings_rsp() 1648 static void cmd_status_rsp(struct mgmt_pending_cmd *cmd, void *data) cmd_status_rsp() argument 1652 mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, *status); cmd_status_rsp() 1653 mgmt_pending_remove(cmd); cmd_status_rsp() 1656 static void cmd_complete_rsp(struct mgmt_pending_cmd *cmd, void *data) cmd_complete_rsp() argument 1658 if (cmd->cmd_complete) { cmd_complete_rsp() 1661 cmd->cmd_complete(cmd, *status); cmd_complete_rsp() 1662 mgmt_pending_remove(cmd); cmd_complete_rsp() 1667 cmd_status_rsp(cmd, data); cmd_complete_rsp() 1670 static int generic_cmd_complete(struct mgmt_pending_cmd *cmd, u8 status) generic_cmd_complete() argument 1672 return mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, generic_cmd_complete() 1673 cmd->param, cmd->param_len); generic_cmd_complete() 1676 static int addr_cmd_complete(struct mgmt_pending_cmd *cmd, u8 status) addr_cmd_complete() argument 1678 return mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, addr_cmd_complete() 1679 cmd->param, sizeof(struct mgmt_addr_info)); addr_cmd_complete() 1705 struct mgmt_pending_cmd *cmd; set_discoverable_complete() local 1714 cmd = pending_find(MGMT_OP_SET_DISCOVERABLE, hdev); set_discoverable_complete() 1715 if (!cmd) set_discoverable_complete() 1720 mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, mgmt_err); set_discoverable_complete() 1725 cp = cmd->param; set_discoverable_complete() 1738 send_settings_rsp(cmd->sk, MGMT_OP_SET_DISCOVERABLE, hdev); set_discoverable_complete() 1741 new_settings(hdev, cmd->sk); set_discoverable_complete() 1754 mgmt_pending_remove(cmd); set_discoverable_complete() 1764 struct mgmt_pending_cmd *cmd; set_discoverable() local 1854 cmd = mgmt_pending_add(sk, MGMT_OP_SET_DISCOVERABLE, hdev, data, len); set_discoverable() 1855 if (!cmd) { set_discoverable() 1918 mgmt_pending_remove(cmd); set_discoverable() 1963 struct mgmt_pending_cmd *cmd; set_connectable_complete() local 1971 cmd = pending_find(MGMT_OP_SET_CONNECTABLE, hdev); set_connectable_complete() 1972 if (!cmd) set_connectable_complete() 1977 mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, mgmt_err); set_connectable_complete() 1981 cp = cmd->param; set_connectable_complete() 1993 send_settings_rsp(cmd->sk, MGMT_OP_SET_CONNECTABLE, hdev); set_connectable_complete() 1996 new_settings(hdev, cmd->sk); set_connectable_complete() 2004 mgmt_pending_remove(cmd); set_connectable_complete() 2043 struct mgmt_pending_cmd *cmd; set_connectable() local 2073 cmd = mgmt_pending_add(sk, MGMT_OP_SET_CONNECTABLE, hdev, data, len); set_connectable() 2074 if (!cmd) { set_connectable() 2124 mgmt_pending_remove(cmd); set_connectable() 2172 struct mgmt_pending_cmd *cmd; set_link_security() local 2220 cmd = mgmt_pending_add(sk, MGMT_OP_SET_LINK_SECURITY, hdev, data, len); set_link_security() 2221 if (!cmd) { set_link_security() 2228 mgmt_pending_remove(cmd); set_link_security() 2240 struct mgmt_pending_cmd *cmd; set_ssp() local 2297 cmd = mgmt_pending_add(sk, MGMT_OP_SET_SSP, hdev, data, len); set_ssp() 2298 if (!cmd) { set_ssp() 2309 mgmt_pending_remove(cmd); set_ssp() 2419 struct mgmt_pending_cmd *cmd; set_le() local 2486 cmd = mgmt_pending_add(sk, MGMT_OP_SET_LE, hdev, data, len); set_le() 2487 if (!cmd) { set_le() 2509 mgmt_pending_remove(cmd); set_le() 2524 struct mgmt_pending_cmd *cmd; pending_eir_or_class() local 2526 list_for_each_entry(cmd, &hdev->mgmt_pending, list) { pending_eir_or_class() 2527 switch (cmd->opcode) { pending_eir_or_class() 2560 struct mgmt_pending_cmd *cmd; mgmt_class_complete() local 2564 cmd = pending_find(mgmt_op, hdev); mgmt_class_complete() 2565 if (!cmd) mgmt_class_complete() 2568 mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, mgmt_class_complete() 2571 mgmt_pending_remove(cmd); mgmt_class_complete() 2587 struct mgmt_pending_cmd *cmd; add_uuid() local 2629 cmd = mgmt_pending_add(sk, MGMT_OP_ADD_UUID, hdev, data, len); add_uuid() 2630 if (!cmd) { add_uuid() 2667 struct mgmt_pending_cmd *cmd; remove_uuid() local 2729 cmd = mgmt_pending_add(sk, MGMT_OP_REMOVE_UUID, hdev, data, len); remove_uuid() 2730 if (!cmd) { remove_uuid() 2753 struct mgmt_pending_cmd *cmd; set_dev_class() local 2807 cmd = mgmt_pending_add(sk, MGMT_OP_SET_DEV_CLASS, hdev, data, len); set_dev_class() 2808 if (!cmd) { set_dev_class() 2920 struct mgmt_pending_cmd *cmd; unpair_device() local 3011 cmd = mgmt_pending_add(sk, MGMT_OP_UNPAIR_DEVICE, hdev, cp, unpair_device() 3013 if (!cmd) { unpair_device() 3018 cmd->cmd_complete = addr_cmd_complete; unpair_device() 3024 mgmt_pending_remove(cmd); unpair_device() 3036 struct mgmt_pending_cmd *cmd; disconnect() local 3079 cmd = mgmt_pending_add(sk, MGMT_OP_DISCONNECT, hdev, data, len); disconnect() 3080 if (!cmd) { disconnect() 3085 cmd->cmd_complete = generic_cmd_complete; disconnect() 3089 mgmt_pending_remove(cmd); disconnect() 3176 struct mgmt_pending_cmd *cmd; send_pin_code_neg_reply() local 3179 cmd = mgmt_pending_add(sk, MGMT_OP_PIN_CODE_NEG_REPLY, hdev, cp, send_pin_code_neg_reply() 3181 if (!cmd) send_pin_code_neg_reply() 3187 mgmt_pending_remove(cmd); send_pin_code_neg_reply() 3198 struct mgmt_pending_cmd *cmd; pin_code_reply() local 3233 cmd = mgmt_pending_add(sk, MGMT_OP_PIN_CODE_REPLY, hdev, data, len); pin_code_reply() 3234 if (!cmd) { pin_code_reply() 3239 cmd->cmd_complete = addr_cmd_complete; pin_code_reply() 3247 mgmt_pending_remove(cmd); pin_code_reply() 3281 struct mgmt_pending_cmd *cmd; find_pairing() local 3283 list_for_each_entry(cmd, &hdev->mgmt_pending, list) { find_pairing() 3284 if (cmd->opcode != MGMT_OP_PAIR_DEVICE) find_pairing() 3287 if (cmd->user_data != conn) find_pairing() 3290 return cmd; find_pairing() 3296 static int pairing_complete(struct mgmt_pending_cmd *cmd, u8 status) pairing_complete() argument 3299 struct hci_conn *conn = cmd->user_data; pairing_complete() 3305 err = mgmt_cmd_complete(cmd->sk, cmd->index, MGMT_OP_PAIR_DEVICE, pairing_complete() 3328 struct mgmt_pending_cmd *cmd; mgmt_smp_complete() local 3330 cmd = find_pairing(conn); mgmt_smp_complete() 3331 if (cmd) { mgmt_smp_complete() 3332 cmd->cmd_complete(cmd, status); mgmt_smp_complete() 3333 mgmt_pending_remove(cmd); mgmt_smp_complete() 3339 struct mgmt_pending_cmd *cmd; pairing_complete_cb() local 3343 cmd = find_pairing(conn); pairing_complete_cb() 3344 if (!cmd) { pairing_complete_cb() 3349 cmd->cmd_complete(cmd, mgmt_status(status)); pairing_complete_cb() 3350 mgmt_pending_remove(cmd); pairing_complete_cb() 3355 struct mgmt_pending_cmd *cmd; le_pairing_complete_cb() local 3362 cmd = find_pairing(conn); le_pairing_complete_cb() 3363 if (!cmd) { le_pairing_complete_cb() 3368 cmd->cmd_complete(cmd, mgmt_status(status)); le_pairing_complete_cb() 3369 mgmt_pending_remove(cmd); le_pairing_complete_cb() 3377 struct mgmt_pending_cmd *cmd; pair_device() local 3470 cmd = mgmt_pending_add(sk, MGMT_OP_PAIR_DEVICE, hdev, data, len); pair_device() 3471 if (!cmd) { pair_device() 3477 cmd->cmd_complete = pairing_complete; pair_device() 3491 cmd->user_data = hci_conn_get(conn); pair_device() 3495 cmd->cmd_complete(cmd, 0); pair_device() 3496 mgmt_pending_remove(cmd); pair_device() 3510 struct mgmt_pending_cmd *cmd; cancel_pair_device() local 3524 cmd = pending_find(MGMT_OP_PAIR_DEVICE, hdev); cancel_pair_device() 3525 if (!cmd) { cancel_pair_device() 3531 conn = cmd->user_data; cancel_pair_device() 3539 cmd->cmd_complete(cmd, MGMT_STATUS_CANCELLED); cancel_pair_device() 3540 mgmt_pending_remove(cmd); cancel_pair_device() 3553 struct mgmt_pending_cmd *cmd; user_pairing_resp() local 3592 cmd = mgmt_pending_add(sk, mgmt_op, hdev, addr, sizeof(*addr)); user_pairing_resp() 3593 if (!cmd) { user_pairing_resp() 3598 cmd->cmd_complete = addr_cmd_complete; user_pairing_resp() 3612 mgmt_pending_remove(cmd); user_pairing_resp() 3696 struct mgmt_pending_cmd *cmd; set_name_complete() local 3702 cmd = pending_find(MGMT_OP_SET_LOCAL_NAME, hdev); set_name_complete() 3703 if (!cmd) set_name_complete() 3706 cp = cmd->param; set_name_complete() 3709 mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, set_name_complete() 3712 mgmt_cmd_complete(cmd->sk, hdev->id, MGMT_OP_SET_LOCAL_NAME, 0, set_name_complete() 3715 mgmt_pending_remove(cmd); set_name_complete() 3725 struct mgmt_pending_cmd *cmd; set_local_name() local 3760 cmd = mgmt_pending_add(sk, MGMT_OP_SET_LOCAL_NAME, hdev, data, len); set_local_name() 3761 if (!cmd) { set_local_name() 3783 mgmt_pending_remove(cmd); set_local_name() 3795 struct mgmt_pending_cmd *cmd; read_local_oob_data_complete() local 3799 cmd = pending_find(MGMT_OP_READ_LOCAL_OOB_DATA, hdev); read_local_oob_data_complete() 3800 if (!cmd) read_local_oob_data_complete() 3804 mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_READ_LOCAL_OOB_DATA, read_local_oob_data_complete() 3815 mgmt_cmd_status(cmd->sk, hdev->id, read_local_oob_data_complete() 3829 mgmt_cmd_status(cmd->sk, hdev->id, read_local_oob_data_complete() 3842 mgmt_cmd_complete(cmd->sk, hdev->id, MGMT_OP_READ_LOCAL_OOB_DATA, read_local_oob_data_complete() 3846 mgmt_pending_remove(cmd); read_local_oob_data_complete() 3852 struct mgmt_pending_cmd *cmd; read_local_oob_data() local 3878 cmd = mgmt_pending_add(sk, MGMT_OP_READ_LOCAL_OOB_DATA, hdev, NULL, 0); read_local_oob_data() 3879 if (!cmd) { read_local_oob_data() 3893 mgmt_pending_remove(cmd); read_local_oob_data() 4180 struct mgmt_pending_cmd *cmd; start_discovery_complete() local 4187 cmd = pending_find(MGMT_OP_START_DISCOVERY, hdev); start_discovery_complete() 4188 if (!cmd) start_discovery_complete() 4189 cmd = pending_find(MGMT_OP_START_SERVICE_DISCOVERY, hdev); start_discovery_complete() 4191 if (cmd) { start_discovery_complete() 4192 cmd->cmd_complete(cmd, mgmt_status(status)); start_discovery_complete() 4193 mgmt_pending_remove(cmd); start_discovery_complete() 4258 struct mgmt_pending_cmd *cmd; start_discovery() local 4282 cmd = mgmt_pending_add(sk, MGMT_OP_START_DISCOVERY, hdev, data, len); start_discovery() 4283 if (!cmd) { start_discovery() 4288 cmd->cmd_complete = generic_cmd_complete; start_discovery() 4303 mgmt_pending_remove(cmd); start_discovery() 4309 mgmt_pending_remove(cmd); start_discovery() 4320 static int service_discovery_cmd_complete(struct mgmt_pending_cmd *cmd, service_discovery_cmd_complete() argument 4323 return mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, service_discovery_cmd_complete() 4324 cmd->param, 1); service_discovery_cmd_complete() 4331 struct mgmt_pending_cmd *cmd; start_service_discovery() local 4381 cmd = mgmt_pending_add(sk, MGMT_OP_START_SERVICE_DISCOVERY, start_service_discovery() 4383 if (!cmd) { start_service_discovery() 4388 cmd->cmd_complete = service_discovery_cmd_complete; start_service_discovery() 4408 mgmt_pending_remove(cmd); start_service_discovery() 4419 mgmt_pending_remove(cmd); start_service_discovery() 4425 mgmt_pending_remove(cmd); start_service_discovery() 4438 struct mgmt_pending_cmd *cmd; stop_discovery_complete() local 4444 cmd = pending_find(MGMT_OP_STOP_DISCOVERY, hdev); stop_discovery_complete() 4445 if (cmd) { stop_discovery_complete() 4446 cmd->cmd_complete(cmd, mgmt_status(status)); stop_discovery_complete() 4447 mgmt_pending_remove(cmd); stop_discovery_complete() 4460 struct mgmt_pending_cmd *cmd; stop_discovery() local 4482 cmd = mgmt_pending_add(sk, MGMT_OP_STOP_DISCOVERY, hdev, data, len); stop_discovery() 4483 if (!cmd) { stop_discovery() 4488 cmd->cmd_complete = generic_cmd_complete; stop_discovery() 4500 mgmt_pending_remove(cmd); stop_discovery() 4721 struct mgmt_pending_cmd *cmd; set_advertising() local 4782 cmd = mgmt_pending_add(sk, MGMT_OP_SET_ADVERTISING, hdev, data, len); set_advertising() 4783 if (!cmd) { set_advertising() 4806 mgmt_pending_remove(cmd); set_advertising() 4917 struct mgmt_pending_cmd *cmd; fast_connectable_complete() local 4923 cmd = pending_find(MGMT_OP_SET_FAST_CONNECTABLE, hdev); fast_connectable_complete() 4924 if (!cmd) fast_connectable_complete() 4928 mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_FAST_CONNECTABLE, fast_connectable_complete() 4931 struct mgmt_mode *cp = cmd->param; fast_connectable_complete() 4938 send_settings_rsp(cmd->sk, MGMT_OP_SET_FAST_CONNECTABLE, hdev); fast_connectable_complete() 4939 new_settings(hdev, cmd->sk); fast_connectable_complete() 4942 mgmt_pending_remove(cmd); fast_connectable_complete() 4952 struct mgmt_pending_cmd *cmd; set_fast_connectable() local 4989 cmd = mgmt_pending_add(sk, MGMT_OP_SET_FAST_CONNECTABLE, hdev, set_fast_connectable() 4991 if (!cmd) { set_fast_connectable() 5004 mgmt_pending_remove(cmd); set_fast_connectable() 5015 struct mgmt_pending_cmd *cmd; set_bredr_complete() local 5021 cmd = pending_find(MGMT_OP_SET_BREDR, hdev); set_bredr_complete() 5022 if (!cmd) set_bredr_complete() 5033 mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, mgmt_err); set_bredr_complete() 5035 send_settings_rsp(cmd->sk, MGMT_OP_SET_BREDR, hdev); set_bredr_complete() 5036 new_settings(hdev, cmd->sk); set_bredr_complete() 5039 mgmt_pending_remove(cmd); set_bredr_complete() 5048 struct mgmt_pending_cmd *cmd; set_bredr() local 5127 cmd = mgmt_pending_add(sk, MGMT_OP_SET_BREDR, hdev, data, len); set_bredr() 5128 if (!cmd) { set_bredr() 5150 mgmt_pending_remove(cmd); set_bredr() 5159 struct mgmt_pending_cmd *cmd; sc_enable_complete() local 5166 cmd = pending_find(MGMT_OP_SET_SECURE_CONN, hdev); sc_enable_complete() 5167 if (!cmd) sc_enable_complete() 5171 mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, sc_enable_complete() 5176 cp = cmd->param; sc_enable_complete() 5193 send_settings_rsp(cmd->sk, MGMT_OP_SET_SECURE_CONN, hdev); sc_enable_complete() 5194 new_settings(hdev, cmd->sk); sc_enable_complete() 5197 mgmt_pending_remove(cmd); sc_enable_complete() 5206 struct mgmt_pending_cmd *cmd; set_secure_conn() local 5271 cmd = mgmt_pending_add(sk, MGMT_OP_SET_SECURE_CONN, hdev, data, len); set_secure_conn() 5272 if (!cmd) { set_secure_conn() 5281 mgmt_pending_remove(cmd); set_secure_conn() 5581 static int conn_info_cmd_complete(struct mgmt_pending_cmd *cmd, u8 status) conn_info_cmd_complete() argument 5583 struct hci_conn *conn = cmd->user_data; conn_info_cmd_complete() 5587 memcpy(&rp.addr, cmd->param, sizeof(rp.addr)); conn_info_cmd_complete() 5599 err = mgmt_cmd_complete(cmd->sk, cmd->index, MGMT_OP_GET_CONN_INFO, conn_info_cmd_complete() 5612 struct mgmt_pending_cmd *cmd; conn_info_refresh_complete() local 5650 cmd = pending_find_data(MGMT_OP_GET_CONN_INFO, hdev, conn); conn_info_refresh_complete() 5651 if (!cmd) conn_info_refresh_complete() 5654 cmd->cmd_complete(cmd, status); conn_info_refresh_complete() 5655 mgmt_pending_remove(cmd); conn_info_refresh_complete() 5725 struct mgmt_pending_cmd *cmd; get_conn_info() local 5755 cmd = mgmt_pending_add(sk, MGMT_OP_GET_CONN_INFO, hdev, get_conn_info() 5757 if (!cmd) { get_conn_info() 5763 cmd->user_data = hci_conn_get(conn); get_conn_info() 5764 cmd->cmd_complete = conn_info_cmd_complete; get_conn_info() 5782 static int clock_info_cmd_complete(struct mgmt_pending_cmd *cmd, u8 status) clock_info_cmd_complete() argument 5784 struct hci_conn *conn = cmd->user_data; clock_info_cmd_complete() 5790 memcpy(&rp.addr, &cmd->param, sizeof(rp.addr)); clock_info_cmd_complete() 5795 hdev = hci_dev_get(cmd->index); clock_info_cmd_complete() 5807 err = mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, status, &rp, clock_info_cmd_complete() 5821 struct mgmt_pending_cmd *cmd; get_clock_info_complete() local 5839 cmd = pending_find_data(MGMT_OP_GET_CLOCK_INFO, hdev, conn); get_clock_info_complete() 5840 if (!cmd) get_clock_info_complete() 5843 cmd->cmd_complete(cmd, mgmt_status(status)); get_clock_info_complete() 5844 mgmt_pending_remove(cmd); get_clock_info_complete() 5856 struct mgmt_pending_cmd *cmd; get_clock_info() local 5895 cmd = mgmt_pending_add(sk, MGMT_OP_GET_CLOCK_INFO, hdev, data, len); get_clock_info() 5896 if (!cmd) { get_clock_info() 5901 cmd->cmd_complete = clock_info_cmd_complete; get_clock_info() 5910 cmd->user_data = hci_conn_get(conn); get_clock_info() 5919 mgmt_pending_remove(cmd); get_clock_info() 5999 struct mgmt_pending_cmd *cmd; add_device_complete() local 6005 cmd = pending_find(MGMT_OP_ADD_DEVICE, hdev); add_device_complete() 6006 if (!cmd) add_device_complete() 6009 cmd->cmd_complete(cmd, mgmt_status(status)); add_device_complete() 6010 mgmt_pending_remove(cmd); add_device_complete() 6020 struct mgmt_pending_cmd *cmd; add_device() local 6042 cmd = mgmt_pending_add(sk, MGMT_OP_ADD_DEVICE, hdev, data, len); add_device() 6043 if (!cmd) { add_device() 6048 cmd->cmd_complete = addr_cmd_complete; add_device() 6053 err = cmd->cmd_complete(cmd, add_device() 6055 mgmt_pending_remove(cmd); add_device() 6086 err = cmd->cmd_complete(cmd, MGMT_STATUS_FAILED); add_device() 6087 mgmt_pending_remove(cmd); add_device() 6100 err = cmd->cmd_complete(cmd, MGMT_STATUS_SUCCESS); add_device() 6101 mgmt_pending_remove(cmd); add_device() 6122 struct mgmt_pending_cmd *cmd; remove_device_complete() local 6128 cmd = pending_find(MGMT_OP_REMOVE_DEVICE, hdev); remove_device_complete() 6129 if (!cmd) remove_device_complete() 6132 cmd->cmd_complete(cmd, mgmt_status(status)); remove_device_complete() 6133 mgmt_pending_remove(cmd); remove_device_complete() 6143 struct mgmt_pending_cmd *cmd; remove_device() local 6153 cmd = mgmt_pending_add(sk, MGMT_OP_REMOVE_DEVICE, hdev, data, len); remove_device() 6154 if (!cmd) { remove_device() 6159 cmd->cmd_complete = addr_cmd_complete; remove_device() 6166 err = cmd->cmd_complete(cmd, remove_device() 6168 mgmt_pending_remove(cmd); remove_device() 6177 err = cmd->cmd_complete(cmd, remove_device() 6179 mgmt_pending_remove(cmd); remove_device() 6198 err = cmd->cmd_complete(cmd, remove_device() 6200 mgmt_pending_remove(cmd); remove_device() 6205 err = cmd->cmd_complete(cmd, remove_device() 6207 mgmt_pending_remove(cmd); remove_device() 6222 err = cmd->cmd_complete(cmd, remove_device() 6224 mgmt_pending_remove(cmd); remove_device() 6257 err = cmd->cmd_complete(cmd, MGMT_STATUS_SUCCESS); remove_device() 6258 mgmt_pending_remove(cmd); remove_device() 6477 struct mgmt_pending_cmd *cmd; read_local_oob_ext_data_complete() local 6483 cmd = pending_find(MGMT_OP_READ_LOCAL_OOB_EXT_DATA, hdev); read_local_oob_ext_data_complete() 6484 if (!cmd) read_local_oob_ext_data_complete() 6487 mgmt_cp = cmd->param; read_local_oob_ext_data_complete() 6566 err = mgmt_cmd_complete(cmd->sk, hdev->id, read_local_oob_ext_data_complete() 6572 hci_sock_set_flag(cmd->sk, HCI_MGMT_OOB_DATA_EVENTS); read_local_oob_ext_data_complete() 6576 HCI_MGMT_OOB_DATA_EVENTS, cmd->sk); read_local_oob_ext_data_complete() 6579 mgmt_pending_remove(cmd); read_local_oob_ext_data_complete() 6585 struct mgmt_pending_cmd *cmd; read_local_ssp_oob_req() local 6589 cmd = mgmt_pending_add(sk, MGMT_OP_READ_LOCAL_OOB_EXT_DATA, hdev, read_local_ssp_oob_req() 6591 if (!cmd) read_local_ssp_oob_req() 6603 mgmt_pending_remove(cmd); read_local_ssp_oob_req() 6886 struct mgmt_pending_cmd *cmd; add_advertising_complete() local 6893 cmd = pending_find(MGMT_OP_ADD_ADVERTISING, hdev); add_advertising_complete() 6898 advertising_removed(cmd ? cmd->sk : NULL, hdev, 1); add_advertising_complete() 6901 if (!cmd) add_advertising_complete() 6907 mgmt_cmd_status(cmd->sk, cmd->index, cmd->opcode, add_advertising_complete() 6910 mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, add_advertising_complete() 6913 mgmt_pending_remove(cmd); add_advertising_complete() 6941 struct mgmt_pending_cmd *cmd; add_advertising() local 7026 cmd = mgmt_pending_add(sk, MGMT_OP_ADD_ADVERTISING, hdev, data, add_advertising() 7028 if (!cmd) { add_advertising() 7041 mgmt_pending_remove(cmd); add_advertising() 7052 struct mgmt_pending_cmd *cmd; remove_advertising_complete() local 7063 cmd = pending_find(MGMT_OP_REMOVE_ADVERTISING, hdev); remove_advertising_complete() 7064 if (!cmd) remove_advertising_complete() 7069 mgmt_cmd_complete(cmd->sk, cmd->index, cmd->opcode, MGMT_STATUS_SUCCESS, remove_advertising_complete() 7071 mgmt_pending_remove(cmd); remove_advertising_complete() 7083 struct mgmt_pending_cmd *cmd; remove_advertising() local 7132 cmd = mgmt_pending_add(sk, MGMT_OP_REMOVE_ADVERTISING, hdev, data, remove_advertising() 7134 if (!cmd) { remove_advertising() 7144 mgmt_pending_remove(cmd); remove_advertising() 7485 struct mgmt_pending_cmd *cmd; mgmt_set_powered_failed() local 7488 cmd = pending_find(MGMT_OP_SET_POWERED, hdev); mgmt_set_powered_failed() 7489 if (!cmd) mgmt_set_powered_failed() 7497 mgmt_cmd_status(cmd->sk, hdev->id, MGMT_OP_SET_POWERED, status); mgmt_set_powered_failed() 7499 mgmt_pending_remove(cmd); mgmt_set_powered_failed() 7731 static void disconnect_rsp(struct mgmt_pending_cmd *cmd, void *data) disconnect_rsp() argument 7735 cmd->cmd_complete(cmd, 0); disconnect_rsp() 7737 *sk = cmd->sk; disconnect_rsp() 7740 mgmt_pending_remove(cmd); disconnect_rsp() 7743 static void unpair_device_rsp(struct mgmt_pending_cmd *cmd, void *data) unpair_device_rsp() argument 7746 struct mgmt_cp_unpair_device *cp = cmd->param; unpair_device_rsp() 7748 device_unpaired(hdev, &cp->addr.bdaddr, cp->addr.type, cmd->sk); unpair_device_rsp() 7750 cmd->cmd_complete(cmd, 0); unpair_device_rsp() 7751 mgmt_pending_remove(cmd); unpair_device_rsp() 7756 struct mgmt_pending_cmd *cmd; mgmt_powering_down() local 7759 cmd = pending_find(MGMT_OP_SET_POWERED, hdev); mgmt_powering_down() 7760 if (!cmd) mgmt_powering_down() 7763 cp = cmd->param; mgmt_powering_down() 7811 struct mgmt_pending_cmd *cmd; mgmt_disconnect_failed() local 7816 cmd = pending_find(MGMT_OP_DISCONNECT, hdev); mgmt_disconnect_failed() 7817 if (!cmd) mgmt_disconnect_failed() 7820 cp = cmd->param; mgmt_disconnect_failed() 7828 cmd->cmd_complete(cmd, mgmt_status(status)); mgmt_disconnect_failed() 7829 mgmt_pending_remove(cmd); mgmt_disconnect_failed() 7866 struct mgmt_pending_cmd *cmd; mgmt_pin_code_reply_complete() local 7868 cmd = pending_find(MGMT_OP_PIN_CODE_REPLY, hdev); mgmt_pin_code_reply_complete() 7869 if (!cmd) mgmt_pin_code_reply_complete() 7872 cmd->cmd_complete(cmd, mgmt_status(status)); mgmt_pin_code_reply_complete() 7873 mgmt_pending_remove(cmd); mgmt_pin_code_reply_complete() 7879 struct mgmt_pending_cmd *cmd; mgmt_pin_code_neg_reply_complete() local 7881 cmd = pending_find(MGMT_OP_PIN_CODE_NEG_REPLY, hdev); mgmt_pin_code_neg_reply_complete() 7882 if (!cmd) mgmt_pin_code_neg_reply_complete() 7885 cmd->cmd_complete(cmd, mgmt_status(status)); mgmt_pin_code_neg_reply_complete() 7886 mgmt_pending_remove(cmd); mgmt_pin_code_neg_reply_complete() 7924 struct mgmt_pending_cmd *cmd; user_pairing_resp_complete() local 7926 cmd = pending_find(opcode, hdev); user_pairing_resp_complete() 7927 if (!cmd) user_pairing_resp_complete() 7930 cmd->cmd_complete(cmd, mgmt_status(status)); user_pairing_resp_complete() 7931 mgmt_pending_remove(cmd); user_pairing_resp_complete() 7985 struct mgmt_pending_cmd *cmd; mgmt_auth_failed() local 7992 cmd = find_pairing(conn); mgmt_auth_failed() 7995 cmd ? cmd->sk : NULL); mgmt_auth_failed() 7997 if (cmd) { mgmt_auth_failed() 7998 cmd->cmd_complete(cmd, status); mgmt_auth_failed() 7999 mgmt_pending_remove(cmd); mgmt_auth_failed() 8098 static void sk_lookup(struct mgmt_pending_cmd *cmd, void *data) sk_lookup() argument 8103 match->sk = cmd->sk; sk_lookup() 8128 struct mgmt_pending_cmd *cmd; mgmt_set_local_name_complete() local 8137 cmd = pending_find(MGMT_OP_SET_LOCAL_NAME, hdev); mgmt_set_local_name_complete() 8138 if (!cmd) { mgmt_set_local_name_complete() 8149 cmd ? cmd->sk : NULL); mgmt_set_local_name_complete()
|
/linux-4.1.27/drivers/net/wireless/libertas_tf/ |
H A D | Makefile | 1 libertas_tf-objs := main.o cmd.o
|
H A D | cmd.c | 85 struct cmd_ds_get_hw_spec cmd; lbtf_update_hw_spec() local 91 memset(&cmd, 0, sizeof(cmd)); lbtf_update_hw_spec() 92 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbtf_update_hw_spec() 93 memcpy(cmd.permanentaddr, priv->current_addr, ETH_ALEN); lbtf_update_hw_spec() 94 ret = lbtf_cmd_with_response(priv, CMD_GET_HW_SPEC, &cmd); lbtf_update_hw_spec() 98 priv->fwcapinfo = le32_to_cpu(cmd.fwcapinfo); lbtf_update_hw_spec() 102 priv->fwrelease = le32_to_cpu(cmd.fwrelease); lbtf_update_hw_spec() 107 cmd.permanentaddr, lbtf_update_hw_spec() 114 cmd.hwifversion, cmd.version); lbtf_update_hw_spec() 120 priv->regioncode = le16_to_cpu(cmd.regioncode) & 0xFF; lbtf_update_hw_spec() 135 memmove(priv->current_addr, cmd.permanentaddr, ETH_ALEN); lbtf_update_hw_spec() 156 struct cmd_ds_802_11_rf_channel cmd; lbtf_set_channel() local 160 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbtf_set_channel() 161 cmd.action = cpu_to_le16(CMD_OPT_802_11_RF_CHANNEL_SET); lbtf_set_channel() 162 cmd.channel = cpu_to_le16(channel); lbtf_set_channel() 164 ret = lbtf_cmd_with_response(priv, CMD_802_11_RF_CHANNEL, &cmd); lbtf_set_channel() 171 struct cmd_ds_802_11_beacon_set cmd; lbtf_beacon_set() local 180 size = sizeof(cmd) - sizeof(cmd.beacon) + beacon->len; lbtf_beacon_set() 181 cmd.hdr.size = cpu_to_le16(size); lbtf_beacon_set() 182 cmd.len = cpu_to_le16(beacon->len); lbtf_beacon_set() 183 memcpy(cmd.beacon, (u8 *) beacon->data, beacon->len); lbtf_beacon_set() 185 lbtf_cmd_async(priv, CMD_802_11_BEACON_SET, &cmd.hdr, size); lbtf_beacon_set() 194 struct cmd_ds_802_11_beacon_control cmd; lbtf_beacon_ctrl() local 197 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbtf_beacon_ctrl() 198 cmd.action = cpu_to_le16(CMD_ACT_SET); lbtf_beacon_ctrl() 199 cmd.beacon_enable = cpu_to_le16(beacon_enable); lbtf_beacon_ctrl() 200 cmd.beacon_period = cpu_to_le16(beacon_int); lbtf_beacon_ctrl() 202 lbtf_cmd_async(priv, CMD_802_11_BEACON_CTRL, &cmd.hdr, sizeof(cmd)); lbtf_beacon_ctrl() 220 lbtf_deb_host("DNLD_CMD: cmd size is zero\n"); lbtf_queue_cmd() 240 struct cmd_header *cmd; lbtf_submit_command() local 248 cmd = cmdnode->cmdbuf; lbtf_submit_command() 252 cmdsize = le16_to_cpu(cmd->size); lbtf_submit_command() 253 command = le16_to_cpu(cmd->command); lbtf_submit_command() 256 command, le16_to_cpu(cmd->seqnum), cmdsize); lbtf_submit_command() 259 ret = priv->hw_host_to_card(priv, MVMS_CMD, (u8 *) cmd, cmdsize); lbtf_submit_command() 308 void lbtf_complete_command(struct lbtf_private *priv, struct cmd_ctrl_node *cmd, lbtf_complete_command() argument 311 cmd->result = result; lbtf_complete_command() 312 cmd->cmdwaitqwoken = 1; lbtf_complete_command() 313 wake_up_interruptible(&cmd->cmdwait_q); lbtf_complete_command() 315 if (!cmd->callback) lbtf_complete_command() 316 __lbtf_cleanup_and_insert_cmd(priv, cmd); lbtf_complete_command() 322 struct cmd_ds_mac_multicast_addr cmd; lbtf_cmd_set_mac_multicast_addr() local 326 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbtf_cmd_set_mac_multicast_addr() 327 cmd.action = cpu_to_le16(CMD_ACT_SET); lbtf_cmd_set_mac_multicast_addr() 329 cmd.nr_of_adrs = cpu_to_le16((u16) priv->nr_of_multicastmacaddr); lbtf_cmd_set_mac_multicast_addr() 331 lbtf_deb_cmd("MULTICAST_ADR: setting %d addresses\n", cmd.nr_of_adrs); lbtf_cmd_set_mac_multicast_addr() 333 memcpy(cmd.maclist, priv->multicastlist, lbtf_cmd_set_mac_multicast_addr() 336 lbtf_cmd_async(priv, CMD_MAC_MULTICAST_ADR, &cmd.hdr, sizeof(cmd)); lbtf_cmd_set_mac_multicast_addr() 344 struct cmd_ds_set_mode cmd; lbtf_set_mode() local 347 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbtf_set_mode() 348 cmd.mode = cpu_to_le16(mode); lbtf_set_mode() 350 lbtf_cmd_async(priv, CMD_802_11_SET_MODE, &cmd.hdr, sizeof(cmd)); lbtf_set_mode() 357 struct cmd_ds_set_bssid cmd; lbtf_set_bssid() local 360 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbtf_set_bssid() 361 cmd.activate = activate ? 1 : 0; lbtf_set_bssid() 363 memcpy(cmd.bssid, bssid, ETH_ALEN); lbtf_set_bssid() 365 lbtf_cmd_async(priv, CMD_802_11_SET_BSSID, &cmd.hdr, sizeof(cmd)); lbtf_set_bssid() 371 struct cmd_ds_802_11_mac_address cmd; lbtf_set_mac_address() local 374 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbtf_set_mac_address() 375 cmd.action = cpu_to_le16(CMD_ACT_SET); lbtf_set_mac_address() 377 memcpy(cmd.macadd, mac_addr, ETH_ALEN); lbtf_set_mac_address() 379 lbtf_cmd_async(priv, CMD_802_11_MAC_ADDRESS, &cmd.hdr, sizeof(cmd)); lbtf_set_mac_address() 387 struct cmd_ds_802_11_radio_control cmd; lbtf_set_radio_control() local 391 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbtf_set_radio_control() 392 cmd.action = cpu_to_le16(CMD_ACT_SET); lbtf_set_radio_control() 396 cmd.control = cpu_to_le16(SET_SHORT_PREAMBLE); lbtf_set_radio_control() 400 cmd.control = cpu_to_le16(SET_LONG_PREAMBLE); lbtf_set_radio_control() 405 cmd.control = cpu_to_le16(SET_AUTO_PREAMBLE); lbtf_set_radio_control() 410 cmd.control |= cpu_to_le16(TURN_ON_RF); lbtf_set_radio_control() 412 cmd.control &= cpu_to_le16(~TURN_ON_RF); lbtf_set_radio_control() 417 ret = lbtf_cmd_with_response(priv, CMD_802_11_RADIO_CONTROL, &cmd); lbtf_set_radio_control() 425 struct cmd_ds_mac_control cmd; lbtf_set_mac_control() local 428 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbtf_set_mac_control() 429 cmd.action = cpu_to_le16(priv->mac_control); lbtf_set_mac_control() 430 cmd.reserved = 0; lbtf_set_mac_control() 433 &cmd.hdr, sizeof(cmd)); lbtf_set_mac_control() 439 * lbtf_allocate_cmd_buffer - Allocates cmd buffer, links it to free cmd queue 487 * lbtf_free_cmd_buffer - Frees the cmd buffer. 500 /* need to check if cmd array is allocated or not */ lbtf_free_cmd_buffer() 524 * lbtf_get_cmd_ctrl_node - Gets free cmd node from free cmd queue. 558 * lbtf_execute_next_command: execute next command in cmd pending queue. 567 struct cmd_header *cmd; lbtf_execute_next_command() local 591 cmd = cmdnode->cmdbuf; lbtf_execute_next_command() 595 le16_to_cpu(cmd->command)); lbtf_execute_next_command() 741 pr_info("libertastf: cmd response 0x%04x, seq %d, size %d\n", lbtf_process_rx_command()
|
/linux-4.1.27/drivers/net/wireless/ti/wl12xx/ |
H A D | Makefile | 1 wl12xx-objs = main.o cmd.o acx.o debugfs.o scan.o event.o
|
H A D | scan.c | 99 struct wl1271_cmd_scan *cmd; wl1271_scan_send() local 108 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl1271_scan_send() 110 if (!cmd || !trigger) { wl1271_scan_send() 121 cmd->params.role_id = wlvif->role_id; wl1271_scan_send() 123 if (WARN_ON(cmd->params.role_id == WL12XX_INVALID_ROLE_ID)) { wl1271_scan_send() 128 cmd->params.scan_options = cpu_to_le16(scan_options); wl1271_scan_send() 130 cmd->params.n_ch = wl1271_get_scan_channels(wl, wl->scan.req, wl1271_scan_send() 131 cmd->channels, wl1271_scan_send() 133 if (cmd->params.n_ch == 0) { wl1271_scan_send() 138 cmd->params.tx_rate = cpu_to_le32(basic_rate); wl1271_scan_send() 139 cmd->params.n_probe_reqs = wl->conf.scan.num_probe_reqs; wl1271_scan_send() 140 cmd->params.tid_trigger = CONF_TX_AC_ANY_TID; wl1271_scan_send() 141 cmd->params.scan_tag = WL1271_SCAN_DEFAULT_TAG; wl1271_scan_send() 144 cmd->params.band = WL1271_SCAN_BAND_2_4_GHZ; wl1271_scan_send() 146 cmd->params.band = WL1271_SCAN_BAND_5_GHZ; wl1271_scan_send() 149 cmd->params.ssid_len = wl->scan.ssid_len; wl1271_scan_send() 150 memcpy(cmd->params.ssid, wl->scan.ssid, wl->scan.ssid_len); wl1271_scan_send() 153 memcpy(cmd->addr, vif->addr, ETH_ALEN); wl1271_scan_send() 156 cmd->params.role_id, band, wl1271_scan_send() 173 wl1271_dump(DEBUG_SCAN, "SCAN: ", cmd, sizeof(*cmd)); wl1271_scan_send() 175 ret = wl1271_cmd_send(wl, CMD_SCAN, cmd, sizeof(*cmd), 0); wl1271_scan_send() 182 kfree(cmd); wl1271_scan_send() 189 struct wl1271_cmd_header *cmd = NULL; wl12xx_scan_stop() local 195 wl1271_debug(DEBUG_CMD, "cmd scan stop"); wl12xx_scan_stop() 197 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); wl12xx_scan_stop() 198 if (!cmd) { wl12xx_scan_stop() 203 ret = wl1271_cmd_send(wl, CMD_STOP_SCAN, cmd, wl12xx_scan_stop() 204 sizeof(*cmd), 0); wl12xx_scan_stop() 206 wl1271_error("cmd stop_scan failed"); wl12xx_scan_stop() 210 kfree(cmd); wl12xx_scan_stop() 302 static void wl12xx_adjust_channels(struct wl1271_cmd_sched_scan_config *cmd, wl12xx_adjust_channels() argument 305 memcpy(cmd->passive, cmd_channels->passive, sizeof(cmd->passive)); wl12xx_adjust_channels() 306 memcpy(cmd->active, cmd_channels->active, sizeof(cmd->active)); wl12xx_adjust_channels() 307 cmd->dfs = cmd_channels->dfs; wl12xx_adjust_channels() 308 cmd->n_pactive_ch = cmd_channels->passive_active; wl12xx_adjust_channels() 310 memcpy(cmd->channels_2, cmd_channels->channels_2, wl12xx_adjust_channels() 311 sizeof(cmd->channels_2)); wl12xx_adjust_channels() 312 memcpy(cmd->channels_5, cmd_channels->channels_5, wl12xx_adjust_channels() 313 sizeof(cmd->channels_5)); wl12xx_adjust_channels() 328 wl1271_debug(DEBUG_CMD, "cmd sched_scan scan config"); wl1271_scan_sched_scan_config() 428 wl1271_debug(DEBUG_CMD, "cmd periodic scan start"); wl1271_scan_sched_scan_start() 474 wl1271_debug(DEBUG_CMD, "cmd periodic scan stop"); wl12xx_scan_sched_scan_stop()
|
/linux-4.1.27/tools/perf/tests/ |
H A D | python-use.c | 13 char *cmd; test__python_use() local 16 if (asprintf(&cmd, "echo \"import sys ; sys.path.append('%s'); import perf\" | %s %s", test__python_use() 20 ret = system(cmd) ? -1 : 0; test__python_use() 21 free(cmd); test__python_use()
|
/linux-4.1.27/drivers/clk/ |
H A D | clk-mb86s7x.c | 55 struct mb86s7x_peri_clk cmd; crg_gate_control() local 58 cmd.payload_size = sizeof(cmd); crg_gate_control() 59 cmd.cntrlr = crgclk->cntrlr; crg_gate_control() 60 cmd.domain = crgclk->domain; crg_gate_control() 61 cmd.port = crgclk->port; crg_gate_control() 62 cmd.en = en; crg_gate_control() 65 if (cmd.port == 8) crg_gate_control() 69 __func__, __LINE__, cmd.cntrlr, crg_gate_control() 70 cmd.domain, cmd.port, cmd.en); crg_gate_control() 73 &cmd, sizeof(cmd)); crg_gate_control() 80 __func__, __LINE__, cmd.cntrlr, crg_gate_control() 81 cmd.domain, cmd.port, cmd.en); crg_gate_control() 84 if (cmd.en != en) crg_gate_control() 106 struct mb86s7x_peri_clk cmd; crg_rate_control() local 109 cmd.payload_size = sizeof(cmd); crg_rate_control() 110 cmd.cntrlr = crgclk->cntrlr; crg_rate_control() 111 cmd.domain = crgclk->domain; crg_rate_control() 112 cmd.port = crgclk->port; crg_rate_control() 113 cmd.frequency = *rate; crg_rate_control() 118 __func__, __LINE__, cmd.cntrlr, crg_rate_control() 119 cmd.domain, cmd.port, cmd.frequency); crg_rate_control() 123 __func__, __LINE__, cmd.cntrlr, crg_rate_control() 124 cmd.domain, cmd.port); crg_rate_control() 127 ret = mb86s7x_send_packet(code, &cmd, sizeof(cmd)); crg_rate_control() 135 __func__, __LINE__, cmd.cntrlr, crg_rate_control() 136 cmd.domain, cmd.port, cmd.frequency); crg_rate_control() 139 __func__, __LINE__, cmd.cntrlr, crg_rate_control() 140 cmd.domain, cmd.port, cmd.frequency); crg_rate_control() 142 *rate = cmd.frequency; crg_rate_control() 266 struct mb86s7x_cpu_freq cmd; mhu_cluster_rate() local 269 cmd.payload_size = sizeof(cmd); mhu_cluster_rate() 270 cmd.cluster_class = 0; mhu_cluster_rate() 271 cmd.cluster_id = clc->cluster; mhu_cluster_rate() 272 cmd.cpu_id = 0; mhu_cluster_rate() 273 cmd.frequency = *rate; mhu_cluster_rate() 281 __func__, __LINE__, cmd.cluster_class, mhu_cluster_rate() 282 cmd.cluster_id, cmd.cpu_id, cmd.frequency); mhu_cluster_rate() 284 ret = mb86s7x_send_packet(code, &cmd, sizeof(cmd)); mhu_cluster_rate() 291 __func__, __LINE__, cmd.cluster_class, mhu_cluster_rate() 292 cmd.cluster_id, cmd.cpu_id, cmd.frequency); mhu_cluster_rate() 294 *rate = cmd.frequency; mhu_cluster_rate()
|
/linux-4.1.27/drivers/video/fbdev/mb862xx/ |
H A D | mb862xxfb_accel.c | 49 __u32 cmd[6]; mb86290fb_copyarea() local 51 cmd[0] = (GDC_TYPE_SETREGISTER << 24) | (1 << 16) | GDC_REG_MODE_BITMAP; mb86290fb_copyarea() 53 cmd[1] = (2 << 7) | (GDC_ROP_COPY << 9); mb86290fb_copyarea() 54 cmd[2] = GDC_TYPE_BLTCOPYP << 24; mb86290fb_copyarea() 57 cmd[2] |= GDC_CMD_BLTCOPY_TOP_LEFT << 16; mb86290fb_copyarea() 59 cmd[2] |= GDC_CMD_BLTCOPY_BOTTOM_LEFT << 16; mb86290fb_copyarea() 61 cmd[2] |= GDC_CMD_BLTCOPY_TOP_RIGHT << 16; mb86290fb_copyarea() 63 cmd[2] |= GDC_CMD_BLTCOPY_BOTTOM_RIGHT << 16; mb86290fb_copyarea() 65 cmd[3] = (area->sy << 16) | area->sx; mb86290fb_copyarea() 66 cmd[4] = (area->dy << 16) | area->dx; mb86290fb_copyarea() 67 cmd[5] = (area->height << 16) | area->width; mb86290fb_copyarea() 68 mb862xxfb_write_fifo(6, cmd, info); mb86290fb_copyarea() 72 * Fill in the cmd array /GDC FIFO commands/ to draw a 1bit image. 73 * Make sure cmd has enough room! 75 static void mb86290fb_imageblit1(u32 *cmd, u16 step, u16 dx, u16 dy, mb86290fb_imageblit1() argument 85 cmd[0] = (GDC_TYPE_SETREGISTER << 24) | (1 << 16) | GDC_REG_MODE_BITMAP; mb86290fb_imageblit1() 87 cmd[1] = (2 << 7) | (GDC_ROP_COPY << 9); mb86290fb_imageblit1() 88 cmd[2] = mb86290fb_imageblit1() 90 cmd[3] = fgcolor; mb86290fb_imageblit1() 91 cmd[4] = mb86290fb_imageblit1() 93 cmd[5] = bgcolor; mb86290fb_imageblit1() 100 cmd[6] = (GDC_TYPE_DRAWBITMAPP << 24) | mb86290fb_imageblit1() 102 cmd[7] = (dy << 16) | dx; mb86290fb_imageblit1() 103 cmd[8] = (height << 16) | width; mb86290fb_imageblit1() 106 memcpy(&cmd[9 + i * step], line, step << 2); mb86290fb_imageblit1() 111 cmd[9 + i * step + k] = mb86290fb_imageblit1() 112 cpu_to_be32(cmd[9 + i * step + k]); mb86290fb_imageblit1() 121 * Fill in the cmd array /GDC FIFO commands/ to draw a 8bit image. 122 * Make sure cmd has enough room! 124 static void mb86290fb_imageblit8(u32 *cmd, u16 step, u16 dx, u16 dy, mb86290fb_imageblit8() argument 133 cmd[0] = (GDC_TYPE_DRAWBITMAPP << 24) | mb86290fb_imageblit8() 135 cmd[1] = (dy << 16) | dx; mb86290fb_imageblit8() 136 cmd[2] = (height << 16) | width; mb86290fb_imageblit8() 145 cmd[3 + i * step + j] = mb86290fb_imageblit8() 148 cmd[3 + i * step + j] |= mb86290fb_imageblit8() 160 * Fill in the cmd array /GDC FIFO commands/ to draw a 16bit image. 161 * Make sure cmd has enough room! 163 static void mb86290fb_imageblit16(u32 *cmd, u16 step, u16 dx, u16 dy, mb86290fb_imageblit16() argument 176 cmd[0] = (GDC_TYPE_DRAWBITMAPP << 24) | mb86290fb_imageblit16() 178 cmd[1] = (dy << 16) | dx; mb86290fb_imageblit16() 179 cmd[2] = (height << 16) | width; mb86290fb_imageblit16() 182 memcpy(&cmd[3 + i * step], line, step); mb86290fb_imageblit16() 192 u32 *cmd = NULL; mb86290fb_imageblit() local 248 cmd = kmalloc(cmdlen * 4, GFP_DMA); mb86290fb_imageblit() 249 if (!cmd) mb86290fb_imageblit() 251 cmdfn(cmd, step, dx, dy, width, height, fgcolor, bgcolor, image, info); mb86290fb_imageblit() 252 mb862xxfb_write_fifo(cmdlen, cmd, info); mb86290fb_imageblit() 253 kfree(cmd); mb86290fb_imageblit() 261 u32 cmd[7]; mb86290fb_fillrect() local 288 cmd[1] = (2 << 7) | (GDC_ROP_XOR << 9); mb86290fb_fillrect() 293 cmd[1] = (2 << 7) | (GDC_ROP_COPY << 9); mb86290fb_fillrect() 298 cmd[0] = (GDC_TYPE_SETREGISTER << 24) | (1 << 16) | GDC_REG_MODE_BITMAP; mb86290fb_fillrect() 299 /* cmd[1] set earlier */ mb86290fb_fillrect() 300 cmd[2] = mb86290fb_fillrect() 302 cmd[3] = fg; mb86290fb_fillrect() 303 cmd[4] = (GDC_TYPE_DRAWRECTP << 24) | (GDC_CMD_BLT_FILL << 16); mb86290fb_fillrect() 304 cmd[5] = (rect->dy << 16) | (rect->dx); mb86290fb_fillrect() 305 cmd[6] = (height << 16) | width; mb86290fb_fillrect() 307 mb862xxfb_write_fifo(7, cmd, info); mb86290fb_fillrect()
|
/linux-4.1.27/drivers/target/tcm_fc/ |
H A D | tfc_cmd.c | 49 * Dump cmd state for debugging. 51 static void _ft_dump_cmd(struct ft_cmd *cmd, const char *caller) _ft_dump_cmd() argument 59 se_cmd = &cmd->se_cmd; _ft_dump_cmd() 60 pr_debug("%s: cmd %p sess %p seq %p se_cmd %p\n", _ft_dump_cmd() 61 caller, cmd, cmd->sess, cmd->seq, se_cmd); _ft_dump_cmd() 63 pr_debug("%s: cmd %p data_nents %u len %u se_cmd_flags <0x%x>\n", _ft_dump_cmd() 64 caller, cmd, se_cmd->t_data_nents, _ft_dump_cmd() 68 pr_debug("%s: cmd %p sg %p page %p " _ft_dump_cmd() 70 caller, cmd, sg, _ft_dump_cmd() 73 sp = cmd->seq; _ft_dump_cmd() 76 pr_debug("%s: cmd %p sid %x did %x " _ft_dump_cmd() 78 caller, cmd, ep->sid, ep->did, ep->oxid, ep->rxid, _ft_dump_cmd() 83 void ft_dump_cmd(struct ft_cmd *cmd, const char *caller) ft_dump_cmd() argument 86 _ft_dump_cmd(cmd, caller); ft_dump_cmd() 89 static void ft_free_cmd(struct ft_cmd *cmd) ft_free_cmd() argument 95 if (!cmd) ft_free_cmd() 97 sess = cmd->sess; ft_free_cmd() 98 fp = cmd->req_frame; ft_free_cmd() 103 percpu_ida_free(&sess->se_sess->sess_tag_pool, cmd->se_cmd.map_tag); ft_free_cmd() 109 struct ft_cmd *cmd = container_of(se_cmd, struct ft_cmd, se_cmd); ft_release_cmd() local 111 ft_free_cmd(cmd); ft_release_cmd() 125 struct ft_cmd *cmd = container_of(se_cmd, struct ft_cmd, se_cmd); ft_queue_status() local 133 if (cmd->aborted) ft_queue_status() 135 ft_dump_cmd(cmd, __func__); ft_queue_status() 136 ep = fc_seq_exch(cmd->seq); ft_queue_status() 171 cmd->seq = lport->tt.seq_start_next(cmd->seq); ft_queue_status() 175 rc = lport->tt.seq_send(lport, cmd->seq, fp); ft_queue_status() 187 lport->tt.exch_done(cmd->seq); ft_queue_status() 193 struct ft_cmd *cmd = container_of(se_cmd, struct ft_cmd, se_cmd); ft_write_pending_status() local 195 return cmd->write_data_len != se_cmd->data_length; ft_write_pending_status() 203 struct ft_cmd *cmd = container_of(se_cmd, struct ft_cmd, se_cmd); ft_write_pending() local 211 ft_dump_cmd(cmd, __func__); ft_write_pending() 213 if (cmd->aborted) ft_write_pending() 215 ep = fc_seq_exch(cmd->seq); ft_write_pending() 225 cmd->seq = lport->tt.seq_start_next(cmd->seq); ft_write_pending() 243 cmd->was_ddp_setup = 1; ft_write_pending() 246 lport->tt.seq_send(lport, cmd->seq, fp); ft_write_pending() 252 struct ft_cmd *cmd = container_of(se_cmd, struct ft_cmd, se_cmd); ft_get_task_tag() local 254 if (cmd->aborted) ft_get_task_tag() 256 return fc_seq_exch(cmd->seq)->rxid; ft_get_task_tag() 269 struct ft_cmd *cmd = arg; ft_recv_seq() local 273 /* XXX need to find cmd if queued */ ft_recv_seq() 274 cmd->seq = NULL; ft_recv_seq() 275 cmd->aborted = true; ft_recv_seq() 283 ft_recv_write_data(cmd, fp); ft_recv_seq() 291 ft_invl_hw_context(cmd); ft_recv_seq() 293 transport_generic_free_cmd(&cmd->se_cmd, 0); ft_recv_seq() 346 static void ft_send_resp_code(struct ft_cmd *cmd, ft_send_resp_code() argument 349 ft_send_resp_status(cmd->sess->tport->lport, ft_send_resp_code() 350 cmd->req_frame, SAM_STAT_GOOD, code); ft_send_resp_code() 356 * Always frees the cmd and associated state. 358 static void ft_send_resp_code_and_free(struct ft_cmd *cmd, ft_send_resp_code_and_free() argument 361 ft_send_resp_code(cmd, code); ft_send_resp_code_and_free() 362 ft_free_cmd(cmd); ft_send_resp_code_and_free() 368 static void ft_send_tm(struct ft_cmd *cmd) ft_send_tm() argument 374 fcp = fc_frame_payload_get(cmd->req_frame, sizeof(*fcp)); ft_send_tm() 398 ft_send_resp_code_and_free(cmd, FCP_CMND_FIELDS_INVALID); ft_send_tm() 403 rc = target_submit_tmr(&cmd->se_cmd, cmd->sess->se_sess, ft_send_tm() 404 &cmd->ft_sense_buffer[0], scsilun_to_int(&fcp->fc_lun), ft_send_tm() 405 cmd, tm_func, GFP_KERNEL, 0, 0); ft_send_tm() 407 ft_send_resp_code_and_free(cmd, FCP_TMF_FAILED); ft_send_tm() 415 struct ft_cmd *cmd = container_of(se_cmd, struct ft_cmd, se_cmd); ft_queue_tm_resp() local 419 if (cmd->aborted) ft_queue_tm_resp() 439 ft_send_resp_code(cmd, code); ft_queue_tm_resp() 454 struct ft_cmd *cmd; ft_recv_cmd() local 463 cmd = &((struct ft_cmd *)se_sess->sess_cmd_map)[tag]; ft_recv_cmd() 464 memset(cmd, 0, sizeof(struct ft_cmd)); ft_recv_cmd() 466 cmd->se_cmd.map_tag = tag; ft_recv_cmd() 467 cmd->sess = sess; ft_recv_cmd() 468 cmd->seq = lport->tt.seq_assign(lport, fp); ft_recv_cmd() 469 if (!cmd->seq) { ft_recv_cmd() 473 cmd->req_frame = fp; /* hold frame during cmd */ ft_recv_cmd() 475 INIT_WORK(&cmd->work, ft_send_work); ft_recv_cmd() 476 queue_work(sess->tport->tpg->workqueue, &cmd->work); ft_recv_cmd() 480 pr_debug("cmd or seq allocation failure - sending BUSY\n"); ft_recv_cmd() 518 struct ft_cmd *cmd = container_of(work, struct ft_cmd, work); ft_send_work() local 519 struct fc_frame_header *fh = fc_frame_header_get(cmd->req_frame); ft_send_work() 524 fcp = fc_frame_payload_get(cmd->req_frame, sizeof(*fcp)); ft_send_work() 535 ft_send_tm(cmd); ft_send_work() 570 fc_seq_exch(cmd->seq)->lp->tt.seq_set_resp(cmd->seq, ft_recv_seq, cmd); ft_send_work() 575 if (target_submit_cmd(&cmd->se_cmd, cmd->sess->se_sess, fcp->fc_cdb, ft_send_work() 576 &cmd->ft_sense_buffer[0], scsilun_to_int(&fcp->fc_lun), ft_send_work() 584 ft_send_resp_code_and_free(cmd, FCP_CMND_FIELDS_INVALID); ft_send_work()
|
H A D | tfc_io.c | 62 struct ft_cmd *cmd = container_of(se_cmd, struct ft_cmd, se_cmd); ft_queue_data_in() local 83 if (cmd->aborted) ft_queue_data_in() 89 ep = fc_seq_exch(cmd->seq); ft_queue_data_in() 91 cmd->seq = lport->tt.seq_start_next(cmd->seq); ft_queue_data_in() 110 struct fc_seq *seq = cmd->seq; ft_queue_data_in() 130 cmd->sess->max_frame; ft_queue_data_in() 144 fr_max_payload(fp) = cmd->sess->max_frame; ft_queue_data_in() 207 struct ft_cmd *cmd = container_of(work, struct ft_cmd, work); ft_execute_work() local 209 target_execute_cmd(&cmd->se_cmd); ft_execute_work() 215 void ft_recv_write_data(struct ft_cmd *cmd, struct fc_frame *fp) ft_recv_write_data() argument 217 struct se_cmd *se_cmd = &cmd->se_cmd; ft_recv_write_data() 218 struct fc_seq *seq = cmd->seq; ft_recv_write_data() 242 if (cmd->was_ddp_setup) { ft_recv_write_data() 251 pr_err("%s: xid 0x%x, f_ctl 0x%x, cmd->sg %p, " ft_recv_write_data() 252 "cmd->sg_cnt 0x%x. DDP was setup" ft_recv_write_data() 263 ft_invl_hw_context(cmd); ft_recv_write_data() 333 cmd->write_data_len += tlen; ft_recv_write_data() 336 if (cmd->write_data_len == se_cmd->data_length) { ft_recv_write_data() 337 INIT_WORK(&cmd->work, ft_execute_work); ft_recv_write_data() 338 queue_work(cmd->sess->tport->tpg->workqueue, &cmd->work); ft_recv_write_data() 348 void ft_invl_hw_context(struct ft_cmd *cmd) ft_invl_hw_context() argument 354 BUG_ON(!cmd); ft_invl_hw_context() 355 seq = cmd->seq; ft_invl_hw_context() 358 if (cmd->was_ddp_setup && seq) { ft_invl_hw_context() 367 cmd->write_data_len = lport->tt.ddp_done(lport, ft_invl_hw_context() 376 cmd->was_ddp_setup = 0; ft_invl_hw_context()
|
/linux-4.1.27/drivers/misc/ibmasm/ |
H A D | command.c | 36 struct command *cmd; ibmasm_new_command() local 41 cmd = kzalloc(sizeof(struct command), GFP_KERNEL); ibmasm_new_command() 42 if (cmd == NULL) ibmasm_new_command() 46 cmd->buffer = kzalloc(buffer_size, GFP_KERNEL); ibmasm_new_command() 47 if (cmd->buffer == NULL) { ibmasm_new_command() 48 kfree(cmd); ibmasm_new_command() 51 cmd->buffer_size = buffer_size; ibmasm_new_command() 53 kref_init(&cmd->kref); ibmasm_new_command() 54 cmd->lock = &sp->lock; ibmasm_new_command() 56 cmd->status = IBMASM_CMD_PENDING; ibmasm_new_command() 57 init_waitqueue_head(&cmd->wait); ibmasm_new_command() 58 INIT_LIST_HEAD(&cmd->queue_node); ibmasm_new_command() 63 return cmd; ibmasm_new_command() 68 struct command *cmd = to_command(kref); ibmasm_free_command() local 70 list_del(&cmd->queue_node); ibmasm_free_command() 73 kfree(cmd->buffer); ibmasm_free_command() 74 kfree(cmd); ibmasm_free_command() 77 static void enqueue_command(struct service_processor *sp, struct command *cmd) enqueue_command() argument 79 list_add_tail(&cmd->queue_node, &sp->command_queue); enqueue_command() 84 struct command *cmd; dequeue_command() local 92 cmd = list_entry(next, struct command, queue_node); dequeue_command() 94 return cmd; dequeue_command() 119 void ibmasm_exec_command(struct service_processor *sp, struct command *cmd) ibmasm_exec_command() argument 129 sp->current_command = cmd; ibmasm_exec_command() 134 enqueue_command(sp, cmd); ibmasm_exec_command() 162 void ibmasm_wait_for_response(struct command *cmd, int timeout) ibmasm_wait_for_response() argument 164 wait_event_interruptible_timeout(cmd->wait, ibmasm_wait_for_response() 165 cmd->status == IBMASM_CMD_COMPLETE || ibmasm_wait_for_response() 166 cmd->status == IBMASM_CMD_FAILED, ibmasm_wait_for_response() 177 struct command *cmd = sp->current_command; ibmasm_receive_command_response() local 182 memcpy_fromio(cmd->buffer, response, min(size, cmd->buffer_size)); ibmasm_receive_command_response() 183 cmd->status = IBMASM_CMD_COMPLETE; ibmasm_receive_command_response()
|
H A D | dot_command.h | 55 struct dot_command_header *cmd = (struct dot_command_header *)buffer; get_dot_command_size() local 56 return sizeof(struct dot_command_header) + cmd->command_size + cmd->data_size; get_dot_command_size() 62 unsigned char *cmd = buffer + sizeof(struct dot_command_header); get_dot_command_timeout() local 67 if ((cmd[0] == 6) && (cmd[1] == 3) && (cmd[2] == 1)) get_dot_command_timeout() 70 if ((cmd[0] == 7) && (cmd[1] == 1)) get_dot_command_timeout() 72 if (cmd[0] == 8) get_dot_command_timeout()
|
H A D | r_heartbeat.c | 63 struct command *cmd; ibmasm_start_reverse_heartbeat() local 67 cmd = ibmasm_new_command(sp, sizeof rhb_dot_cmd); ibmasm_start_reverse_heartbeat() 68 if (!cmd) ibmasm_start_reverse_heartbeat() 72 memcpy(cmd->buffer, (void *)&rhb_dot_cmd, sizeof rhb_dot_cmd); ibmasm_start_reverse_heartbeat() 73 cmd->status = IBMASM_CMD_PENDING; ibmasm_start_reverse_heartbeat() 74 ibmasm_exec_command(sp, cmd); ibmasm_start_reverse_heartbeat() 75 ibmasm_wait_for_response(cmd, IBMASM_CMD_TIMEOUT_NORMAL); ibmasm_start_reverse_heartbeat() 77 if (cmd->status != IBMASM_CMD_COMPLETE) ibmasm_start_reverse_heartbeat() 89 command_put(cmd); ibmasm_start_reverse_heartbeat()
|
/linux-4.1.27/drivers/macintosh/ |
H A D | smu.c | 16 * - maybe avoid some data copies with i2c by directly using the smu cmd 68 u8 cmd; member in struct:smu_cmd_buf 112 struct smu_cmd *cmd; smu_start_cmd() local 118 cmd = list_entry(smu->cmd_list.next, struct smu_cmd, link); smu_start_cmd() 119 smu->cmd_cur = cmd; smu_start_cmd() 120 list_del(&cmd->link); smu_start_cmd() 122 DPRINTK("SMU: starting cmd %x, %d bytes data\n", cmd->cmd, smu_start_cmd() 123 cmd->data_len); smu_start_cmd() 124 DPRINTK("SMU: data buffer: %8ph\n", cmd->data_buf); smu_start_cmd() 127 smu->cmd_buf->cmd = cmd->cmd; smu_start_cmd() 128 smu->cmd_buf->length = cmd->data_len; smu_start_cmd() 129 memcpy(smu->cmd_buf->data, cmd->data_buf, cmd->data_len); smu_start_cmd() 163 struct smu_cmd *cmd; smu_db_intr() local 164 void (*done)(struct smu_cmd *cmd, void *misc) = NULL; smu_db_intr() 180 cmd = smu->cmd_cur; smu_db_intr() 182 if (cmd == NULL) smu_db_intr() 199 ack = (~cmd->cmd) & 0xff; smu_db_intr() 200 if (ack != smu->cmd_buf->cmd) { smu_db_intr() 202 ack, smu->cmd_buf->cmd); smu_db_intr() 207 if (reply_len > cmd->reply_len) { smu_db_intr() 210 reply_len, cmd->reply_len); smu_db_intr() 211 reply_len = cmd->reply_len; smu_db_intr() 213 cmd->reply_len = reply_len; smu_db_intr() 214 if (cmd->reply_buf && reply_len) smu_db_intr() 215 memcpy(cmd->reply_buf, smu->cmd_buf->data, reply_len); smu_db_intr() 221 done = cmd->done; smu_db_intr() 222 misc = cmd->misc; smu_db_intr() 224 cmd->status = rc; smu_db_intr() 236 done(cmd, misc); smu_db_intr() 262 int smu_queue_cmd(struct smu_cmd *cmd) smu_queue_cmd() argument 268 if (cmd->data_len > SMU_MAX_DATA || smu_queue_cmd() 269 cmd->reply_len > SMU_MAX_DATA) smu_queue_cmd() 272 cmd->status = 1; smu_queue_cmd() 274 list_add_tail(&cmd->link, &smu->cmd_list); smu_queue_cmd() 281 smu_spinwait_cmd(cmd); smu_queue_cmd() 290 void (*done)(struct smu_cmd *cmd, void *misc), smu_queue_simple() 293 struct smu_cmd *cmd = &scmd->cmd; smu_queue_simple() local 301 cmd->cmd = command; smu_queue_simple() 302 cmd->data_len = data_len; smu_queue_simple() 303 cmd->data_buf = scmd->buffer; smu_queue_simple() 304 cmd->reply_len = sizeof(scmd->buffer); smu_queue_simple() 305 cmd->reply_buf = scmd->buffer; smu_queue_simple() 306 cmd->done = done; smu_queue_simple() 307 cmd->misc = misc; smu_queue_simple() 314 return smu_queue_cmd(cmd); smu_queue_simple() 333 void smu_done_complete(struct smu_cmd *cmd, void *misc) smu_done_complete() argument 342 void smu_spinwait_cmd(struct smu_cmd *cmd) smu_spinwait_cmd() argument 344 while(cmd->status == 1) smu_spinwait_cmd() 366 cmd_buf->cmd = 0x8e; smu_fill_set_rtc_cmd() 381 struct smu_simple_cmd cmd; smu_get_rtc_time() local 388 rc = smu_queue_simple(&cmd, SMU_CMD_RTC_COMMAND, 1, NULL, NULL, smu_get_rtc_time() 392 smu_spinwait_simple(&cmd); smu_get_rtc_time() 394 time->tm_sec = bcd2hex(cmd.buffer[0]); smu_get_rtc_time() 395 time->tm_min = bcd2hex(cmd.buffer[1]); smu_get_rtc_time() 396 time->tm_hour = bcd2hex(cmd.buffer[2]); smu_get_rtc_time() 397 time->tm_wday = bcd2hex(cmd.buffer[3]); smu_get_rtc_time() 398 time->tm_mday = bcd2hex(cmd.buffer[4]); smu_get_rtc_time() 399 time->tm_mon = bcd2hex(cmd.buffer[5]) - 1; smu_get_rtc_time() 400 time->tm_year = bcd2hex(cmd.buffer[6]) + 100; smu_get_rtc_time() 408 struct smu_simple_cmd cmd; smu_set_rtc_time() local 414 rc = smu_queue_simple(&cmd, SMU_CMD_RTC_COMMAND, 8, NULL, NULL, smu_set_rtc_time() 425 smu_spinwait_simple(&cmd); smu_set_rtc_time() 433 struct smu_simple_cmd cmd; smu_shutdown() local 438 if (smu_queue_simple(&cmd, SMU_CMD_POWER_COMMAND, 9, NULL, NULL, smu_shutdown() 441 smu_spinwait_simple(&cmd); smu_shutdown() 449 struct smu_simple_cmd cmd; smu_restart() local 454 if (smu_queue_simple(&cmd, SMU_CMD_POWER_COMMAND, 8, NULL, NULL, smu_restart() 457 smu_spinwait_simple(&cmd); smu_restart() 700 static void smu_i2c_complete_command(struct smu_i2c_cmd *cmd, int fail) smu_i2c_complete_command() argument 702 void (*done)(struct smu_i2c_cmd *cmd, void *misc) = cmd->done; smu_i2c_complete_command() 703 void *misc = cmd->misc; smu_i2c_complete_command() 707 if (!fail && cmd->read) { smu_i2c_complete_command() 708 if (cmd->pdata[0] < 1) smu_i2c_complete_command() 711 memcpy(cmd->info.data, &cmd->pdata[1], smu_i2c_complete_command() 712 cmd->info.datalen); smu_i2c_complete_command() 724 cmd->status = fail ? -EIO : 0; smu_i2c_complete_command() 734 list_del(&cmd->link); smu_i2c_complete_command() 737 list_add_tail(&cmd->scmd.link, &smu->cmd_list); smu_i2c_complete_command() 745 done(cmd, misc); smu_i2c_complete_command() 752 struct smu_i2c_cmd *cmd = smu->cmd_i2c_cur; smu_i2c_retry() local 757 cmd->pdata[0] = 0xff; smu_i2c_retry() 758 cmd->scmd.reply_len = sizeof(cmd->pdata); smu_i2c_retry() 759 smu_queue_cmd(&cmd->scmd); smu_i2c_retry() 765 struct smu_i2c_cmd *cmd = misc; smu_i2c_low_completion() local 769 cmd->stage, scmd->status, cmd->pdata[0], scmd->reply_len); smu_i2c_low_completion() 774 else if (cmd->read) { smu_i2c_low_completion() 775 if (cmd->stage == 0) smu_i2c_low_completion() 776 fail = cmd->pdata[0] != 0; smu_i2c_low_completion() 778 fail = cmd->pdata[0] >= 0x80; smu_i2c_low_completion() 780 fail = cmd->pdata[0] != 0; smu_i2c_low_completion() 785 if (fail && --cmd->retries > 0) { smu_i2c_low_completion() 787 BUG_ON(cmd != smu->cmd_i2c_cur); smu_i2c_low_completion() 798 if (fail || cmd->stage != 0) { smu_i2c_low_completion() 799 smu_i2c_complete_command(cmd, fail); smu_i2c_low_completion() 806 scmd->reply_buf = cmd->pdata; smu_i2c_low_completion() 807 scmd->reply_len = sizeof(cmd->pdata); smu_i2c_low_completion() 808 scmd->data_buf = cmd->pdata; smu_i2c_low_completion() 810 cmd->pdata[0] = 0; smu_i2c_low_completion() 811 cmd->stage = 1; smu_i2c_low_completion() 812 cmd->retries = 20; smu_i2c_low_completion() 817 int smu_queue_i2c(struct smu_i2c_cmd *cmd) smu_queue_i2c() argument 825 cmd->scmd.cmd = SMU_CMD_I2C_COMMAND; smu_queue_i2c() 826 cmd->scmd.done = smu_i2c_low_completion; smu_queue_i2c() 827 cmd->scmd.misc = cmd; smu_queue_i2c() 828 cmd->scmd.reply_buf = cmd->pdata; smu_queue_i2c() 829 cmd->scmd.reply_len = sizeof(cmd->pdata); smu_queue_i2c() 830 cmd->scmd.data_buf = (u8 *)(char *)&cmd->info; smu_queue_i2c() 831 cmd->scmd.status = 1; smu_queue_i2c() 832 cmd->stage = 0; smu_queue_i2c() 833 cmd->pdata[0] = 0xff; smu_queue_i2c() 834 cmd->retries = 20; smu_queue_i2c() 835 cmd->status = 1; smu_queue_i2c() 840 cmd->info.caddr = cmd->info.devaddr; smu_queue_i2c() 841 cmd->read = cmd->info.devaddr & 0x01; smu_queue_i2c() 842 switch(cmd->info.type) { smu_queue_i2c() 844 memset(&cmd->info.sublen, 0, 4); smu_queue_i2c() 847 cmd->info.devaddr &= 0xfe; smu_queue_i2c() 849 if (cmd->info.sublen > 3) smu_queue_i2c() 858 if (cmd->read) { smu_queue_i2c() 859 if (cmd->info.datalen > SMU_I2C_READ_MAX) smu_queue_i2c() 861 memset(cmd->info.data, 0xff, cmd->info.datalen); smu_queue_i2c() 862 cmd->scmd.data_len = 9; smu_queue_i2c() 864 if (cmd->info.datalen > SMU_I2C_WRITE_MAX) smu_queue_i2c() 866 cmd->scmd.data_len = 9 + cmd->info.datalen; smu_queue_i2c() 871 cmd->read ? "read" : "write", cmd->info.datalen, smu_queue_i2c() 872 cmd->info.bus, cmd->info.caddr, smu_queue_i2c() 873 cmd->info.subaddr[0], cmd->info.type); smu_queue_i2c() 881 smu->cmd_i2c_cur = cmd; smu_queue_i2c() 882 list_add_tail(&cmd->scmd.link, &smu->cmd_list); smu_queue_i2c() 886 list_add_tail(&cmd->link, &smu->cmd_i2c_list); smu_queue_i2c() 900 struct smu_cmd cmd; smu_read_datablock() local 912 cmd.cmd = SMU_CMD_MISC_ee_COMMAND; smu_read_datablock() 913 cmd.data_len = 7; smu_read_datablock() 914 cmd.data_buf = params; smu_read_datablock() 915 cmd.reply_len = chunk; smu_read_datablock() 916 cmd.reply_buf = dest; smu_read_datablock() 917 cmd.done = smu_done_complete; smu_read_datablock() 918 cmd.misc = ∁ smu_read_datablock() 924 rc = smu_queue_cmd(&cmd); smu_read_datablock() 928 if (cmd.status != 0) smu_read_datablock() 930 if (cmd.reply_len != clen) { smu_read_datablock() 933 cmd.reply_len, clen); smu_read_datablock() 946 struct smu_simple_cmd cmd; smu_create_sdb_partition() local 953 smu_queue_simple(&cmd, SMU_CMD_PARTITION_COMMAND, 2, smu_create_sdb_partition() 958 cmd.cmd.status, cmd.cmd.reply_len); smu_create_sdb_partition() 961 if (cmd.cmd.status != 0 || cmd.cmd.reply_len != 6) smu_create_sdb_partition() 965 addr = *((u16 *)cmd.buffer); smu_create_sdb_partition() 966 len = cmd.buffer[3] << 2; smu_create_sdb_partition() 1068 struct smu_cmd cmd; member in struct:smu_private 1098 static void smu_user_cmd_done(struct smu_cmd *cmd, void *misc) smu_user_cmd_done() argument 1123 part = __smu_get_sdb_partition(hdr.cmd, NULL, 1); smu_write() 1142 pp->cmd.status = 1; smu_write() 1150 pp->cmd.cmd = hdr.cmd; smu_write() 1151 pp->cmd.data_len = hdr.data_len; smu_write() 1152 pp->cmd.reply_len = SMU_MAX_DATA; smu_write() 1153 pp->cmd.data_buf = pp->buffer; smu_write() 1154 pp->cmd.reply_buf = pp->buffer; smu_write() 1155 pp->cmd.done = smu_user_cmd_done; smu_write() 1156 pp->cmd.misc = pp; smu_write() 1157 rc = smu_queue_cmd(&pp->cmd); smu_write() 1177 if (pp->cmd.status == 1) { smu_read_command() 1186 if (pp->cmd.status != 1) smu_read_command() 1201 if (pp->cmd.status != 0) smu_read_command() 1202 pp->cmd.reply_len = 0; smu_read_command() 1203 size = sizeof(hdr) + pp->cmd.reply_len; smu_read_command() 1207 hdr.status = pp->cmd.status; smu_read_command() 1208 hdr.reply_len = pp->cmd.reply_len; smu_read_command() 1255 if (pp->busy && pp->cmd.status != 1) smu_fpoll() 1282 if (busy && pp->cmd.status == 1) { smu_release() 1288 if (pp->cmd.status != 1) smu_release() 288 smu_queue_simple(struct smu_simple_cmd *scmd, u8 command, unsigned int data_len, void (*done)(struct smu_cmd *cmd, void *misc), void *misc, ...) smu_queue_simple() argument
|
/linux-4.1.27/fs/ocfs2/ |
H A D | ioctl.h | 13 long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg); 14 long ocfs2_compat_ioctl(struct file *file, unsigned cmd, unsigned long arg);
|
/linux-4.1.27/drivers/net/wireless/ath/carl9170/ |
H A D | Makefile | 1 carl9170-objs := main.o usb.o cmd.o mac.o phy.o led.o fw.o tx.o rx.o
|
H A D | cmd.c | 41 #include "cmd.h" 119 const enum carl9170_cmd_oids cmd, const unsigned int len) carl9170_cmd_buf() 125 tmp->hdr.cmd = cmd; carl9170_cmd_buf() 134 struct carl9170_cmd *cmd; carl9170_reboot() local 137 cmd = carl9170_cmd_buf(ar, CARL9170_CMD_REBOOT_ASYNC, 0); carl9170_reboot() 138 if (!cmd) carl9170_reboot() 141 err = __carl9170_exec_cmd(ar, cmd, true); carl9170_reboot() 154 struct carl9170_cmd *cmd; carl9170_bcn_ctrl() local 156 cmd = carl9170_cmd_buf(ar, CARL9170_CMD_BCN_CTRL_ASYNC, carl9170_bcn_ctrl() 158 if (!cmd) carl9170_bcn_ctrl() 161 cmd->bcn_ctrl.vif_id = cpu_to_le32(vif_id); carl9170_bcn_ctrl() 162 cmd->bcn_ctrl.mode = cpu_to_le32(mode); carl9170_bcn_ctrl() 163 cmd->bcn_ctrl.bcn_addr = cpu_to_le32(addr); carl9170_bcn_ctrl() 164 cmd->bcn_ctrl.bcn_len = cpu_to_le32(len); carl9170_bcn_ctrl() 166 return __carl9170_exec_cmd(ar, cmd, true); carl9170_bcn_ctrl() 204 struct carl9170_cmd *cmd; carl9170_powersave() local 207 cmd = carl9170_cmd_buf(ar, CARL9170_CMD_PSM_ASYNC, carl9170_powersave() 209 if (!cmd) carl9170_powersave() 220 cmd->psm.state = cpu_to_le32(state); carl9170_powersave() 221 return __carl9170_exec_cmd(ar, cmd, true); carl9170_powersave() 118 carl9170_cmd_buf(struct ar9170 *ar, const enum carl9170_cmd_oids cmd, const unsigned int len) carl9170_cmd_buf() argument
|
/linux-4.1.27/drivers/net/wireless/iwlwifi/dvm/ |
H A D | power.c | 61 struct iwl_powertable_cmd cmd; member in struct:iwl_power_vec_entry 160 struct iwl_powertable_cmd *cmd, iwl_static_sleep_cmd() 184 memset(cmd, 0, sizeof(*cmd)); iwl_static_sleep_cmd() 186 *cmd = table[lvl].cmd; iwl_static_sleep_cmd() 197 max_sleep[i] = le32_to_cpu(cmd->sleep_interval[i]); iwl_static_sleep_cmd() 201 slp_itrvl = le32_to_cpu(cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1]); iwl_static_sleep_cmd() 204 cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1] = iwl_static_sleep_cmd() 207 slp_itrvl = le32_to_cpu(cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1]); iwl_static_sleep_cmd() 209 cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1] = iwl_static_sleep_cmd() 213 cmd->flags |= IWL_POWER_SLEEP_OVER_DTIM_MSK; iwl_static_sleep_cmd() 215 cmd->flags &= ~IWL_POWER_SLEEP_OVER_DTIM_MSK; iwl_static_sleep_cmd() 218 cmd->flags |= IWL_POWER_SHADOW_REG_ENA; iwl_static_sleep_cmd() 220 cmd->flags &= ~IWL_POWER_SHADOW_REG_ENA; iwl_static_sleep_cmd() 224 cmd->flags |= IWL_POWER_BT_SCO_ENA; iwl_static_sleep_cmd() 226 cmd->flags &= ~IWL_POWER_BT_SCO_ENA; iwl_static_sleep_cmd() 230 slp_itrvl = le32_to_cpu(cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1]); iwl_static_sleep_cmd() 232 cmd->sleep_interval[IWL_POWER_VEC_SIZE - 1] = iwl_static_sleep_cmd() 237 if (le32_to_cpu(cmd->sleep_interval[i]) > iwl_static_sleep_cmd() 239 cmd->sleep_interval[i] = iwl_static_sleep_cmd() 242 if (le32_to_cpu(cmd->sleep_interval[i]) > iwl_static_sleep_cmd() 243 le32_to_cpu(cmd->sleep_interval[i+1])) iwl_static_sleep_cmd() 244 cmd->sleep_interval[i] = iwl_static_sleep_cmd() 245 cmd->sleep_interval[i+1]; iwl_static_sleep_cmd() 250 cmd->flags |= IWL_POWER_PCI_PM_MSK; iwl_static_sleep_cmd() 252 cmd->flags &= ~IWL_POWER_PCI_PM_MSK; iwl_static_sleep_cmd() 262 struct iwl_powertable_cmd *cmd) iwl_power_sleep_cam_cmd() 264 memset(cmd, 0, sizeof(*cmd)); iwl_power_sleep_cam_cmd() 267 cmd->flags |= IWL_POWER_PCI_PM_MSK; iwl_power_sleep_cam_cmd() 272 static int iwl_set_power(struct iwl_priv *priv, struct iwl_powertable_cmd *cmd) iwl_set_power() argument 275 IWL_DEBUG_POWER(priv, "Flags value = 0x%08X\n", cmd->flags); iwl_set_power() 276 IWL_DEBUG_POWER(priv, "Tx timeout = %u\n", le32_to_cpu(cmd->tx_data_timeout)); iwl_set_power() 277 IWL_DEBUG_POWER(priv, "Rx timeout = %u\n", le32_to_cpu(cmd->rx_data_timeout)); iwl_set_power() 279 le32_to_cpu(cmd->sleep_interval[0]), iwl_set_power() 280 le32_to_cpu(cmd->sleep_interval[1]), iwl_set_power() 281 le32_to_cpu(cmd->sleep_interval[2]), iwl_set_power() 282 le32_to_cpu(cmd->sleep_interval[3]), iwl_set_power() 283 le32_to_cpu(cmd->sleep_interval[4])); iwl_set_power() 286 sizeof(struct iwl_powertable_cmd), cmd); iwl_set_power() 290 struct iwl_powertable_cmd *cmd) iwl_power_build_cmd() 296 iwl_power_sleep_cam_cmd(priv, cmd); iwl_power_build_cmd() 303 iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_5, dtimper); iwl_power_build_cmd() 306 iwl_static_sleep_cmd(priv, cmd, IWL_POWER_INDEX_5, 20); iwl_power_build_cmd() 309 iwl_static_sleep_cmd(priv, cmd, iwl_power_build_cmd() 312 iwl_power_sleep_cam_cmd(priv, cmd); iwl_power_build_cmd() 314 iwl_static_sleep_cmd(priv, cmd, iwl_power_build_cmd() 322 iwl_static_sleep_cmd(priv, cmd, iwl_power_build_cmd() 325 iwl_static_sleep_cmd(priv, cmd, iwl_power_build_cmd() 330 int iwl_power_set_mode(struct iwl_priv *priv, struct iwl_powertable_cmd *cmd, iwl_power_set_mode() argument 342 if (!memcmp(&priv->power_data.sleep_cmd, cmd, sizeof(*cmd)) && !force) iwl_power_set_mode() 349 memcpy(&priv->power_data.sleep_cmd_next, cmd, sizeof(*cmd)); iwl_power_set_mode() 355 if (cmd->flags & IWL_POWER_DRIVER_ALLOW_SLEEP_MSK) iwl_power_set_mode() 358 ret = iwl_set_power(priv, cmd); iwl_power_set_mode() 360 if (!(cmd->flags & IWL_POWER_DRIVER_ALLOW_SLEEP_MSK)) iwl_power_set_mode() 371 memcpy(&priv->power_data.sleep_cmd, cmd, sizeof(*cmd)); iwl_power_set_mode() 380 struct iwl_powertable_cmd cmd; iwl_power_update_mode() local 382 iwl_power_build_cmd(priv, &cmd); iwl_power_update_mode() 383 return iwl_power_set_mode(priv, &cmd, force); iwl_power_update_mode() 159 iwl_static_sleep_cmd(struct iwl_priv *priv, struct iwl_powertable_cmd *cmd, enum iwl_power_level lvl, int period) iwl_static_sleep_cmd() argument 261 iwl_power_sleep_cam_cmd(struct iwl_priv *priv, struct iwl_powertable_cmd *cmd) iwl_power_sleep_cam_cmd() argument 289 iwl_power_build_cmd(struct iwl_priv *priv, struct iwl_powertable_cmd *cmd) iwl_power_build_cmd() argument
|
H A D | ucode.c | 62 struct iwl_calib_xtal_freq_cmd cmd; iwl_set_Xtal_calib() local 65 iwl_set_calib_hdr(&cmd.hdr, IWL_PHY_CALIBRATE_CRYSTAL_FRQ_CMD); iwl_set_Xtal_calib() 66 cmd.cap_pin1 = le16_to_cpu(xtal_calib[0]); iwl_set_Xtal_calib() 67 cmd.cap_pin2 = le16_to_cpu(xtal_calib[1]); iwl_set_Xtal_calib() 68 return iwl_calib_set(priv, (void *)&cmd, sizeof(cmd)); iwl_set_Xtal_calib() 73 struct iwl_calib_temperature_offset_cmd cmd; iwl_set_temperature_offset_calib() local 75 memset(&cmd, 0, sizeof(cmd)); iwl_set_temperature_offset_calib() 76 iwl_set_calib_hdr(&cmd.hdr, IWL_PHY_CALIBRATE_TEMP_OFFSET_CMD); iwl_set_temperature_offset_calib() 77 cmd.radio_sensor_offset = priv->nvm_data->raw_temperature; iwl_set_temperature_offset_calib() 78 if (!(cmd.radio_sensor_offset)) iwl_set_temperature_offset_calib() 79 cmd.radio_sensor_offset = DEFAULT_RADIO_SENSOR_OFFSET; iwl_set_temperature_offset_calib() 82 le16_to_cpu(cmd.radio_sensor_offset)); iwl_set_temperature_offset_calib() 83 return iwl_calib_set(priv, (void *)&cmd, sizeof(cmd)); iwl_set_temperature_offset_calib() 88 struct iwl_calib_temperature_offset_v2_cmd cmd; iwl_set_temperature_offset_calib_v2() local 90 memset(&cmd, 0, sizeof(cmd)); iwl_set_temperature_offset_calib_v2() 91 iwl_set_calib_hdr(&cmd.hdr, IWL_PHY_CALIBRATE_TEMP_OFFSET_CMD); iwl_set_temperature_offset_calib_v2() 92 cmd.radio_sensor_offset_high = priv->nvm_data->kelvin_temperature; iwl_set_temperature_offset_calib_v2() 93 cmd.radio_sensor_offset_low = priv->nvm_data->raw_temperature; iwl_set_temperature_offset_calib_v2() 94 if (!cmd.radio_sensor_offset_low) { iwl_set_temperature_offset_calib_v2() 96 cmd.radio_sensor_offset_low = DEFAULT_RADIO_SENSOR_OFFSET; iwl_set_temperature_offset_calib_v2() 97 cmd.radio_sensor_offset_high = DEFAULT_RADIO_SENSOR_OFFSET; iwl_set_temperature_offset_calib_v2() 99 cmd.burntVoltageRef = priv->nvm_data->calib_voltage; iwl_set_temperature_offset_calib_v2() 102 le16_to_cpu(cmd.radio_sensor_offset_high)); iwl_set_temperature_offset_calib_v2() 104 le16_to_cpu(cmd.radio_sensor_offset_low)); iwl_set_temperature_offset_calib_v2() 106 le16_to_cpu(cmd.burntVoltageRef)); iwl_set_temperature_offset_calib_v2() 108 return iwl_calib_set(priv, (void *)&cmd, sizeof(cmd)); iwl_set_temperature_offset_calib_v2() 114 struct iwl_host_cmd cmd = { iwl_send_calib_cfg() local 127 return iwl_dvm_send_cmd(priv, &cmd); iwl_send_calib_cfg() 392 if (pkt->hdr.cmd != CALIBRATION_RES_NOTIFICATION) { iwlagn_wait_calib() 393 WARN_ON(pkt->hdr.cmd != CALIBRATION_COMPLETE_NOTIFICATION); iwlagn_wait_calib()
|
/linux-4.1.27/drivers/net/wireless/libertas/ |
H A D | cmd.c | 15 #include "cmd.h" 63 * @cmd: the command ID 67 static u8 is_command_allowed_in_ps(u16 cmd) is_command_allowed_in_ps() argument 69 switch (cmd) { is_command_allowed_in_ps() 90 struct cmd_ds_get_hw_spec cmd; lbs_update_hw_spec() local 96 memset(&cmd, 0, sizeof(cmd)); lbs_update_hw_spec() 97 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_update_hw_spec() 98 memcpy(cmd.permanentaddr, priv->current_addr, ETH_ALEN); lbs_update_hw_spec() 99 ret = lbs_cmd_with_response(priv, CMD_GET_HW_SPEC, &cmd); lbs_update_hw_spec() 103 priv->fwcapinfo = le32_to_cpu(cmd.fwcapinfo); lbs_update_hw_spec() 107 priv->fwrelease = le32_to_cpu(cmd.fwrelease); lbs_update_hw_spec() 116 cmd.permanentaddr, lbs_update_hw_spec() 123 cmd.hwifversion, cmd.version); lbs_update_hw_spec() 133 priv->regioncode = (le16_to_cpu(cmd.regioncode) >> 8) & 0xFF; lbs_update_hw_spec() 135 priv->regioncode = le16_to_cpu(cmd.regioncode) & 0xFF; lbs_update_hw_spec() 151 memmove(priv->current_addr, cmd.permanentaddr, ETH_ALEN); lbs_update_hw_spec() 236 struct cmd_ds_802_11_ps_mode cmd; lbs_set_ps_mode() local 241 memset(&cmd, 0, sizeof(cmd)); lbs_set_ps_mode() 242 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_ps_mode() 243 cmd.action = cpu_to_le16(cmd_action); lbs_set_ps_mode() 247 cmd.multipledtim = cpu_to_le16(1); /* Default DTIM multiple */ lbs_set_ps_mode() 260 ret = lbs_cmd_with_response(priv, CMD_802_11_PS_MODE, &cmd); lbs_set_ps_mode() 262 lbs_cmd_async(priv, CMD_802_11_PS_MODE, &cmd.hdr, sizeof (cmd)); lbs_set_ps_mode() 272 struct cmd_ds_802_11_sleep_params cmd; lbs_cmd_802_11_sleep_params() local 278 memset(&cmd, 0, sizeof(cmd)); lbs_cmd_802_11_sleep_params() 280 cmd.error = cpu_to_le16(sp->sp_error); lbs_cmd_802_11_sleep_params() 281 cmd.offset = cpu_to_le16(sp->sp_offset); lbs_cmd_802_11_sleep_params() 282 cmd.stabletime = cpu_to_le16(sp->sp_stabletime); lbs_cmd_802_11_sleep_params() 283 cmd.calcontrol = sp->sp_calcontrol; lbs_cmd_802_11_sleep_params() 284 cmd.externalsleepclk = sp->sp_extsleepclk; lbs_cmd_802_11_sleep_params() 285 cmd.reserved = cpu_to_le16(sp->sp_reserved); lbs_cmd_802_11_sleep_params() 287 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_cmd_802_11_sleep_params() 288 cmd.action = cpu_to_le16(cmd_action); lbs_cmd_802_11_sleep_params() 290 ret = lbs_cmd_with_response(priv, CMD_802_11_SLEEP_PARAMS, &cmd); lbs_cmd_802_11_sleep_params() 295 le16_to_cpu(cmd.error), le16_to_cpu(cmd.offset), lbs_cmd_802_11_sleep_params() 296 le16_to_cpu(cmd.stabletime), cmd.calcontrol, lbs_cmd_802_11_sleep_params() 297 cmd.externalsleepclk); lbs_cmd_802_11_sleep_params() 299 sp->sp_error = le16_to_cpu(cmd.error); lbs_cmd_802_11_sleep_params() 300 sp->sp_offset = le16_to_cpu(cmd.offset); lbs_cmd_802_11_sleep_params() 301 sp->sp_stabletime = le16_to_cpu(cmd.stabletime); lbs_cmd_802_11_sleep_params() 302 sp->sp_calcontrol = cmd.calcontrol; lbs_cmd_802_11_sleep_params() 303 sp->sp_extsleepclk = cmd.externalsleepclk; lbs_cmd_802_11_sleep_params() 304 sp->sp_reserved = le16_to_cpu(cmd.reserved); lbs_cmd_802_11_sleep_params() 367 struct cmd_header *cmd) lbs_ret_host_sleep_activate() 378 struct cmd_header cmd; lbs_set_host_sleep() local 386 memset(&cmd, 0, sizeof(cmd)); lbs_set_host_sleep() 398 &cmd, lbs_set_host_sleep() 399 sizeof(cmd), lbs_set_host_sleep() 438 struct cmd_ds_802_11_snmp_mib cmd; lbs_set_snmp_mib() local 443 memset(&cmd, 0, sizeof (cmd)); lbs_set_snmp_mib() 444 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_snmp_mib() 445 cmd.action = cpu_to_le16(CMD_ACT_SET); lbs_set_snmp_mib() 446 cmd.oid = cpu_to_le16((u16) oid); lbs_set_snmp_mib() 450 cmd.bufsize = cpu_to_le16(sizeof(u8)); lbs_set_snmp_mib() 451 cmd.value[0] = val; lbs_set_snmp_mib() 458 cmd.bufsize = cpu_to_le16(sizeof(u16)); lbs_set_snmp_mib() 459 *((__le16 *)(&cmd.value)) = cpu_to_le16(val); lbs_set_snmp_mib() 468 le16_to_cpu(cmd.oid), le16_to_cpu(cmd.bufsize), val); lbs_set_snmp_mib() 470 ret = lbs_cmd_with_response(priv, CMD_802_11_SNMP_MIB, &cmd); lbs_set_snmp_mib() 488 struct cmd_ds_802_11_snmp_mib cmd; lbs_get_snmp_mib() local 493 memset(&cmd, 0, sizeof (cmd)); lbs_get_snmp_mib() 494 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_get_snmp_mib() 495 cmd.action = cpu_to_le16(CMD_ACT_GET); lbs_get_snmp_mib() 496 cmd.oid = cpu_to_le16(oid); lbs_get_snmp_mib() 498 ret = lbs_cmd_with_response(priv, CMD_802_11_SNMP_MIB, &cmd); lbs_get_snmp_mib() 502 switch (le16_to_cpu(cmd.bufsize)) { lbs_get_snmp_mib() 504 *out_val = cmd.value[0]; lbs_get_snmp_mib() 507 *out_val = le16_to_cpu(*((__le16 *)(&cmd.value))); lbs_get_snmp_mib() 511 oid, le16_to_cpu(cmd.bufsize)); lbs_get_snmp_mib() 533 struct cmd_ds_802_11_rf_tx_power cmd; lbs_get_tx_power() local 538 memset(&cmd, 0, sizeof(cmd)); lbs_get_tx_power() 539 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_get_tx_power() 540 cmd.action = cpu_to_le16(CMD_ACT_GET); lbs_get_tx_power() 542 ret = lbs_cmd_with_response(priv, CMD_802_11_RF_TX_POWER, &cmd); lbs_get_tx_power() 544 *curlevel = le16_to_cpu(cmd.curlevel); lbs_get_tx_power() 546 *minlevel = cmd.minlevel; lbs_get_tx_power() 548 *maxlevel = cmd.maxlevel; lbs_get_tx_power() 565 struct cmd_ds_802_11_rf_tx_power cmd; lbs_set_tx_power() local 570 memset(&cmd, 0, sizeof(cmd)); lbs_set_tx_power() 571 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_tx_power() 572 cmd.action = cpu_to_le16(CMD_ACT_SET); lbs_set_tx_power() 573 cmd.curlevel = cpu_to_le16(dbm); lbs_set_tx_power() 577 ret = lbs_cmd_with_response(priv, CMD_802_11_RF_TX_POWER, &cmd); lbs_set_tx_power() 594 struct cmd_ds_802_11_monitor_mode cmd; lbs_set_monitor_mode() local 597 memset(&cmd, 0, sizeof(cmd)); lbs_set_monitor_mode() 598 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_monitor_mode() 599 cmd.action = cpu_to_le16(CMD_ACT_SET); lbs_set_monitor_mode() 601 cmd.mode = cpu_to_le16(0x1); lbs_set_monitor_mode() 605 ret = lbs_cmd_with_response(priv, CMD_802_11_MONITOR_MODE, &cmd); lbs_set_monitor_mode() 624 struct cmd_ds_802_11_rf_channel cmd; lbs_get_channel() local 629 memset(&cmd, 0, sizeof(cmd)); lbs_get_channel() 630 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_get_channel() 631 cmd.action = cpu_to_le16(CMD_OPT_802_11_RF_CHANNEL_GET); lbs_get_channel() 633 ret = lbs_cmd_with_response(priv, CMD_802_11_RF_CHANNEL, &cmd); lbs_get_channel() 637 ret = le16_to_cpu(cmd.channel); lbs_get_channel() 671 struct cmd_ds_802_11_rf_channel cmd; lbs_set_channel() local 679 memset(&cmd, 0, sizeof(cmd)); lbs_set_channel() 680 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_channel() 681 cmd.action = cpu_to_le16(CMD_OPT_802_11_RF_CHANNEL_SET); lbs_set_channel() 682 cmd.channel = cpu_to_le16(channel); lbs_set_channel() 684 ret = lbs_cmd_with_response(priv, CMD_802_11_RF_CHANNEL, &cmd); lbs_set_channel() 688 priv->channel = (uint8_t) le16_to_cpu(cmd.channel); lbs_set_channel() 708 struct cmd_ds_802_11_rssi cmd; lbs_get_rssi() local 716 memset(&cmd, 0, sizeof(cmd)); lbs_get_rssi() 717 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_get_rssi() 719 cmd.n_or_snr = cpu_to_le16(8); lbs_get_rssi() 721 ret = lbs_cmd_with_response(priv, CMD_802_11_RSSI, &cmd); lbs_get_rssi() 723 *nf = CAL_NF(le16_to_cpu(cmd.nf)); lbs_get_rssi() 724 *rssi = CAL_RSSI(le16_to_cpu(cmd.n_or_snr), le16_to_cpu(cmd.nf)); lbs_get_rssi() 743 struct cmd_ds_802_11d_domain_info cmd; lbs_set_11d_domain_info() local 744 struct mrvl_ie_domain_param_set *domain = &cmd.domain; lbs_set_11d_domain_info() 759 memset(&cmd, 0, sizeof(cmd)); lbs_set_11d_domain_info() 760 cmd.action = cpu_to_le16(CMD_ACT_SET); lbs_set_11d_domain_info() 840 (u8 *) &cmd.domain.country_code, lbs_set_11d_domain_info() 843 cmd.hdr.size = cpu_to_le16(sizeof(cmd.hdr) + lbs_set_11d_domain_info() 844 sizeof(cmd.action) + lbs_set_11d_domain_info() 845 sizeof(cmd.domain.header) + lbs_set_11d_domain_info() 846 sizeof(cmd.domain.country_code) + lbs_set_11d_domain_info() 849 ret = lbs_cmd_with_response(priv, CMD_802_11D_DOMAIN_INFO, &cmd); lbs_set_11d_domain_info() 869 struct cmd_ds_reg_access cmd; lbs_get_reg() local 876 memset(&cmd, 0, sizeof(cmd)); lbs_get_reg() 877 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_get_reg() 878 cmd.action = cpu_to_le16(CMD_ACT_GET); lbs_get_reg() 879 cmd.offset = cpu_to_le16(offset); lbs_get_reg() 888 ret = lbs_cmd_with_response(priv, reg, &cmd); lbs_get_reg() 891 *value = cmd.value.bbp_rf; lbs_get_reg() 893 *value = le32_to_cpu(cmd.value.mac); lbs_get_reg() 914 struct cmd_ds_reg_access cmd; lbs_set_reg() local 919 memset(&cmd, 0, sizeof(cmd)); lbs_set_reg() 920 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_reg() 921 cmd.action = cpu_to_le16(CMD_ACT_SET); lbs_set_reg() 922 cmd.offset = cpu_to_le16(offset); lbs_set_reg() 925 cmd.value.bbp_rf = (u8) (value & 0xFF); lbs_set_reg() 927 cmd.value.mac = cpu_to_le32(value); lbs_set_reg() 933 ret = lbs_cmd_with_response(priv, reg, &cmd); lbs_set_reg() 953 lbs_deb_host("DNLD_CMD: cmd size is zero\n"); lbs_queue_cmd() 991 struct cmd_header *cmd; lbs_submit_command() local 999 cmd = cmdnode->cmdbuf; lbs_submit_command() 1003 cmd->seqnum = cpu_to_le16(priv->seqnum); lbs_submit_command() 1007 cmdsize = le16_to_cpu(cmd->size); lbs_submit_command() 1008 command = le16_to_cpu(cmd->command); lbs_submit_command() 1015 command, le16_to_cpu(cmd->seqnum), cmdsize); lbs_submit_command() 1018 ret = priv->hw_host_to_card(priv, MVMS_CMD, (u8 *) cmd, cmdsize); lbs_submit_command() 1075 void __lbs_complete_command(struct lbs_private *priv, struct cmd_ctrl_node *cmd, __lbs_complete_command() argument 1084 list_del_init(&cmd->list); __lbs_complete_command() 1086 cmd->result = result; __lbs_complete_command() 1087 cmd->cmdwaitqwoken = 1; __lbs_complete_command() 1088 wake_up(&cmd->cmdwait_q); __lbs_complete_command() 1090 if (!cmd->callback || cmd->callback == lbs_cmd_async_callback) __lbs_complete_command() 1091 __lbs_cleanup_and_insert_cmd(priv, cmd); __lbs_complete_command() 1096 void lbs_complete_command(struct lbs_private *priv, struct cmd_ctrl_node *cmd, lbs_complete_command() argument 1101 __lbs_complete_command(priv, cmd, result); lbs_complete_command() 1107 struct cmd_ds_802_11_radio_control cmd; lbs_set_radio() local 1112 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_radio() 1113 cmd.action = cpu_to_le16(CMD_ACT_SET); lbs_set_radio() 1114 cmd.control = 0; lbs_set_radio() 1122 cmd.control = cpu_to_le16(preamble); lbs_set_radio() 1130 cmd.control |= cpu_to_le16(0x1); lbs_set_radio() 1132 cmd.control &= cpu_to_le16(~0x1); lbs_set_radio() 1141 ret = lbs_cmd_with_response(priv, CMD_802_11_RADIO_CONTROL, &cmd); lbs_set_radio() 1150 struct cmd_ds_mac_control cmd; lbs_set_mac_control() local 1154 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_mac_control() 1155 cmd.action = cpu_to_le16(priv->mac_control); lbs_set_mac_control() 1156 cmd.reserved = 0; lbs_set_mac_control() 1158 lbs_cmd_async(priv, CMD_MAC_CONTROL, &cmd.hdr, sizeof(cmd)); lbs_set_mac_control() 1165 struct cmd_ds_mac_control cmd; lbs_set_mac_control_sync() local 1170 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_mac_control_sync() 1171 cmd.action = cpu_to_le16(priv->mac_control); lbs_set_mac_control_sync() 1172 cmd.reserved = 0; lbs_set_mac_control_sync() 1173 ret = lbs_cmd_with_response(priv, CMD_MAC_CONTROL, &cmd); lbs_set_mac_control_sync() 1240 /* need to check if cmd array is allocated or not */ lbs_free_cmd_buffer() 1314 struct cmd_header *cmd; lbs_execute_next_command() local 1341 cmd = cmdnode->cmdbuf; lbs_execute_next_command() 1343 if (is_command_allowed_in_ps(le16_to_cpu(cmd->command))) { lbs_execute_next_command() 1347 "EXEC_NEXT_CMD: cannot send cmd 0x%04x in psstate %d\n", lbs_execute_next_command() 1348 le16_to_cpu(cmd->command), lbs_execute_next_command() 1355 le16_to_cpu(cmd->command), priv->psstate); lbs_execute_next_command() 1368 if (cmd->command != cpu_to_le16(CMD_802_11_PS_MODE)) { lbs_execute_next_command() 1390 struct cmd_ds_802_11_ps_mode *psm = (void *)&cmd[1]; lbs_execute_next_command() 1393 "EXEC_NEXT_CMD: PS cmd, action 0x%02x\n", lbs_execute_next_command() 1398 "EXEC_NEXT_CMD: ignore ENTER_PS cmd\n"); lbs_execute_next_command() 1408 "EXEC_NEXT_CMD: ignore EXIT_PS cmd in sleep\n"); lbs_execute_next_command() 1424 le16_to_cpu(cmd->command)); lbs_execute_next_command() 1569 struct cmd_ds_802_11_tpc_cfg cmd; lbs_set_tpc_cfg() local 1572 memset(&cmd, 0, sizeof(cmd)); lbs_set_tpc_cfg() 1573 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_tpc_cfg() 1574 cmd.action = cpu_to_le16(CMD_ACT_SET); lbs_set_tpc_cfg() 1575 cmd.enable = !!enable; lbs_set_tpc_cfg() 1576 cmd.usesnr = !!usesnr; lbs_set_tpc_cfg() 1577 cmd.P0 = p0; lbs_set_tpc_cfg() 1578 cmd.P1 = p1; lbs_set_tpc_cfg() 1579 cmd.P2 = p2; lbs_set_tpc_cfg() 1581 ret = lbs_cmd_with_response(priv, CMD_802_11_TPC_CFG, &cmd); lbs_set_tpc_cfg() 1601 struct cmd_ds_802_11_pa_cfg cmd; lbs_set_power_adapt_cfg() local 1604 memset(&cmd, 0, sizeof(cmd)); lbs_set_power_adapt_cfg() 1605 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_power_adapt_cfg() 1606 cmd.action = cpu_to_le16(CMD_ACT_SET); lbs_set_power_adapt_cfg() 1607 cmd.enable = !!enable; lbs_set_power_adapt_cfg() 1608 cmd.P0 = p0; lbs_set_power_adapt_cfg() 1609 cmd.P1 = p1; lbs_set_power_adapt_cfg() 1610 cmd.P2 = p2; lbs_set_power_adapt_cfg() 1612 ret = lbs_cmd_with_response(priv, CMD_802_11_PA_CFG , &cmd); lbs_set_power_adapt_cfg() 365 lbs_ret_host_sleep_activate(struct lbs_private *priv, unsigned long dummy, struct cmd_header *cmd) lbs_ret_host_sleep_activate() argument
|
H A D | ethtool.c | 7 #include "cmd.h" 41 struct cmd_ds_802_11_eeprom_access cmd; lbs_ethtool_get_eeprom() local 52 cmd.hdr.size = cpu_to_le16(sizeof(struct cmd_ds_802_11_eeprom_access) - lbs_ethtool_get_eeprom() 54 cmd.action = cpu_to_le16(CMD_ACT_GET); lbs_ethtool_get_eeprom() 55 cmd.offset = cpu_to_le16(eeprom->offset); lbs_ethtool_get_eeprom() 56 cmd.len = cpu_to_le16(eeprom->len); lbs_ethtool_get_eeprom() 57 ret = lbs_cmd_with_response(priv, CMD_802_11_EEPROM_ACCESS, &cmd); lbs_ethtool_get_eeprom() 59 memcpy(bytes, cmd.value, eeprom->len); lbs_ethtool_get_eeprom()
|
H A D | cfg.c | 21 #include "cmd.h" 879 struct cmd_ds_802_11_set_wep cmd; lbs_remove_wep_keys() local 884 memset(&cmd, 0, sizeof(cmd)); lbs_remove_wep_keys() 885 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_remove_wep_keys() 886 cmd.keyindex = cpu_to_le16(priv->wep_tx_key); lbs_remove_wep_keys() 887 cmd.action = cpu_to_le16(CMD_ACT_REMOVE); lbs_remove_wep_keys() 889 ret = lbs_cmd_with_response(priv, CMD_802_11_SET_WEP, &cmd); lbs_remove_wep_keys() 900 struct cmd_ds_802_11_set_wep cmd; lbs_set_wep_keys() local 928 memset(&cmd, 0, sizeof(cmd)); lbs_set_wep_keys() 929 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_wep_keys() 930 cmd.keyindex = cpu_to_le16(priv->wep_tx_key); lbs_set_wep_keys() 931 cmd.action = cpu_to_le16(CMD_ACT_ADD); lbs_set_wep_keys() 936 cmd.keytype[i] = CMD_TYPE_WEP_40_BIT; lbs_set_wep_keys() 939 cmd.keytype[i] = CMD_TYPE_WEP_104_BIT; lbs_set_wep_keys() 942 cmd.keytype[i] = 0; lbs_set_wep_keys() 945 memcpy(cmd.keymaterial[i], priv->wep_key[i], lbs_set_wep_keys() 949 ret = lbs_cmd_with_response(priv, CMD_802_11_SET_WEP, &cmd); lbs_set_wep_keys() 965 struct cmd_ds_802_11_enable_rsn cmd; lbs_enable_rsn() local 971 * cmd 2f 00 lbs_enable_rsn() 978 memset(&cmd, 0, sizeof(cmd)); lbs_enable_rsn() 979 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_enable_rsn() 980 cmd.action = cpu_to_le16(CMD_ACT_SET); lbs_enable_rsn() 981 cmd.enable = cpu_to_le16(enable); lbs_enable_rsn() 983 ret = lbs_cmd_with_response(priv, CMD_802_11_ENABLE_RSN, &cmd); lbs_enable_rsn() 1010 struct cmd_key_material cmd; lbs_set_key_material() local 1018 * cmd 5e 00 lbs_set_key_material() 1030 memset(&cmd, 0, sizeof(cmd)); lbs_set_key_material() 1031 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_key_material() 1032 cmd.action = cpu_to_le16(CMD_ACT_SET); lbs_set_key_material() 1033 cmd.param.type = cpu_to_le16(TLV_TYPE_KEY_MATERIAL); lbs_set_key_material() 1034 cmd.param.length = cpu_to_le16(sizeof(cmd.param) - 4); lbs_set_key_material() 1035 cmd.param.keytypeid = cpu_to_le16(key_type); lbs_set_key_material() 1036 cmd.param.keyinfo = cpu_to_le16(key_info); lbs_set_key_material() 1037 cmd.param.keylen = cpu_to_le16(key_len); lbs_set_key_material() 1039 memcpy(cmd.param.key, key, key_len); lbs_set_key_material() 1041 ret = lbs_cmd_with_response(priv, CMD_802_11_KEY_MATERIAL, &cmd); lbs_set_key_material() 1057 struct cmd_ds_802_11_authenticate cmd; lbs_set_authtype() local 1063 * cmd 11 00 lbs_set_authtype() 1071 memset(&cmd, 0, sizeof(cmd)); lbs_set_authtype() 1072 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_set_authtype() 1074 memcpy(cmd.bssid, sme->bssid, ETH_ALEN); lbs_set_authtype() 1080 cmd.authtype = ret; lbs_set_authtype() 1081 ret = lbs_cmd_with_response(priv, CMD_802_11_AUTHENTICATE, &cmd); lbs_set_authtype() 1106 struct cmd_ds_802_11_associate *cmd = kzalloc(LBS_ASSOC_MAX_CMD_SIZE, lbs_associate() local 1112 u8 *pos = &(cmd->iebuf[0]); lbs_associate() 1117 if (!cmd) { lbs_associate() 1123 * cmd 50 00 lbs_associate() 1134 cmd->hdr.command = cpu_to_le16(CMD_802_11_ASSOCIATE); lbs_associate() 1137 memcpy(cmd->bssid, bss->bssid, ETH_ALEN); lbs_associate() 1138 cmd->listeninterval = cpu_to_le16(MRVDRV_DEFAULT_LISTEN_INTERVAL); lbs_associate() 1139 cmd->capability = cpu_to_le16(bss->capability); lbs_associate() 1172 len = (sizeof(*cmd) - sizeof(cmd->iebuf)) + lbs_associate() 1173 (u16)(pos - (u8 *) &cmd->iebuf); lbs_associate() 1174 cmd->hdr.size = cpu_to_le16(len); lbs_associate() 1176 lbs_deb_hex(LBS_DEB_ASSOC, "ASSOC_CMD", (u8 *) cmd, lbs_associate() 1177 le16_to_cpu(cmd->hdr.size)); lbs_associate() 1182 ret = lbs_cmd_with_response(priv, CMD_802_11_ASSOCIATE, cmd); lbs_associate() 1188 resp = (void *) cmd; /* recast for easier field access */ lbs_associate() 1258 kfree(cmd); lbs_associate() 1446 struct cmd_ds_802_11_deauthenticate cmd; lbs_disconnect() local 1449 memset(&cmd, 0, sizeof(cmd)); lbs_disconnect() 1450 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_disconnect() 1452 memcpy(cmd.macaddr, &priv->assoc_bss, ETH_ALEN); lbs_disconnect() 1453 cmd.reasoncode = cpu_to_le16(reason); lbs_disconnect() 1455 ret = lbs_cmd_with_response(priv, CMD_802_11_DEAUTHENTICATE, &cmd); lbs_disconnect() 1784 struct cmd_ds_802_11_ad_hoc_join cmd; lbs_ibss_join_existing() local 1825 memset(&cmd, 0, sizeof(cmd)); lbs_ibss_join_existing() 1826 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_ibss_join_existing() 1828 memcpy(cmd.bss.bssid, bss->bssid, ETH_ALEN); lbs_ibss_join_existing() 1829 memcpy(cmd.bss.ssid, params->ssid, params->ssid_len); lbs_ibss_join_existing() 1830 cmd.bss.type = CMD_BSS_TYPE_IBSS; lbs_ibss_join_existing() 1831 cmd.bss.beaconperiod = cpu_to_le16(params->beacon_interval); lbs_ibss_join_existing() 1832 cmd.bss.ds.header.id = WLAN_EID_DS_PARAMS; lbs_ibss_join_existing() 1833 cmd.bss.ds.header.len = 1; lbs_ibss_join_existing() 1834 cmd.bss.ds.channel = params->chandef.chan->hw_value; lbs_ibss_join_existing() 1835 cmd.bss.ibss.header.id = WLAN_EID_IBSS_PARAMS; lbs_ibss_join_existing() 1836 cmd.bss.ibss.header.len = 2; lbs_ibss_join_existing() 1837 cmd.bss.ibss.atimwindow = 0; lbs_ibss_join_existing() 1838 cmd.bss.capability = cpu_to_le16(bss->capability & CAPINFO_MASK); lbs_ibss_join_existing() 1845 lbs_add_rates(cmd.bss.rates); lbs_ibss_join_existing() 1849 u8 *rates = cmd.bss.rates; lbs_ibss_join_existing() 1867 cmd.failtimeout = cpu_to_le16(MRVDRV_ASSOCIATION_TIME_OUT); lbs_ibss_join_existing() 1868 cmd.probedelay = cpu_to_le16(CMD_SCAN_PROBE_DELAY_TIME); lbs_ibss_join_existing() 1870 ret = lbs_cmd_with_response(priv, CMD_802_11_AD_HOC_JOIN, &cmd); lbs_ibss_join_existing() 1895 struct cmd_ds_802_11_ad_hoc_start cmd; lbs_ibss_start_new() local 1897 (struct cmd_ds_802_11_ad_hoc_result *) &cmd; lbs_ibss_start_new() 1936 memset(&cmd, 0, sizeof(cmd)); lbs_ibss_start_new() 1937 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_ibss_start_new() 1938 memcpy(cmd.ssid, params->ssid, params->ssid_len); lbs_ibss_start_new() 1939 cmd.bsstype = CMD_BSS_TYPE_IBSS; lbs_ibss_start_new() 1940 cmd.beaconperiod = cpu_to_le16(params->beacon_interval); lbs_ibss_start_new() 1941 cmd.ibss.header.id = WLAN_EID_IBSS_PARAMS; lbs_ibss_start_new() 1942 cmd.ibss.header.len = 2; lbs_ibss_start_new() 1943 cmd.ibss.atimwindow = 0; lbs_ibss_start_new() 1944 cmd.ds.header.id = WLAN_EID_DS_PARAMS; lbs_ibss_start_new() 1945 cmd.ds.header.len = 1; lbs_ibss_start_new() 1946 cmd.ds.channel = params->chandef.chan->hw_value; lbs_ibss_start_new() 1949 cmd.probedelay = cpu_to_le16(CMD_SCAN_PROBE_DELAY_TIME); lbs_ibss_start_new() 1952 cmd.capability = cpu_to_le16(capability); lbs_ibss_start_new() 1953 lbs_add_rates(cmd.rates); lbs_ibss_start_new() 1956 ret = lbs_cmd_with_response(priv, CMD_802_11_AD_HOC_START, &cmd); lbs_ibss_start_new() 2021 struct cmd_ds_802_11_ad_hoc_stop cmd; lbs_leave_ibss() local 2029 memset(&cmd, 0, sizeof(cmd)); lbs_leave_ibss() 2030 cmd.hdr.size = cpu_to_le16(sizeof(cmd)); lbs_leave_ibss() 2031 ret = lbs_cmd_with_response(priv, CMD_802_11_AD_HOC_STOP, &cmd); lbs_leave_ibss()
|
/linux-4.1.27/include/trace/events/ |
H A D | scsi.h | 203 TP_PROTO(struct scsi_cmnd *cmd), 205 TP_ARGS(cmd), 217 __dynamic_array(unsigned char, cmnd, cmd->cmd_len) 221 __entry->host_no = cmd->device->host->host_no; 222 __entry->channel = cmd->device->channel; 223 __entry->id = cmd->device->id; 224 __entry->lun = cmd->device->lun; 225 __entry->opcode = cmd->cmnd[0]; 226 __entry->cmd_len = cmd->cmd_len; 227 __entry->data_sglen = scsi_sg_count(cmd); 228 __entry->prot_sglen = scsi_prot_sg_count(cmd); 229 __entry->prot_op = scsi_get_prot_op(cmd); 230 memcpy(__get_dynamic_array(cmnd), cmd->cmnd, cmd->cmd_len); 245 TP_PROTO(struct scsi_cmnd *cmd, int rtn), 247 TP_ARGS(cmd, rtn), 260 __dynamic_array(unsigned char, cmnd, cmd->cmd_len) 264 __entry->host_no = cmd->device->host->host_no; 265 __entry->channel = cmd->device->channel; 266 __entry->id = cmd->device->id; 267 __entry->lun = cmd->device->lun; 269 __entry->opcode = cmd->cmnd[0]; 270 __entry->cmd_len = cmd->cmd_len; 271 __entry->data_sglen = scsi_sg_count(cmd); 272 __entry->prot_sglen = scsi_prot_sg_count(cmd); 273 __entry->prot_op = scsi_get_prot_op(cmd); 274 memcpy(__get_dynamic_array(cmnd), cmd->cmnd, cmd->cmd_len); 290 TP_PROTO(struct scsi_cmnd *cmd), 292 TP_ARGS(cmd), 305 __dynamic_array(unsigned char, cmnd, cmd->cmd_len) 309 __entry->host_no = cmd->device->host->host_no; 310 __entry->channel = cmd->device->channel; 311 __entry->id = cmd->device->id; 312 __entry->lun = cmd->device->lun; 313 __entry->result = cmd->result; 314 __entry->opcode = cmd->cmnd[0]; 315 __entry->cmd_len = cmd->cmd_len; 316 __entry->data_sglen = scsi_sg_count(cmd); 317 __entry->prot_sglen = scsi_prot_sg_count(cmd); 318 __entry->prot_op = scsi_get_prot_op(cmd); 319 memcpy(__get_dynamic_array(cmnd), cmd->cmnd, cmd->cmd_len); 338 TP_PROTO(struct scsi_cmnd *cmd), 339 TP_ARGS(cmd)); 342 TP_PROTO(struct scsi_cmnd *cmd), 343 TP_ARGS(cmd));
|
H A D | target.h | 133 TP_PROTO(struct se_cmd *cmd), 135 TP_ARGS(cmd), 143 __string( initiator, cmd->se_sess->se_node_acl->initiatorname ) 147 __entry->unpacked_lun = cmd->orig_fe_lun; 148 __entry->opcode = cmd->t_task_cdb[0]; 149 __entry->data_length = cmd->data_length; 150 __entry->task_attribute = cmd->sam_task_attr; 151 memcpy(__entry->cdb, cmd->t_task_cdb, TCM_MAX_COMMAND_SIZE); 152 __assign_str(initiator, cmd->se_sess->se_node_acl->initiatorname); 168 TP_PROTO(struct se_cmd *cmd), 170 TP_ARGS(cmd), 181 __string(initiator, cmd->se_sess->se_node_acl->initiatorname) 185 __entry->unpacked_lun = cmd->orig_fe_lun; 186 __entry->opcode = cmd->t_task_cdb[0]; 187 __entry->data_length = cmd->data_length; 188 __entry->task_attribute = cmd->sam_task_attr; 189 __entry->scsi_status = cmd->scsi_status; 190 __entry->sense_length = cmd->scsi_status == SAM_STAT_CHECK_CONDITION ? 191 min(18, ((u8 *) cmd->sense_buffer)[SPC_ADD_SENSE_LEN_OFFSET] + 8) : 0; 192 memcpy(__entry->cdb, cmd->t_task_cdb, TCM_MAX_COMMAND_SIZE); 193 memcpy(__entry->sense_data, cmd->sense_buffer, __entry->sense_length); 194 __assign_str(initiator, cmd->se_sess->se_node_acl->initiatorname);
|
/linux-4.1.27/drivers/net/ethernet/qlogic/netxen/ |
H A D | netxen_nic_ctx.c | 49 netxen_issue_cmd(struct netxen_adapter *adapter, struct netxen_cmd_args *cmd) netxen_issue_cmd() argument 63 NXWR32(adapter, NX_ARG1_CRB_OFFSET, cmd->req.arg1); netxen_issue_cmd() 65 NXWR32(adapter, NX_ARG2_CRB_OFFSET, cmd->req.arg2); netxen_issue_cmd() 67 NXWR32(adapter, NX_ARG3_CRB_OFFSET, cmd->req.arg3); netxen_issue_cmd() 69 NXWR32(adapter, NX_CDRP_CRB_OFFSET, NX_CDRP_FORM_CMD(cmd->req.cmd)); netxen_issue_cmd() 84 cmd->rsp.cmd = NX_RCODE_SUCCESS; netxen_issue_cmd() 85 if (cmd->rsp.arg2) netxen_issue_cmd() 86 cmd->rsp.arg2 = NXRD32(adapter, NX_ARG2_CRB_OFFSET); netxen_issue_cmd() 87 if (cmd->rsp.arg3) netxen_issue_cmd() 88 cmd->rsp.arg3 = NXRD32(adapter, NX_ARG3_CRB_OFFSET); netxen_issue_cmd() 91 if (cmd->rsp.arg1) netxen_issue_cmd() 92 cmd->rsp.arg1 = NXRD32(adapter, NX_ARG1_CRB_OFFSET); netxen_issue_cmd() 102 struct netxen_cmd_args cmd; netxen_get_minidump_template_size() local 103 memset(&cmd, 0, sizeof(cmd)); netxen_get_minidump_template_size() 104 cmd.req.cmd = NX_CDRP_CMD_TEMP_SIZE; netxen_get_minidump_template_size() 105 memset(&cmd.rsp, 1, sizeof(struct _cdrp_cmd)); netxen_get_minidump_template_size() 106 netxen_issue_cmd(adapter, &cmd); netxen_get_minidump_template_size() 107 if (cmd.rsp.cmd != NX_RCODE_SUCCESS) { netxen_get_minidump_template_size() 109 "Can't get template size %d\n", cmd.rsp.cmd); netxen_get_minidump_template_size() 112 adapter->mdump.md_template_size = cmd.rsp.arg2; netxen_get_minidump_template_size() 113 adapter->mdump.md_template_ver = cmd.rsp.arg3; netxen_get_minidump_template_size() 123 struct netxen_cmd_args cmd; netxen_get_minidump_template() local 138 memset(&cmd, 0, sizeof(cmd)); netxen_get_minidump_template() 139 memset(&cmd.rsp, 1, sizeof(struct _cdrp_cmd)); netxen_get_minidump_template() 140 cmd.req.cmd = NX_CDRP_CMD_GET_TEMP_HDR; netxen_get_minidump_template() 141 cmd.req.arg1 = LSD(md_template_addr); netxen_get_minidump_template() 142 cmd.req.arg2 = MSD(md_template_addr); netxen_get_minidump_template() 143 cmd.req.arg3 |= size; netxen_get_minidump_template() 144 netxen_issue_cmd(adapter, &cmd); netxen_get_minidump_template() 146 if ((cmd.rsp.cmd == NX_RCODE_SUCCESS) && (size == cmd.rsp.arg2)) { netxen_get_minidump_template() 151 cmd.rsp.cmd, size, cmd.rsp.arg2); netxen_get_minidump_template() 241 struct netxen_cmd_args cmd; nx_fw_cmd_set_mtu() local 243 memset(&cmd, 0, sizeof(cmd)); nx_fw_cmd_set_mtu() 244 cmd.req.cmd = NX_CDRP_CMD_SET_MTU; nx_fw_cmd_set_mtu() 245 cmd.req.arg1 = recv_ctx->context_id; nx_fw_cmd_set_mtu() 246 cmd.req.arg2 = mtu; nx_fw_cmd_set_mtu() 247 cmd.req.arg3 = 0; nx_fw_cmd_set_mtu() 250 netxen_issue_cmd(adapter, &cmd); nx_fw_cmd_set_mtu() 262 struct netxen_cmd_args cmd; nx_fw_cmd_set_gbe_port() local 264 memset(&cmd, 0, sizeof(cmd)); nx_fw_cmd_set_gbe_port() 265 cmd.req.cmd = NX_CDRP_CMD_CONFIG_GBE_PORT; nx_fw_cmd_set_gbe_port() 266 cmd.req.arg1 = speed; nx_fw_cmd_set_gbe_port() 267 cmd.req.arg2 = duplex; nx_fw_cmd_set_gbe_port() 268 cmd.req.arg3 = autoneg; nx_fw_cmd_set_gbe_port() 269 return netxen_issue_cmd(adapter, &cmd); nx_fw_cmd_set_gbe_port() 284 struct netxen_cmd_args cmd; nx_fw_cmd_create_rx_ctx() local 367 memset(&cmd, 0, sizeof(cmd)); nx_fw_cmd_create_rx_ctx() 368 cmd.req.arg1 = (u32)(phys_addr >> 32); nx_fw_cmd_create_rx_ctx() 369 cmd.req.arg2 = (u32)(phys_addr & 0xffffffff); nx_fw_cmd_create_rx_ctx() 370 cmd.req.arg3 = rq_size; nx_fw_cmd_create_rx_ctx() 371 cmd.req.cmd = NX_CDRP_CMD_CREATE_RX_CTX; nx_fw_cmd_create_rx_ctx() 372 err = netxen_issue_cmd(adapter, &cmd); nx_fw_cmd_create_rx_ctx() 421 struct netxen_cmd_args cmd; nx_fw_cmd_destroy_rx_ctx() local 423 memset(&cmd, 0, sizeof(cmd)); nx_fw_cmd_destroy_rx_ctx() 424 cmd.req.arg1 = recv_ctx->context_id; nx_fw_cmd_destroy_rx_ctx() 425 cmd.req.arg2 = NX_DESTROY_CTX_RESET; nx_fw_cmd_destroy_rx_ctx() 426 cmd.req.arg3 = 0; nx_fw_cmd_destroy_rx_ctx() 427 cmd.req.cmd = NX_CDRP_CMD_DESTROY_RX_CTX; nx_fw_cmd_destroy_rx_ctx() 429 if (netxen_issue_cmd(adapter, &cmd)) { nx_fw_cmd_destroy_rx_ctx() 450 struct netxen_cmd_args cmd; nx_fw_cmd_create_tx_ctx() local 494 memset(&cmd, 0, sizeof(cmd)); nx_fw_cmd_create_tx_ctx() 495 cmd.req.arg1 = (u32)(phys_addr >> 32); nx_fw_cmd_create_tx_ctx() 496 cmd.req.arg2 = ((u32)phys_addr & 0xffffffff); nx_fw_cmd_create_tx_ctx() 497 cmd.req.arg3 = rq_size; nx_fw_cmd_create_tx_ctx() 498 cmd.req.cmd = NX_CDRP_CMD_CREATE_TX_CTX; nx_fw_cmd_create_tx_ctx() 499 err = netxen_issue_cmd(adapter, &cmd); nx_fw_cmd_create_tx_ctx() 528 struct netxen_cmd_args cmd; nx_fw_cmd_destroy_tx_ctx() local 530 memset(&cmd, 0, sizeof(cmd)); nx_fw_cmd_destroy_tx_ctx() 531 cmd.req.arg1 = adapter->tx_context_id; nx_fw_cmd_destroy_tx_ctx() 532 cmd.req.arg2 = NX_DESTROY_CTX_RESET; nx_fw_cmd_destroy_tx_ctx() 533 cmd.req.arg3 = 0; nx_fw_cmd_destroy_tx_ctx() 534 cmd.req.cmd = NX_CDRP_CMD_DESTROY_TX_CTX; nx_fw_cmd_destroy_tx_ctx() 535 if (netxen_issue_cmd(adapter, &cmd)) { nx_fw_cmd_destroy_tx_ctx() 546 struct netxen_cmd_args cmd; nx_fw_cmd_query_phy() local 548 memset(&cmd, 0, sizeof(cmd)); nx_fw_cmd_query_phy() 549 cmd.req.arg1 = reg; nx_fw_cmd_query_phy() 550 cmd.req.arg2 = 0; nx_fw_cmd_query_phy() 551 cmd.req.arg3 = 0; nx_fw_cmd_query_phy() 552 cmd.req.cmd = NX_CDRP_CMD_READ_PHY; nx_fw_cmd_query_phy() 553 cmd.rsp.arg1 = 1; nx_fw_cmd_query_phy() 554 rcode = netxen_issue_cmd(adapter, &cmd); nx_fw_cmd_query_phy() 561 *val = cmd.rsp.arg1; nx_fw_cmd_query_phy() 569 struct netxen_cmd_args cmd; nx_fw_cmd_set_phy() local 571 memset(&cmd, 0, sizeof(cmd)); nx_fw_cmd_set_phy() 572 cmd.req.arg1 = reg; nx_fw_cmd_set_phy() 573 cmd.req.arg2 = val; nx_fw_cmd_set_phy() 574 cmd.req.arg3 = 0; nx_fw_cmd_set_phy() 575 cmd.req.cmd = NX_CDRP_CMD_WRITE_PHY; nx_fw_cmd_set_phy() 576 rcode = netxen_issue_cmd(adapter, &cmd); nx_fw_cmd_set_phy() 788 /* cmd desc ring */ netxen_alloc_hw_resources()
|
/linux-4.1.27/drivers/net/ethernet/apm/xgene/ |
H A D | xgene_enet_ethtool.c | 57 static int xgene_get_settings(struct net_device *ndev, struct ethtool_cmd *cmd) xgene_get_settings() argument 66 return phy_ethtool_gset(phydev, cmd); xgene_get_settings() 68 cmd->supported = SUPPORTED_1000baseT_Full | xgene_get_settings() 70 cmd->advertising = cmd->supported; xgene_get_settings() 71 ethtool_cmd_speed_set(cmd, SPEED_1000); xgene_get_settings() 72 cmd->duplex = DUPLEX_FULL; xgene_get_settings() 73 cmd->port = PORT_MII; xgene_get_settings() 74 cmd->transceiver = XCVR_INTERNAL; xgene_get_settings() 75 cmd->autoneg = AUTONEG_ENABLE; xgene_get_settings() 77 cmd->supported = SUPPORTED_10000baseT_Full | SUPPORTED_FIBRE; xgene_get_settings() 78 cmd->advertising = cmd->supported; xgene_get_settings() 79 ethtool_cmd_speed_set(cmd, SPEED_10000); xgene_get_settings() 80 cmd->duplex = DUPLEX_FULL; xgene_get_settings() 81 cmd->port = PORT_FIBRE; xgene_get_settings() 82 cmd->transceiver = XCVR_INTERNAL; xgene_get_settings() 83 cmd->autoneg = AUTONEG_DISABLE; xgene_get_settings() 89 static int xgene_set_settings(struct net_device *ndev, struct ethtool_cmd *cmd) xgene_set_settings() argument 98 return phy_ethtool_sset(phydev, cmd); xgene_set_settings()
|
/linux-4.1.27/drivers/net/wireless/ath/ath10k/ |
H A D | bmi.c | 32 struct bmi_cmd cmd; ath10k_bmi_done() local 33 u32 cmdlen = sizeof(cmd.id) + sizeof(cmd.done); ath10k_bmi_done() 44 cmd.id = __cpu_to_le32(BMI_DONE); ath10k_bmi_done() 46 ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, NULL, NULL); ath10k_bmi_done() 58 struct bmi_cmd cmd; ath10k_bmi_get_target_info() local 60 u32 cmdlen = sizeof(cmd.id) + sizeof(cmd.get_target_info); ath10k_bmi_get_target_info() 71 cmd.id = __cpu_to_le32(BMI_GET_TARGET_INFO); ath10k_bmi_get_target_info() 73 ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, &resp, &resplen); ath10k_bmi_get_target_info() 94 struct bmi_cmd cmd; ath10k_bmi_read_memory() local 96 u32 cmdlen = sizeof(cmd.id) + sizeof(cmd.read_mem); ath10k_bmi_read_memory() 111 cmd.id = __cpu_to_le32(BMI_READ_MEMORY); ath10k_bmi_read_memory() 112 cmd.read_mem.addr = __cpu_to_le32(address); ath10k_bmi_read_memory() 113 cmd.read_mem.len = __cpu_to_le32(rxlen); ath10k_bmi_read_memory() 115 ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, ath10k_bmi_read_memory() 135 struct bmi_cmd cmd; ath10k_bmi_write_memory() local 136 u32 hdrlen = sizeof(cmd.id) + sizeof(cmd.write_mem); ath10k_bmi_write_memory() 152 memcpy(cmd.write_mem.payload, buffer, txlen); ath10k_bmi_write_memory() 155 cmd.id = __cpu_to_le32(BMI_WRITE_MEMORY); ath10k_bmi_write_memory() 156 cmd.write_mem.addr = __cpu_to_le32(address); ath10k_bmi_write_memory() 157 cmd.write_mem.len = __cpu_to_le32(txlen); ath10k_bmi_write_memory() 159 ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, hdrlen + txlen, ath10k_bmi_write_memory() 180 struct bmi_cmd cmd; ath10k_bmi_execute() local 182 u32 cmdlen = sizeof(cmd.id) + sizeof(cmd.execute); ath10k_bmi_execute() 194 cmd.id = __cpu_to_le32(BMI_EXECUTE); ath10k_bmi_execute() 195 cmd.execute.addr = __cpu_to_le32(address); ath10k_bmi_execute() 196 cmd.execute.param = __cpu_to_le32(param); ath10k_bmi_execute() 198 ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, &resp, &resplen); ath10k_bmi_execute() 219 struct bmi_cmd cmd; ath10k_bmi_lz_data() local 220 u32 hdrlen = sizeof(cmd.id) + sizeof(cmd.lz_data); ath10k_bmi_lz_data() 237 cmd.id = __cpu_to_le32(BMI_LZ_DATA); ath10k_bmi_lz_data() 238 cmd.lz_data.len = __cpu_to_le32(txlen); ath10k_bmi_lz_data() 239 memcpy(cmd.lz_data.payload, buffer, txlen); ath10k_bmi_lz_data() 241 ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, hdrlen + txlen, ath10k_bmi_lz_data() 257 struct bmi_cmd cmd; ath10k_bmi_lz_stream_start() local 258 u32 cmdlen = sizeof(cmd.id) + sizeof(cmd.lz_start); ath10k_bmi_lz_stream_start() 269 cmd.id = __cpu_to_le32(BMI_LZ_STREAM_START); ath10k_bmi_lz_stream_start() 270 cmd.lz_start.addr = __cpu_to_le32(address); ath10k_bmi_lz_stream_start() 272 ret = ath10k_hif_exchange_bmi_msg(ar, &cmd, cmdlen, NULL, NULL); ath10k_bmi_lz_stream_start()
|
H A D | wmi-tlv.c | 1018 struct wmi_tlv_pdev_suspend *cmd; ath10k_wmi_tlv_op_gen_pdev_suspend() local 1022 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_pdev_suspend() 1028 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_pdev_suspend() 1029 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_pdev_suspend() 1030 cmd->opt = __cpu_to_le32(opt); ath10k_wmi_tlv_op_gen_pdev_suspend() 1039 struct wmi_tlv_resume_cmd *cmd; ath10k_wmi_tlv_op_gen_pdev_resume() local 1043 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_pdev_resume() 1049 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_pdev_resume() 1050 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_pdev_resume() 1051 cmd->reserved = __cpu_to_le32(0); ath10k_wmi_tlv_op_gen_pdev_resume() 1063 struct wmi_tlv_pdev_set_rd_cmd *cmd; ath10k_wmi_tlv_op_gen_pdev_set_rd() local 1067 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_pdev_set_rd() 1073 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_pdev_set_rd() 1074 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_pdev_set_rd() 1075 cmd->regd = __cpu_to_le32(rd); ath10k_wmi_tlv_op_gen_pdev_set_rd() 1076 cmd->regd_2ghz = __cpu_to_le32(rd2g); ath10k_wmi_tlv_op_gen_pdev_set_rd() 1077 cmd->regd_5ghz = __cpu_to_le32(rd5g); ath10k_wmi_tlv_op_gen_pdev_set_rd() 1078 cmd->conform_limit_2ghz = __cpu_to_le32(rd2g); ath10k_wmi_tlv_op_gen_pdev_set_rd() 1079 cmd->conform_limit_5ghz = __cpu_to_le32(rd5g); ath10k_wmi_tlv_op_gen_pdev_set_rd() 1089 struct wmi_tlv_pdev_set_param_cmd *cmd; ath10k_wmi_tlv_op_gen_pdev_set_param() local 1093 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_pdev_set_param() 1099 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_pdev_set_param() 1100 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_pdev_set_param() 1101 cmd->param_id = __cpu_to_le32(param_id); ath10k_wmi_tlv_op_gen_pdev_set_param() 1102 cmd->param_value = __cpu_to_le32(param_value); ath10k_wmi_tlv_op_gen_pdev_set_param() 1112 struct wmi_tlv_init_cmd *cmd; ath10k_wmi_tlv_op_gen_init() local 1119 len = (sizeof(*tlv) + sizeof(*cmd)) + ath10k_wmi_tlv_op_gen_init() 1131 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_init() 1132 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_init() 1134 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_init() 1151 cmd->abi.abi_ver0 = __cpu_to_le32(WMI_TLV_ABI_VER0); ath10k_wmi_tlv_op_gen_init() 1152 cmd->abi.abi_ver1 = __cpu_to_le32(WMI_TLV_ABI_VER1); ath10k_wmi_tlv_op_gen_init() 1153 cmd->abi.abi_ver_ns0 = __cpu_to_le32(WMI_TLV_ABI_VER_NS0); ath10k_wmi_tlv_op_gen_init() 1154 cmd->abi.abi_ver_ns1 = __cpu_to_le32(WMI_TLV_ABI_VER_NS1); ath10k_wmi_tlv_op_gen_init() 1155 cmd->abi.abi_ver_ns2 = __cpu_to_le32(WMI_TLV_ABI_VER_NS2); ath10k_wmi_tlv_op_gen_init() 1156 cmd->abi.abi_ver_ns3 = __cpu_to_le32(WMI_TLV_ABI_VER_NS3); ath10k_wmi_tlv_op_gen_init() 1157 cmd->num_host_mem_chunks = __cpu_to_le32(ar->wmi.num_mem_chunks); ath10k_wmi_tlv_op_gen_init() 1216 struct wmi_tlv_start_scan_cmd *cmd; ath10k_wmi_tlv_op_gen_start_scan() local 1234 len = (sizeof(*tlv) + sizeof(*cmd)) + ath10k_wmi_tlv_op_gen_start_scan() 1247 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_start_scan() 1248 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_start_scan() 1250 ath10k_wmi_put_start_scan_common(&cmd->common, arg); ath10k_wmi_tlv_op_gen_start_scan() 1251 cmd->burst_duration_ms = __cpu_to_le32(0); ath10k_wmi_tlv_op_gen_start_scan() 1252 cmd->num_channels = __cpu_to_le32(arg->n_channels); ath10k_wmi_tlv_op_gen_start_scan() 1253 cmd->num_ssids = __cpu_to_le32(arg->n_ssids); ath10k_wmi_tlv_op_gen_start_scan() 1254 cmd->num_bssids = __cpu_to_le32(arg->n_bssids); ath10k_wmi_tlv_op_gen_start_scan() 1255 cmd->ie_len = __cpu_to_le32(arg->ie_len); ath10k_wmi_tlv_op_gen_start_scan() 1256 cmd->num_probes = __cpu_to_le32(3); ath10k_wmi_tlv_op_gen_start_scan() 1261 cmd->common.scan_ctrl_flags ^= __cpu_to_le32(WMI_SCAN_FILTER_PROBE_REQ); ath10k_wmi_tlv_op_gen_start_scan() 1264 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_start_scan() 1314 struct wmi_stop_scan_cmd *cmd; ath10k_wmi_tlv_op_gen_stop_scan() local 1325 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_stop_scan() 1337 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_stop_scan() 1338 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_stop_scan() 1339 cmd->req_type = __cpu_to_le32(arg->req_type); ath10k_wmi_tlv_op_gen_stop_scan() 1340 cmd->vdev_id = __cpu_to_le32(arg->u.vdev_id); ath10k_wmi_tlv_op_gen_stop_scan() 1341 cmd->scan_id = __cpu_to_le32(scan_id); ath10k_wmi_tlv_op_gen_stop_scan() 1342 cmd->scan_req_id = __cpu_to_le32(req_id); ath10k_wmi_tlv_op_gen_stop_scan() 1355 struct wmi_vdev_create_cmd *cmd; ath10k_wmi_tlv_op_gen_vdev_create() local 1359 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_create() 1365 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_create() 1366 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_vdev_create() 1367 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_vdev_create() 1368 cmd->vdev_type = __cpu_to_le32(vdev_type); ath10k_wmi_tlv_op_gen_vdev_create() 1369 cmd->vdev_subtype = __cpu_to_le32(vdev_subtype); ath10k_wmi_tlv_op_gen_vdev_create() 1370 ether_addr_copy(cmd->vdev_macaddr.addr, mac_addr); ath10k_wmi_tlv_op_gen_vdev_create() 1379 struct wmi_vdev_delete_cmd *cmd; ath10k_wmi_tlv_op_gen_vdev_delete() local 1383 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_delete() 1389 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_delete() 1390 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_vdev_delete() 1391 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_vdev_delete() 1402 struct wmi_tlv_vdev_start_cmd *cmd; ath10k_wmi_tlv_op_gen_vdev_start() local 1415 if (WARN_ON(arg->ssid_len > sizeof(cmd->ssid.ssid))) ath10k_wmi_tlv_op_gen_vdev_start() 1418 len = (sizeof(*tlv) + sizeof(*cmd)) + ath10k_wmi_tlv_op_gen_vdev_start() 1434 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_start() 1435 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_vdev_start() 1436 cmd->vdev_id = __cpu_to_le32(arg->vdev_id); ath10k_wmi_tlv_op_gen_vdev_start() 1437 cmd->bcn_intval = __cpu_to_le32(arg->bcn_intval); ath10k_wmi_tlv_op_gen_vdev_start() 1438 cmd->dtim_period = __cpu_to_le32(arg->dtim_period); ath10k_wmi_tlv_op_gen_vdev_start() 1439 cmd->flags = __cpu_to_le32(flags); ath10k_wmi_tlv_op_gen_vdev_start() 1440 cmd->bcn_tx_rate = __cpu_to_le32(arg->bcn_tx_rate); ath10k_wmi_tlv_op_gen_vdev_start() 1441 cmd->bcn_tx_power = __cpu_to_le32(arg->bcn_tx_power); ath10k_wmi_tlv_op_gen_vdev_start() 1442 cmd->disable_hw_ack = __cpu_to_le32(arg->disable_hw_ack); ath10k_wmi_tlv_op_gen_vdev_start() 1445 cmd->ssid.ssid_len = __cpu_to_le32(arg->ssid_len); ath10k_wmi_tlv_op_gen_vdev_start() 1446 memcpy(cmd->ssid.ssid, arg->ssid, arg->ssid_len); ath10k_wmi_tlv_op_gen_vdev_start() 1450 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_vdev_start() 1480 struct wmi_vdev_stop_cmd *cmd; ath10k_wmi_tlv_op_gen_vdev_stop() local 1484 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_stop() 1490 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_stop() 1491 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_vdev_stop() 1492 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_vdev_stop() 1503 struct wmi_vdev_up_cmd *cmd; ath10k_wmi_tlv_op_gen_vdev_up() local 1507 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_up() 1513 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_up() 1514 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_vdev_up() 1515 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_vdev_up() 1516 cmd->vdev_assoc_id = __cpu_to_le32(aid); ath10k_wmi_tlv_op_gen_vdev_up() 1517 ether_addr_copy(cmd->vdev_bssid.addr, bssid); ath10k_wmi_tlv_op_gen_vdev_up() 1526 struct wmi_vdev_down_cmd *cmd; ath10k_wmi_tlv_op_gen_vdev_down() local 1530 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_down() 1536 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_down() 1537 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_vdev_down() 1538 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_vdev_down() 1548 struct wmi_vdev_set_param_cmd *cmd; ath10k_wmi_tlv_op_gen_vdev_set_param() local 1552 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_set_param() 1558 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_set_param() 1559 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_vdev_set_param() 1560 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_vdev_set_param() 1561 cmd->param_id = __cpu_to_le32(param_id); ath10k_wmi_tlv_op_gen_vdev_set_param() 1562 cmd->param_value = __cpu_to_le32(param_value); ath10k_wmi_tlv_op_gen_vdev_set_param() 1572 struct wmi_vdev_install_key_cmd *cmd; ath10k_wmi_tlv_op_gen_vdev_install_key() local 1583 len = sizeof(*tlv) + sizeof(*cmd) + ath10k_wmi_tlv_op_gen_vdev_install_key() 1592 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_install_key() 1593 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_vdev_install_key() 1594 cmd->vdev_id = __cpu_to_le32(arg->vdev_id); ath10k_wmi_tlv_op_gen_vdev_install_key() 1595 cmd->key_idx = __cpu_to_le32(arg->key_idx); ath10k_wmi_tlv_op_gen_vdev_install_key() 1596 cmd->key_flags = __cpu_to_le32(arg->key_flags); ath10k_wmi_tlv_op_gen_vdev_install_key() 1597 cmd->key_cipher = __cpu_to_le32(arg->key_cipher); ath10k_wmi_tlv_op_gen_vdev_install_key() 1598 cmd->key_len = __cpu_to_le32(arg->key_len); ath10k_wmi_tlv_op_gen_vdev_install_key() 1599 cmd->key_txmic_len = __cpu_to_le32(arg->key_txmic_len); ath10k_wmi_tlv_op_gen_vdev_install_key() 1600 cmd->key_rxmic_len = __cpu_to_le32(arg->key_rxmic_len); ath10k_wmi_tlv_op_gen_vdev_install_key() 1603 ether_addr_copy(cmd->peer_macaddr.addr, arg->macaddr); ath10k_wmi_tlv_op_gen_vdev_install_key() 1606 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_vdev_install_key() 1652 struct wmi_sta_uapsd_auto_trig_cmd_fixed_param *cmd; ath10k_wmi_tlv_op_gen_vdev_sta_uapsd() local 1662 len = sizeof(*tlv) + sizeof(*cmd) + ath10k_wmi_tlv_op_gen_vdev_sta_uapsd() 1671 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_sta_uapsd() 1672 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_vdev_sta_uapsd() 1673 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_vdev_sta_uapsd() 1674 cmd->num_ac = __cpu_to_le32(num_ac); ath10k_wmi_tlv_op_gen_vdev_sta_uapsd() 1675 ether_addr_copy(cmd->peer_macaddr.addr, peer_addr); ath10k_wmi_tlv_op_gen_vdev_sta_uapsd() 1678 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_vdev_sta_uapsd() 1712 struct wmi_tlv_vdev_set_wmm_cmd *cmd; ath10k_wmi_tlv_op_gen_vdev_wmm_conf() local 1718 len = sizeof(*tlv) + sizeof(*cmd); ath10k_wmi_tlv_op_gen_vdev_wmm_conf() 1726 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_vdev_wmm_conf() 1727 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_vdev_wmm_conf() 1728 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_vdev_wmm_conf() 1730 ath10k_wmi_set_wmm_param(&cmd->vdev_wmm_params[0].params, &arg->ac_be); ath10k_wmi_tlv_op_gen_vdev_wmm_conf() 1731 ath10k_wmi_set_wmm_param(&cmd->vdev_wmm_params[1].params, &arg->ac_bk); ath10k_wmi_tlv_op_gen_vdev_wmm_conf() 1732 ath10k_wmi_set_wmm_param(&cmd->vdev_wmm_params[2].params, &arg->ac_vi); ath10k_wmi_tlv_op_gen_vdev_wmm_conf() 1733 ath10k_wmi_set_wmm_param(&cmd->vdev_wmm_params[3].params, &arg->ac_vo); ath10k_wmi_tlv_op_gen_vdev_wmm_conf() 1743 struct wmi_tlv_sta_keepalive_cmd *cmd; ath10k_wmi_tlv_op_gen_sta_keepalive() local 1750 len = sizeof(*tlv) + sizeof(*cmd) + ath10k_wmi_tlv_op_gen_sta_keepalive() 1759 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_sta_keepalive() 1760 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_sta_keepalive() 1761 cmd->vdev_id = __cpu_to_le32(arg->vdev_id); ath10k_wmi_tlv_op_gen_sta_keepalive() 1762 cmd->enabled = __cpu_to_le32(arg->enabled); ath10k_wmi_tlv_op_gen_sta_keepalive() 1763 cmd->method = __cpu_to_le32(arg->method); ath10k_wmi_tlv_op_gen_sta_keepalive() 1764 cmd->interval = __cpu_to_le32(arg->interval); ath10k_wmi_tlv_op_gen_sta_keepalive() 1767 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_sta_keepalive() 1787 struct wmi_tlv_peer_create_cmd *cmd; ath10k_wmi_tlv_op_gen_peer_create() local 1791 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_peer_create() 1797 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_peer_create() 1798 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_peer_create() 1799 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_peer_create() 1800 cmd->peer_type = __cpu_to_le32(WMI_TLV_PEER_TYPE_DEFAULT); /* FIXME */ ath10k_wmi_tlv_op_gen_peer_create() 1801 ether_addr_copy(cmd->peer_addr.addr, peer_addr); ath10k_wmi_tlv_op_gen_peer_create() 1811 struct wmi_peer_delete_cmd *cmd; ath10k_wmi_tlv_op_gen_peer_delete() local 1815 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_peer_delete() 1821 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_peer_delete() 1822 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_peer_delete() 1823 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_peer_delete() 1824 ether_addr_copy(cmd->peer_macaddr.addr, peer_addr); ath10k_wmi_tlv_op_gen_peer_delete() 1834 struct wmi_peer_flush_tids_cmd *cmd; ath10k_wmi_tlv_op_gen_peer_flush() local 1838 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_peer_flush() 1844 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_peer_flush() 1845 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_peer_flush() 1846 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_peer_flush() 1847 cmd->peer_tid_bitmap = __cpu_to_le32(tid_bitmap); ath10k_wmi_tlv_op_gen_peer_flush() 1848 ether_addr_copy(cmd->peer_macaddr.addr, peer_addr); ath10k_wmi_tlv_op_gen_peer_flush() 1860 struct wmi_peer_set_param_cmd *cmd; ath10k_wmi_tlv_op_gen_peer_set_param() local 1864 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_peer_set_param() 1870 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_peer_set_param() 1871 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_peer_set_param() 1872 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_peer_set_param() 1873 cmd->param_id = __cpu_to_le32(param_id); ath10k_wmi_tlv_op_gen_peer_set_param() 1874 cmd->param_value = __cpu_to_le32(param_value); ath10k_wmi_tlv_op_gen_peer_set_param() 1875 ether_addr_copy(cmd->peer_macaddr.addr, peer_addr); ath10k_wmi_tlv_op_gen_peer_set_param() 1885 struct wmi_tlv_peer_assoc_cmd *cmd; ath10k_wmi_tlv_op_gen_peer_assoc() local 1902 len = (sizeof(*tlv) + sizeof(*cmd)) + ath10k_wmi_tlv_op_gen_peer_assoc() 1913 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_peer_assoc() 1914 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_peer_assoc() 1916 cmd->vdev_id = __cpu_to_le32(arg->vdev_id); ath10k_wmi_tlv_op_gen_peer_assoc() 1917 cmd->new_assoc = __cpu_to_le32(arg->peer_reassoc ? 0 : 1); ath10k_wmi_tlv_op_gen_peer_assoc() 1918 cmd->assoc_id = __cpu_to_le32(arg->peer_aid); ath10k_wmi_tlv_op_gen_peer_assoc() 1919 cmd->flags = __cpu_to_le32(arg->peer_flags); ath10k_wmi_tlv_op_gen_peer_assoc() 1920 cmd->caps = __cpu_to_le32(arg->peer_caps); ath10k_wmi_tlv_op_gen_peer_assoc() 1921 cmd->listen_intval = __cpu_to_le32(arg->peer_listen_intval); ath10k_wmi_tlv_op_gen_peer_assoc() 1922 cmd->ht_caps = __cpu_to_le32(arg->peer_ht_caps); ath10k_wmi_tlv_op_gen_peer_assoc() 1923 cmd->max_mpdu = __cpu_to_le32(arg->peer_max_mpdu); ath10k_wmi_tlv_op_gen_peer_assoc() 1924 cmd->mpdu_density = __cpu_to_le32(arg->peer_mpdu_density); ath10k_wmi_tlv_op_gen_peer_assoc() 1925 cmd->rate_caps = __cpu_to_le32(arg->peer_rate_caps); ath10k_wmi_tlv_op_gen_peer_assoc() 1926 cmd->nss = __cpu_to_le32(arg->peer_num_spatial_streams); ath10k_wmi_tlv_op_gen_peer_assoc() 1927 cmd->vht_caps = __cpu_to_le32(arg->peer_vht_caps); ath10k_wmi_tlv_op_gen_peer_assoc() 1928 cmd->phy_mode = __cpu_to_le32(arg->peer_phymode); ath10k_wmi_tlv_op_gen_peer_assoc() 1929 cmd->num_legacy_rates = __cpu_to_le32(arg->peer_legacy_rates.num_rates); ath10k_wmi_tlv_op_gen_peer_assoc() 1930 cmd->num_ht_rates = __cpu_to_le32(arg->peer_ht_rates.num_rates); ath10k_wmi_tlv_op_gen_peer_assoc() 1931 ether_addr_copy(cmd->mac_addr.addr, arg->addr); ath10k_wmi_tlv_op_gen_peer_assoc() 1934 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_peer_assoc() 1975 struct wmi_sta_powersave_mode_cmd *cmd; ath10k_wmi_tlv_op_gen_set_psmode() local 1979 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_set_psmode() 1985 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_set_psmode() 1986 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_set_psmode() 1987 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_set_psmode() 1988 cmd->sta_ps_mode = __cpu_to_le32(psmode); ath10k_wmi_tlv_op_gen_set_psmode() 1999 struct wmi_sta_powersave_param_cmd *cmd; ath10k_wmi_tlv_op_gen_set_sta_ps() local 2003 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_set_sta_ps() 2009 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_set_sta_ps() 2010 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_set_sta_ps() 2011 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_set_sta_ps() 2012 cmd->param_id = __cpu_to_le32(param_id); ath10k_wmi_tlv_op_gen_set_sta_ps() 2013 cmd->param_value = __cpu_to_le32(param_value); ath10k_wmi_tlv_op_gen_set_sta_ps() 2023 struct wmi_ap_ps_peer_cmd *cmd; ath10k_wmi_tlv_op_gen_set_ap_ps() local 2030 skb = ath10k_wmi_alloc_skb(ar, sizeof(*cmd)); ath10k_wmi_tlv_op_gen_set_ap_ps() 2036 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_set_ap_ps() 2037 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_set_ap_ps() 2038 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_set_ap_ps() 2039 cmd->param_id = __cpu_to_le32(param_id); ath10k_wmi_tlv_op_gen_set_ap_ps() 2040 cmd->param_value = __cpu_to_le32(value); ath10k_wmi_tlv_op_gen_set_ap_ps() 2041 ether_addr_copy(cmd->peer_macaddr.addr, mac); ath10k_wmi_tlv_op_gen_set_ap_ps() 2051 struct wmi_tlv_scan_chan_list_cmd *cmd; ath10k_wmi_tlv_op_gen_scan_chan_list() local 2061 len = (sizeof(*tlv) + sizeof(*cmd)) + ath10k_wmi_tlv_op_gen_scan_chan_list() 2071 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_scan_chan_list() 2072 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_scan_chan_list() 2073 cmd->num_scan_chans = __cpu_to_le32(arg->n_channels); ath10k_wmi_tlv_op_gen_scan_chan_list() 2076 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_scan_chan_list() 2111 struct wmi_bcn_tx_ref_cmd *cmd; ath10k_wmi_tlv_op_gen_beacon_dma() local 2117 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_beacon_dma() 2126 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_beacon_dma() 2127 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_beacon_dma() 2128 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_beacon_dma() 2129 cmd->data_len = __cpu_to_le32(bcn_len); ath10k_wmi_tlv_op_gen_beacon_dma() 2130 cmd->data_ptr = __cpu_to_le32(bcn_paddr); ath10k_wmi_tlv_op_gen_beacon_dma() 2131 cmd->msdu_id = 0; ath10k_wmi_tlv_op_gen_beacon_dma() 2132 cmd->frame_control = __cpu_to_le32(fc); ath10k_wmi_tlv_op_gen_beacon_dma() 2133 cmd->flags = 0; ath10k_wmi_tlv_op_gen_beacon_dma() 2136 cmd->flags |= __cpu_to_le32(WMI_BCN_TX_REF_FLAG_DTIM_ZERO); ath10k_wmi_tlv_op_gen_beacon_dma() 2139 cmd->flags |= __cpu_to_le32(WMI_BCN_TX_REF_FLAG_DELIVER_CAB); ath10k_wmi_tlv_op_gen_beacon_dma() 2149 struct wmi_tlv_pdev_set_wmm_cmd *cmd; ath10k_wmi_tlv_op_gen_pdev_set_wmm() local 2156 len = (sizeof(*tlv) + sizeof(*cmd)) + ath10k_wmi_tlv_op_gen_pdev_set_wmm() 2166 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_pdev_set_wmm() 2167 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_pdev_set_wmm() 2172 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_pdev_set_wmm() 2186 struct wmi_request_stats_cmd *cmd; ath10k_wmi_tlv_op_gen_request_stats() local 2190 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_request_stats() 2196 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_request_stats() 2197 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_request_stats() 2198 cmd->stats_id = __cpu_to_le32(stats_mask); ath10k_wmi_tlv_op_gen_request_stats() 2209 struct wmi_force_fw_hang_cmd *cmd; ath10k_wmi_tlv_op_gen_force_fw_hang() local 2213 skb = ath10k_wmi_alloc_skb(ar, sizeof(*tlv) + sizeof(*cmd)); ath10k_wmi_tlv_op_gen_force_fw_hang() 2219 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_force_fw_hang() 2220 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_force_fw_hang() 2221 cmd->type = __cpu_to_le32(type); ath10k_wmi_tlv_op_gen_force_fw_hang() 2222 cmd->delay_ms = __cpu_to_le32(delay_ms); ath10k_wmi_tlv_op_gen_force_fw_hang() 2231 struct wmi_tlv_dbglog_cmd *cmd; ath10k_wmi_tlv_op_gen_dbglog_cfg() local 2249 len = sizeof(*tlv) + sizeof(*cmd) + sizeof(*tlv) + bmap_len; ath10k_wmi_tlv_op_gen_dbglog_cfg() 2258 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_dbglog_cfg() 2259 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_dbglog_cfg() 2260 cmd->param = __cpu_to_le32(WMI_TLV_DBGLOG_PARAM_LOG_LEVEL); ath10k_wmi_tlv_op_gen_dbglog_cfg() 2261 cmd->value = __cpu_to_le32(value); ath10k_wmi_tlv_op_gen_dbglog_cfg() 2264 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_dbglog_cfg() 2282 struct wmi_tlv_pktlog_enable *cmd; ath10k_wmi_tlv_op_gen_pktlog_enable() local 2288 len = sizeof(*tlv) + sizeof(*cmd); ath10k_wmi_tlv_op_gen_pktlog_enable() 2296 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_pktlog_enable() 2297 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_pktlog_enable() 2298 cmd->filter = __cpu_to_le32(filter); ath10k_wmi_tlv_op_gen_pktlog_enable() 2301 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_pktlog_enable() 2311 struct wmi_tlv_pktlog_disable *cmd; ath10k_wmi_tlv_op_gen_pktlog_disable() local 2317 len = sizeof(*tlv) + sizeof(*cmd); ath10k_wmi_tlv_op_gen_pktlog_disable() 2325 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_pktlog_disable() 2326 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_pktlog_disable() 2329 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_pktlog_disable() 2341 struct wmi_tlv_bcn_tmpl_cmd *cmd; ath10k_wmi_tlv_op_gen_bcn_tmpl() local 2351 len = sizeof(*tlv) + sizeof(*cmd) + ath10k_wmi_tlv_op_gen_bcn_tmpl() 2361 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_bcn_tmpl() 2362 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_bcn_tmpl() 2363 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_bcn_tmpl() 2364 cmd->tim_ie_offset = __cpu_to_le32(tim_ie_offset); ath10k_wmi_tlv_op_gen_bcn_tmpl() 2365 cmd->buf_len = __cpu_to_le32(bcn->len); ath10k_wmi_tlv_op_gen_bcn_tmpl() 2368 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_bcn_tmpl() 2403 struct wmi_tlv_prb_tmpl_cmd *cmd; ath10k_wmi_tlv_op_gen_prb_tmpl() local 2410 len = sizeof(*tlv) + sizeof(*cmd) + ath10k_wmi_tlv_op_gen_prb_tmpl() 2420 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_prb_tmpl() 2421 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_prb_tmpl() 2422 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_prb_tmpl() 2423 cmd->buf_len = __cpu_to_le32(prb->len); ath10k_wmi_tlv_op_gen_prb_tmpl() 2426 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_prb_tmpl() 2452 struct wmi_tlv_p2p_go_bcn_ie *cmd; ath10k_wmi_tlv_op_gen_p2p_go_bcn_ie() local 2458 len = sizeof(*tlv) + sizeof(*cmd) + ath10k_wmi_tlv_op_gen_p2p_go_bcn_ie() 2467 tlv->len = __cpu_to_le16(sizeof(*cmd)); ath10k_wmi_tlv_op_gen_p2p_go_bcn_ie() 2468 cmd = (void *)tlv->value; ath10k_wmi_tlv_op_gen_p2p_go_bcn_ie() 2469 cmd->vdev_id = __cpu_to_le32(vdev_id); ath10k_wmi_tlv_op_gen_p2p_go_bcn_ie() 2470 cmd->ie_len = __cpu_to_le32(p2p_ie[1] + 2); ath10k_wmi_tlv_op_gen_p2p_go_bcn_ie() 2473 ptr += sizeof(*cmd); ath10k_wmi_tlv_op_gen_p2p_go_bcn_ie() 2792 ar->wmi.cmd = &wmi_tlv_cmd_map; ath10k_wmi_tlv_attach()
|
/linux-4.1.27/drivers/infiniband/hw/ocrdma/ |
H A D | ocrdma_hw.c | 388 struct ocrdma_delete_q_req *cmd = dev->mbx_cmd; ocrdma_mbx_delete_q() local 403 memset(cmd, 0, sizeof(*cmd)); ocrdma_mbx_delete_q() 404 ocrdma_init_mch(&cmd->req, opcode, OCRDMA_SUBSYS_COMMON, sizeof(*cmd)); ocrdma_mbx_delete_q() 405 cmd->id = q->id; ocrdma_mbx_delete_q() 408 cmd, sizeof(*cmd), NULL, NULL); ocrdma_mbx_delete_q() 417 struct ocrdma_create_eq_req *cmd = dev->mbx_cmd; ocrdma_mbx_create_eq() local 420 memset(cmd, 0, sizeof(*cmd)); ocrdma_mbx_create_eq() 421 ocrdma_init_mch(&cmd->req, OCRDMA_CMD_CREATE_EQ, OCRDMA_SUBSYS_COMMON, ocrdma_mbx_create_eq() 422 sizeof(*cmd)); ocrdma_mbx_create_eq() 424 cmd->req.rsvd_version = 2; ocrdma_mbx_create_eq() 425 cmd->num_pages = 4; ocrdma_mbx_create_eq() 426 cmd->valid = OCRDMA_CREATE_EQ_VALID; ocrdma_mbx_create_eq() 427 cmd->cnt = 4 << OCRDMA_CREATE_EQ_CNT_SHIFT; ocrdma_mbx_create_eq() 429 ocrdma_build_q_pages(&cmd->pa[0], cmd->num_pages, eq->q.dma, ocrdma_mbx_create_eq() 431 status = be_roce_mcc_cmd(dev->nic_info.netdev, cmd, sizeof(*cmd), NULL, ocrdma_mbx_create_eq() 508 struct ocrdma_create_cq_cmd *cmd = dev->mbx_cmd; ocrdma_mbx_mq_cq_create() local 512 memset(cmd, 0, sizeof(*cmd)); ocrdma_mbx_mq_cq_create() 513 ocrdma_init_mch(&cmd->req, OCRDMA_CMD_CREATE_CQ, ocrdma_mbx_mq_cq_create() 514 OCRDMA_SUBSYS_COMMON, sizeof(*cmd)); ocrdma_mbx_mq_cq_create() 516 cmd->req.rsvd_version = OCRDMA_CREATE_CQ_VER2; ocrdma_mbx_mq_cq_create() 517 cmd->pgsz_pgcnt = (cq->size / OCRDMA_MIN_Q_PAGE_SIZE) << ocrdma_mbx_mq_cq_create() 519 cmd->pgsz_pgcnt |= PAGES_4K_SPANNED(cq->va, cq->size); ocrdma_mbx_mq_cq_create() 521 cmd->ev_cnt_flags = OCRDMA_CREATE_CQ_DEF_FLAGS; ocrdma_mbx_mq_cq_create() 522 cmd->eqn = eq->id; ocrdma_mbx_mq_cq_create() 523 cmd->pdid_cqecnt = cq->size / sizeof(struct ocrdma_mcqe); ocrdma_mbx_mq_cq_create() 525 ocrdma_build_q_pages(&cmd->pa[0], cq->size / OCRDMA_MIN_Q_PAGE_SIZE, ocrdma_mbx_mq_cq_create() 528 cmd, sizeof(*cmd), NULL, NULL); ocrdma_mbx_mq_cq_create() 550 struct ocrdma_create_mq_req *cmd = dev->mbx_cmd; ocrdma_mbx_create_mq() local 554 memset(cmd, 0, sizeof(*cmd)); ocrdma_mbx_create_mq() 557 ocrdma_init_mch(&cmd->req, OCRDMA_CMD_CREATE_MQ_EXT, ocrdma_mbx_create_mq() 558 OCRDMA_SUBSYS_COMMON, sizeof(*cmd)); ocrdma_mbx_create_mq() 559 cmd->req.rsvd_version = 1; ocrdma_mbx_create_mq() 560 cmd->cqid_pages = num_pages; ocrdma_mbx_create_mq() 561 cmd->cqid_pages |= (cq->id << OCRDMA_CREATE_MQ_CQ_ID_SHIFT); ocrdma_mbx_create_mq() 562 cmd->async_cqid_valid = OCRDMA_CREATE_MQ_ASYNC_CQ_VALID; ocrdma_mbx_create_mq() 564 cmd->async_event_bitmap = BIT(OCRDMA_ASYNC_GRP5_EVE_CODE); ocrdma_mbx_create_mq() 565 cmd->async_event_bitmap |= BIT(OCRDMA_ASYNC_RDMA_EVE_CODE); ocrdma_mbx_create_mq() 567 cmd->async_cqid_ringsize = cq->id; ocrdma_mbx_create_mq() 568 cmd->async_cqid_ringsize |= (ocrdma_encoded_q_len(mq->len) << ocrdma_mbx_create_mq() 570 cmd->valid = OCRDMA_CREATE_MQ_VALID; ocrdma_mbx_create_mq() 571 pa = &cmd->pa[0]; ocrdma_mbx_create_mq() 575 cmd, sizeof(*cmd), NULL, NULL); ocrdma_mbx_create_mq() 974 static void ocrdma_post_mqe(struct ocrdma_dev *dev, struct ocrdma_mqe *cmd) ocrdma_post_mqe() argument 981 cmd->hdr.tag_lo = dev->mq.sq.head; ocrdma_post_mqe() 982 ocrdma_copy_cpu_to_le32(mqe, cmd, sizeof(*mqe)); ocrdma_post_mqe() 1172 struct ocrdma_mqe *cmd; ocrdma_mbx_query_fw_ver() local 1175 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_GET_FW_VER, sizeof(*cmd)); ocrdma_mbx_query_fw_ver() 1176 if (!cmd) ocrdma_mbx_query_fw_ver() 1178 ocrdma_init_mch((struct ocrdma_mbx_hdr *)&cmd->u.cmd[0], ocrdma_mbx_query_fw_ver() 1180 OCRDMA_SUBSYS_COMMON, sizeof(*cmd)); ocrdma_mbx_query_fw_ver() 1182 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_query_fw_ver() 1185 rsp = (struct ocrdma_fw_ver_rsp *)cmd; ocrdma_mbx_query_fw_ver() 1191 kfree(cmd); ocrdma_mbx_query_fw_ver() 1199 struct ocrdma_mqe *cmd; ocrdma_mbx_query_fw_config() local 1202 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_GET_FW_CONFIG, sizeof(*cmd)); ocrdma_mbx_query_fw_config() 1203 if (!cmd) ocrdma_mbx_query_fw_config() 1205 ocrdma_init_mch((struct ocrdma_mbx_hdr *)&cmd->u.cmd[0], ocrdma_mbx_query_fw_config() 1207 OCRDMA_SUBSYS_COMMON, sizeof(*cmd)); ocrdma_mbx_query_fw_config() 1208 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_query_fw_config() 1211 rsp = (struct ocrdma_fw_conf_rsp *)cmd; ocrdma_mbx_query_fw_config() 1214 kfree(cmd); ocrdma_mbx_query_fw_config() 1313 struct ocrdma_mqe *cmd; ocrdma_mbx_query_dev() local 1315 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_QUERY_CONFIG, sizeof(*cmd)); ocrdma_mbx_query_dev() 1316 if (!cmd) ocrdma_mbx_query_dev() 1318 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_query_dev() 1321 rsp = (struct ocrdma_mbx_query_config *)cmd; ocrdma_mbx_query_dev() 1324 kfree(cmd); ocrdma_mbx_query_dev() 1332 struct ocrdma_mqe *cmd; ocrdma_mbx_get_link_speed() local 1334 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_QUERY_NTWK_LINK_CONFIG_V1, ocrdma_mbx_get_link_speed() 1335 sizeof(*cmd)); ocrdma_mbx_get_link_speed() 1336 if (!cmd) ocrdma_mbx_get_link_speed() 1338 ocrdma_init_mch((struct ocrdma_mbx_hdr *)&cmd->u.cmd[0], ocrdma_mbx_get_link_speed() 1340 OCRDMA_SUBSYS_COMMON, sizeof(*cmd)); ocrdma_mbx_get_link_speed() 1342 ((struct ocrdma_mbx_hdr *)cmd->u.cmd)->rsvd_version = 0x1; ocrdma_mbx_get_link_speed() 1344 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_get_link_speed() 1348 rsp = (struct ocrdma_get_link_speed_rsp *)cmd; ocrdma_mbx_get_link_speed() 1353 kfree(cmd); ocrdma_mbx_get_link_speed() 1360 struct ocrdma_mqe *cmd; ocrdma_mbx_get_phy_info() local 1363 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_PHY_DETAILS, sizeof(*cmd)); ocrdma_mbx_get_phy_info() 1364 if (!cmd) ocrdma_mbx_get_phy_info() 1367 ocrdma_init_mch((struct ocrdma_mbx_hdr *)&cmd->u.cmd[0], ocrdma_mbx_get_phy_info() 1369 sizeof(*cmd)); ocrdma_mbx_get_phy_info() 1371 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_get_phy_info() 1375 rsp = (struct ocrdma_get_phy_info_rsp *)cmd; ocrdma_mbx_get_phy_info() 1387 kfree(cmd); ocrdma_mbx_get_phy_info() 1394 struct ocrdma_alloc_pd *cmd; ocrdma_mbx_alloc_pd() local 1397 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_ALLOC_PD, sizeof(*cmd)); ocrdma_mbx_alloc_pd() 1398 if (!cmd) ocrdma_mbx_alloc_pd() 1401 cmd->enable_dpp_rsvd |= OCRDMA_ALLOC_PD_ENABLE_DPP; ocrdma_mbx_alloc_pd() 1402 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_alloc_pd() 1405 rsp = (struct ocrdma_alloc_pd_rsp *)cmd; ocrdma_mbx_alloc_pd() 1416 kfree(cmd); ocrdma_mbx_alloc_pd() 1423 struct ocrdma_dealloc_pd *cmd; ocrdma_mbx_dealloc_pd() local 1425 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_DEALLOC_PD, sizeof(*cmd)); ocrdma_mbx_dealloc_pd() 1426 if (!cmd) ocrdma_mbx_dealloc_pd() 1428 cmd->id = pd->id; ocrdma_mbx_dealloc_pd() 1429 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_dealloc_pd() 1430 kfree(cmd); ocrdma_mbx_dealloc_pd() 1439 struct ocrdma_alloc_pd_range *cmd; ocrdma_mbx_alloc_pd_range() local 1444 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_ALLOC_PD_RANGE, ocrdma_mbx_alloc_pd_range() 1445 sizeof(*cmd)); ocrdma_mbx_alloc_pd_range() 1446 if (!cmd) ocrdma_mbx_alloc_pd_range() 1448 cmd->pd_count = dev->attr.max_dpp_pds; ocrdma_mbx_alloc_pd_range() 1449 cmd->enable_dpp_rsvd |= OCRDMA_ALLOC_PD_ENABLE_DPP; ocrdma_mbx_alloc_pd_range() 1450 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_alloc_pd_range() 1451 rsp = (struct ocrdma_alloc_pd_range_rsp *)cmd; ocrdma_mbx_alloc_pd_range() 1465 kfree(cmd); ocrdma_mbx_alloc_pd_range() 1468 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_ALLOC_PD_RANGE, sizeof(*cmd)); ocrdma_mbx_alloc_pd_range() 1469 if (!cmd) ocrdma_mbx_alloc_pd_range() 1472 cmd->pd_count = dev->attr.max_pd - dev->attr.max_dpp_pds; ocrdma_mbx_alloc_pd_range() 1473 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_alloc_pd_range() 1474 rsp = (struct ocrdma_alloc_pd_range_rsp *)cmd; ocrdma_mbx_alloc_pd_range() 1483 kfree(cmd); ocrdma_mbx_alloc_pd_range() 1495 struct ocrdma_dealloc_pd_range *cmd; ocrdma_mbx_dealloc_pd_range() local 1498 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_DEALLOC_PD_RANGE, sizeof(*cmd)); ocrdma_mbx_dealloc_pd_range() 1499 if (!cmd) ocrdma_mbx_dealloc_pd_range() 1503 cmd->start_pd_id = dev->pd_mgr->pd_norm_start; ocrdma_mbx_dealloc_pd_range() 1504 cmd->pd_count = dev->pd_mgr->max_normal_pd; ocrdma_mbx_dealloc_pd_range() 1505 ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_dealloc_pd_range() 1509 kfree(cmd); ocrdma_mbx_dealloc_pd_range() 1511 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_DEALLOC_PD_RANGE, ocrdma_mbx_dealloc_pd_range() 1512 sizeof(*cmd)); ocrdma_mbx_dealloc_pd_range() 1513 if (!cmd) ocrdma_mbx_dealloc_pd_range() 1516 cmd->start_pd_id = dev->pd_mgr->pd_dpp_start; ocrdma_mbx_dealloc_pd_range() 1517 cmd->pd_count = dev->pd_mgr->max_dpp_pd; ocrdma_mbx_dealloc_pd_range() 1518 ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_dealloc_pd_range() 1521 kfree(cmd); ocrdma_mbx_dealloc_pd_range() 1578 struct ocrdma_create_ah_tbl *cmd; ocrdma_mbx_create_ah_tbl() local 1584 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_CREATE_AH_TBL, sizeof(*cmd)); ocrdma_mbx_create_ah_tbl() 1585 if (!cmd) ocrdma_mbx_create_ah_tbl() 1592 cmd->ah_conf = (OCRDMA_AH_TBL_PAGES << ocrdma_mbx_create_ah_tbl() 1601 cmd->ah_conf |= (i << OCRDMA_CREATE_AH_PAGE_SIZE_SHIFT) & ocrdma_mbx_create_ah_tbl() 1605 cmd->ah_conf |= (sizeof(struct ocrdma_av) << ocrdma_mbx_create_ah_tbl() 1629 cmd->tbl_addr[0].lo = (u32)(dev->av_tbl.pbl.pa & 0xFFFFFFFF); ocrdma_mbx_create_ah_tbl() 1630 cmd->tbl_addr[0].hi = (u32)upper_32_bits(dev->av_tbl.pbl.pa); ocrdma_mbx_create_ah_tbl() 1631 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_create_ah_tbl() 1634 rsp = (struct ocrdma_create_ah_tbl_rsp *)cmd; ocrdma_mbx_create_ah_tbl() 1636 kfree(cmd); ocrdma_mbx_create_ah_tbl() 1649 kfree(cmd); ocrdma_mbx_create_ah_tbl() 1655 struct ocrdma_delete_ah_tbl *cmd; ocrdma_mbx_delete_ah_tbl() local 1661 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_DELETE_AH_TBL, sizeof(*cmd)); ocrdma_mbx_delete_ah_tbl() 1662 if (!cmd) ocrdma_mbx_delete_ah_tbl() 1664 cmd->ahid = dev->av_tbl.ahid; ocrdma_mbx_delete_ah_tbl() 1666 ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_delete_ah_tbl() 1672 kfree(cmd); ocrdma_mbx_delete_ah_tbl() 1719 struct ocrdma_create_cq *cmd; ocrdma_mbx_create_cq() local 1745 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_CREATE_CQ, sizeof(*cmd)); ocrdma_mbx_create_cq() 1746 if (!cmd) ocrdma_mbx_create_cq() 1748 ocrdma_init_mch(&cmd->cmd.req, OCRDMA_CMD_CREATE_CQ, ocrdma_mbx_create_cq() 1749 OCRDMA_SUBSYS_COMMON, sizeof(*cmd)); ocrdma_mbx_create_cq() 1757 cmd->cmd.pgsz_pgcnt = (page_size / OCRDMA_MIN_Q_PAGE_SIZE) << ocrdma_mbx_create_cq() 1759 cmd->cmd.pgsz_pgcnt |= hw_pages; ocrdma_mbx_create_cq() 1760 cmd->cmd.ev_cnt_flags = OCRDMA_CREATE_CQ_DEF_FLAGS; ocrdma_mbx_create_cq() 1763 cmd->cmd.req.rsvd_version = OCRDMA_CREATE_CQ_VER3; ocrdma_mbx_create_cq() 1768 cmd->cmd.ev_cnt_flags |= (0x3 << OCRDMA_CREATE_CQ_CNT_SHIFT); ocrdma_mbx_create_cq() 1784 cmd->cmd.ev_cnt_flags |= (count << OCRDMA_CREATE_CQ_CNT_SHIFT); ocrdma_mbx_create_cq() 1787 cmd->cmd.eqn = cq->eqn; ocrdma_mbx_create_cq() 1790 cmd->cmd.pgsz_pgcnt |= OCRDMA_CREATE_CQ_DPP << ocrdma_mbx_create_cq() 1793 cmd->cmd.pdid_cqecnt = (cq->len / cqe_size); ocrdma_mbx_create_cq() 1795 cmd->cmd.pdid_cqecnt = (cq->len / cqe_size) - 1; ocrdma_mbx_create_cq() 1796 cmd->cmd.ev_cnt_flags |= OCRDMA_CREATE_CQ_FLAGS_AUTO_VALID; ocrdma_mbx_create_cq() 1801 cmd->cmd.pdid_cqecnt |= (pd_id << ocrdma_mbx_create_cq() 1803 ocrdma_build_q_pages(&cmd->cmd.pa[0], hw_pages, cq->pa, page_size); ocrdma_mbx_create_cq() 1804 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_create_cq() 1808 rsp = (struct ocrdma_create_cq_rsp *)cmd; ocrdma_mbx_create_cq() 1810 kfree(cmd); ocrdma_mbx_create_cq() 1816 kfree(cmd); ocrdma_mbx_create_cq() 1823 struct ocrdma_destroy_cq *cmd; ocrdma_mbx_destroy_cq() local 1825 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_DELETE_CQ, sizeof(*cmd)); ocrdma_mbx_destroy_cq() 1826 if (!cmd) ocrdma_mbx_destroy_cq() 1828 ocrdma_init_mch(&cmd->req, OCRDMA_CMD_DELETE_CQ, ocrdma_mbx_destroy_cq() 1829 OCRDMA_SUBSYS_COMMON, sizeof(*cmd)); ocrdma_mbx_destroy_cq() 1831 cmd->bypass_flush_qid |= ocrdma_mbx_destroy_cq() 1835 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_destroy_cq() 1838 kfree(cmd); ocrdma_mbx_destroy_cq() 1846 struct ocrdma_alloc_lkey *cmd; ocrdma_mbx_alloc_lkey() local 1849 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_ALLOC_LKEY, sizeof(*cmd)); ocrdma_mbx_alloc_lkey() 1850 if (!cmd) ocrdma_mbx_alloc_lkey() 1852 cmd->pdid = pdid; ocrdma_mbx_alloc_lkey() 1853 cmd->pbl_sz_flags |= addr_check; ocrdma_mbx_alloc_lkey() 1854 cmd->pbl_sz_flags |= (hwmr->fr_mr << OCRDMA_ALLOC_LKEY_FMR_SHIFT); ocrdma_mbx_alloc_lkey() 1855 cmd->pbl_sz_flags |= ocrdma_mbx_alloc_lkey() 1857 cmd->pbl_sz_flags |= ocrdma_mbx_alloc_lkey() 1859 cmd->pbl_sz_flags |= ocrdma_mbx_alloc_lkey() 1861 cmd->pbl_sz_flags |= ocrdma_mbx_alloc_lkey() 1863 cmd->pbl_sz_flags |= ocrdma_mbx_alloc_lkey() 1866 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_alloc_lkey() 1869 rsp = (struct ocrdma_alloc_lkey_rsp *)cmd; ocrdma_mbx_alloc_lkey() 1872 kfree(cmd); ocrdma_mbx_alloc_lkey() 1879 struct ocrdma_dealloc_lkey *cmd; ocrdma_mbx_dealloc_lkey() local 1881 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_DEALLOC_LKEY, sizeof(*cmd)); ocrdma_mbx_dealloc_lkey() 1882 if (!cmd) ocrdma_mbx_dealloc_lkey() 1884 cmd->lkey = lkey; ocrdma_mbx_dealloc_lkey() 1885 cmd->rsvd_frmr = fr_mr ? 1 : 0; ocrdma_mbx_dealloc_lkey() 1886 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_dealloc_lkey() 1890 kfree(cmd); ocrdma_mbx_dealloc_lkey() 1899 struct ocrdma_reg_nsmr *cmd; ocrdma_mbx_reg_mr() local 1902 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_REGISTER_NSMR, sizeof(*cmd)); ocrdma_mbx_reg_mr() 1903 if (!cmd) ocrdma_mbx_reg_mr() 1905 cmd->num_pbl_pdid = ocrdma_mbx_reg_mr() 1907 cmd->fr_mr = hwmr->fr_mr; ocrdma_mbx_reg_mr() 1909 cmd->flags_hpage_pbe_sz |= (hwmr->remote_wr << ocrdma_mbx_reg_mr() 1911 cmd->flags_hpage_pbe_sz |= (hwmr->remote_rd << ocrdma_mbx_reg_mr() 1913 cmd->flags_hpage_pbe_sz |= (hwmr->local_wr << ocrdma_mbx_reg_mr() 1915 cmd->flags_hpage_pbe_sz |= (hwmr->remote_atomic << ocrdma_mbx_reg_mr() 1917 cmd->flags_hpage_pbe_sz |= (hwmr->mw_bind << ocrdma_mbx_reg_mr() 1919 cmd->flags_hpage_pbe_sz |= (last << OCRDMA_REG_NSMR_LAST_SHIFT); ocrdma_mbx_reg_mr() 1921 cmd->flags_hpage_pbe_sz |= (hwmr->pbe_size / OCRDMA_MIN_HPAGE_SIZE); ocrdma_mbx_reg_mr() 1922 cmd->flags_hpage_pbe_sz |= (hwmr->pbl_size / OCRDMA_MIN_HPAGE_SIZE) << ocrdma_mbx_reg_mr() 1924 cmd->totlen_low = hwmr->len; ocrdma_mbx_reg_mr() 1925 cmd->totlen_high = upper_32_bits(hwmr->len); ocrdma_mbx_reg_mr() 1926 cmd->fbo_low = (u32) (hwmr->fbo & 0xffffffff); ocrdma_mbx_reg_mr() 1927 cmd->fbo_high = (u32) upper_32_bits(hwmr->fbo); ocrdma_mbx_reg_mr() 1928 cmd->va_loaddr = (u32) hwmr->va; ocrdma_mbx_reg_mr() 1929 cmd->va_hiaddr = (u32) upper_32_bits(hwmr->va); ocrdma_mbx_reg_mr() 1932 cmd->pbl[i].lo = (u32) (hwmr->pbl_table[i].pa & 0xffffffff); ocrdma_mbx_reg_mr() 1933 cmd->pbl[i].hi = upper_32_bits(hwmr->pbl_table[i].pa); ocrdma_mbx_reg_mr() 1935 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_reg_mr() 1938 rsp = (struct ocrdma_reg_nsmr_rsp *)cmd; ocrdma_mbx_reg_mr() 1941 kfree(cmd); ocrdma_mbx_reg_mr() 1951 struct ocrdma_reg_nsmr_cont *cmd; ocrdma_mbx_reg_mr_cont() local 1953 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_REGISTER_NSMR_CONT, sizeof(*cmd)); ocrdma_mbx_reg_mr_cont() 1954 if (!cmd) ocrdma_mbx_reg_mr_cont() 1956 cmd->lrkey = hwmr->lkey; ocrdma_mbx_reg_mr_cont() 1957 cmd->num_pbl_offset = (pbl_cnt << OCRDMA_REG_NSMR_CONT_NUM_PBL_SHIFT) | ocrdma_mbx_reg_mr_cont() 1959 cmd->last = last << OCRDMA_REG_NSMR_CONT_LAST_SHIFT; ocrdma_mbx_reg_mr_cont() 1962 cmd->pbl[i].lo = ocrdma_mbx_reg_mr_cont() 1964 cmd->pbl[i].hi = ocrdma_mbx_reg_mr_cont() 1967 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_reg_mr_cont() 1971 kfree(cmd); ocrdma_mbx_reg_mr_cont() 2119 static int ocrdma_set_create_qp_sq_cmd(struct ocrdma_create_qp_req *cmd, ocrdma_set_create_qp_sq_cmd() argument 2153 ocrdma_build_q_pages(&cmd->wq_addr[0], hw_pages, pa, hw_page_size); ocrdma_set_create_qp_sq_cmd() 2155 cmd->type_pgsz_pdn |= (ilog2(hw_page_size / OCRDMA_MIN_Q_PAGE_SIZE) ocrdma_set_create_qp_sq_cmd() 2157 cmd->num_wq_rq_pages |= (hw_pages << ocrdma_set_create_qp_sq_cmd() 2160 cmd->max_sge_send_write |= (max_sges << ocrdma_set_create_qp_sq_cmd() 2163 cmd->max_sge_send_write |= (max_sges << ocrdma_set_create_qp_sq_cmd() 2166 cmd->max_wqe_rqe |= (ilog2(qp->sq.max_cnt) << ocrdma_set_create_qp_sq_cmd() 2169 cmd->wqe_rqe_size |= (dev->attr.wqe_size << ocrdma_set_create_qp_sq_cmd() 2175 static int ocrdma_set_create_qp_rq_cmd(struct ocrdma_create_qp_req *cmd, ocrdma_set_create_qp_rq_cmd() argument 2205 ocrdma_build_q_pages(&cmd->rq_addr[0], hw_pages, pa, hw_page_size); ocrdma_set_create_qp_rq_cmd() 2206 cmd->type_pgsz_pdn |= (ilog2(hw_page_size / OCRDMA_MIN_Q_PAGE_SIZE) << ocrdma_set_create_qp_rq_cmd() 2208 cmd->num_wq_rq_pages |= ocrdma_set_create_qp_rq_cmd() 2211 cmd->max_sge_recv_flags |= (attrs->cap.max_recv_sge << ocrdma_set_create_qp_rq_cmd() 2214 cmd->max_wqe_rqe |= (ilog2(qp->rq.max_cnt) << ocrdma_set_create_qp_rq_cmd() 2217 cmd->wqe_rqe_size |= (dev->attr.rqe_size << ocrdma_set_create_qp_rq_cmd() 2223 static void ocrdma_set_create_qp_dpp_cmd(struct ocrdma_create_qp_req *cmd, ocrdma_set_create_qp_dpp_cmd() argument 2230 cmd->max_sge_recv_flags |= OCRDMA_CREATE_QP_REQ_ENABLE_DPP_MASK; ocrdma_set_create_qp_dpp_cmd() 2233 cmd->max_sge_recv_flags |= OCRDMA_CREATE_QP_REQ_ENABLE_DPP_MASK; ocrdma_set_create_qp_dpp_cmd() 2234 cmd->dpp_credits_cqid = dpp_cq_id; ocrdma_set_create_qp_dpp_cmd() 2235 cmd->dpp_credits_cqid |= OCRDMA_CREATE_QP_REQ_DPP_CREDIT_LIMIT << ocrdma_set_create_qp_dpp_cmd() 2239 static int ocrdma_set_create_qp_ird_cmd(struct ocrdma_create_qp_req *cmd, ocrdma_set_create_qp_ird_cmd() argument 2259 ocrdma_build_q_pages(&cmd->ird_addr[0], dev->attr.num_ird_pages, ocrdma_set_create_qp_ird_cmd() 2318 struct ocrdma_create_qp_req *cmd; ocrdma_mbx_create_qp() local 2336 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_CREATE_QP, sizeof(*cmd)); ocrdma_mbx_create_qp() 2337 if (!cmd) ocrdma_mbx_create_qp() 2339 cmd->type_pgsz_pdn |= (qptype << OCRDMA_CREATE_QP_REQ_QPT_SHIFT) & ocrdma_mbx_create_qp() 2341 status = ocrdma_set_create_qp_sq_cmd(cmd, attrs, qp); ocrdma_mbx_create_qp() 2347 cmd->max_sge_recv_flags |= OCRDMA_CREATE_QP_REQ_USE_SRQ_MASK; ocrdma_mbx_create_qp() 2348 cmd->rq_addr[0].lo = srq->id; ocrdma_mbx_create_qp() 2351 status = ocrdma_set_create_qp_rq_cmd(cmd, attrs, qp); ocrdma_mbx_create_qp() 2356 status = ocrdma_set_create_qp_ird_cmd(cmd, qp); ocrdma_mbx_create_qp() 2360 cmd->type_pgsz_pdn |= (pd->id << OCRDMA_CREATE_QP_REQ_PD_ID_SHIFT) & ocrdma_mbx_create_qp() 2365 cmd->max_sge_recv_flags |= flags; ocrdma_mbx_create_qp() 2366 cmd->max_ord_ird |= (dev->attr.max_ord_per_qp << ocrdma_mbx_create_qp() 2369 cmd->max_ord_ird |= (dev->attr.max_ird_per_qp << ocrdma_mbx_create_qp() 2373 cmd->wq_rq_cqid |= (cq->id << OCRDMA_CREATE_QP_REQ_WQ_CQID_SHIFT) & ocrdma_mbx_create_qp() 2377 cmd->wq_rq_cqid |= (cq->id << OCRDMA_CREATE_QP_REQ_RQ_CQID_SHIFT) & ocrdma_mbx_create_qp() 2383 ocrdma_set_create_qp_dpp_cmd(cmd, pd, qp, enable_dpp_cq, ocrdma_mbx_create_qp() 2387 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_create_qp() 2390 rsp = (struct ocrdma_create_qp_rsp *)cmd; ocrdma_mbx_create_qp() 2393 kfree(cmd); ocrdma_mbx_create_qp() 2403 kfree(cmd); ocrdma_mbx_create_qp() 2411 struct ocrdma_query_qp *cmd; ocrdma_mbx_query_qp() local 2414 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_QUERY_QP, sizeof(*rsp)); ocrdma_mbx_query_qp() 2415 if (!cmd) ocrdma_mbx_query_qp() 2417 cmd->qp_id = qp->id; ocrdma_mbx_query_qp() 2418 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_query_qp() 2421 rsp = (struct ocrdma_query_qp_rsp *)cmd; ocrdma_mbx_query_qp() 2424 kfree(cmd); ocrdma_mbx_query_qp() 2429 struct ocrdma_modify_qp *cmd, ocrdma_set_av_params() 2444 cmd->params.tclass_sq_psn |= ocrdma_set_av_params() 2446 cmd->params.rnt_rc_sl_fl |= ocrdma_set_av_params() 2448 cmd->params.rnt_rc_sl_fl |= (ah_attr->sl << OCRDMA_QP_PARAMS_SL_SHIFT); ocrdma_set_av_params() 2449 cmd->params.hop_lmt_rq_psn |= ocrdma_set_av_params() 2451 cmd->flags |= OCRDMA_QP_PARA_FLOW_LBL_VALID; ocrdma_set_av_params() 2452 memcpy(&cmd->params.dgid[0], &ah_attr->grh.dgid.raw[0], ocrdma_set_av_params() 2453 sizeof(cmd->params.dgid)); ocrdma_set_av_params() 2464 memcpy(&cmd->params.sgid[0], &sgid.raw[0], sizeof(cmd->params.sgid)); ocrdma_set_av_params() 2468 cmd->params.dmac_b0_to_b3 = mac_addr[0] | (mac_addr[1] << 8) | ocrdma_set_av_params() 2471 ocrdma_cpu_to_le32(&cmd->params.dgid[0], sizeof(cmd->params.dgid)); ocrdma_set_av_params() 2472 ocrdma_cpu_to_le32(&cmd->params.sgid[0], sizeof(cmd->params.sgid)); ocrdma_set_av_params() 2473 cmd->params.vlan_dmac_b4_to_b5 = mac_addr[4] | (mac_addr[5] << 8); ocrdma_set_av_params() 2485 cmd->params.vlan_dmac_b4_to_b5 |= ocrdma_set_av_params() 2487 cmd->flags |= OCRDMA_QP_PARA_VLAN_EN_VALID; ocrdma_set_av_params() 2488 cmd->params.rnt_rc_sl_fl |= ocrdma_set_av_params() 2496 struct ocrdma_modify_qp *cmd, ocrdma_set_qp_params() 2503 cmd->params.path_mtu_pkey_indx |= (attrs->pkey_index & ocrdma_set_qp_params() 2505 cmd->flags |= OCRDMA_QP_PARA_PKEY_VALID; ocrdma_set_qp_params() 2509 cmd->params.qkey = attrs->qkey; ocrdma_set_qp_params() 2510 cmd->flags |= OCRDMA_QP_PARA_QKEY_VALID; ocrdma_set_qp_params() 2513 status = ocrdma_set_av_params(qp, cmd, attrs, attr_mask); ocrdma_set_qp_params() 2518 cmd->params.dmac_b0_to_b3 = dev->nic_info.mac_addr[0] | ocrdma_set_qp_params() 2522 cmd->params.vlan_dmac_b4_to_b5 = dev->nic_info.mac_addr[4] | ocrdma_set_qp_params() 2527 cmd->params.max_sge_recv_flags |= ocrdma_set_qp_params() 2529 cmd->flags |= OCRDMA_QP_PARA_DST_QPN_VALID; ocrdma_set_qp_params() 2532 cmd->params.ack_to_rnr_rtc_dest_qpn |= (attrs->dest_qp_num & ocrdma_set_qp_params() 2534 cmd->flags |= OCRDMA_QP_PARA_DST_QPN_VALID; ocrdma_set_qp_params() 2544 cmd->params.path_mtu_pkey_indx |= ocrdma_set_qp_params() 2548 cmd->flags |= OCRDMA_QP_PARA_PMTU_VALID; ocrdma_set_qp_params() 2551 cmd->params.ack_to_rnr_rtc_dest_qpn |= attrs->timeout << ocrdma_set_qp_params() 2553 cmd->flags |= OCRDMA_QP_PARA_ACK_TO_VALID; ocrdma_set_qp_params() 2556 cmd->params.rnt_rc_sl_fl |= (attrs->retry_cnt << ocrdma_set_qp_params() 2559 cmd->flags |= OCRDMA_QP_PARA_RETRY_CNT_VALID; ocrdma_set_qp_params() 2562 cmd->params.rnt_rc_sl_fl |= (attrs->min_rnr_timer << ocrdma_set_qp_params() 2565 cmd->flags |= OCRDMA_QP_PARA_RNT_VALID; ocrdma_set_qp_params() 2568 cmd->params.ack_to_rnr_rtc_dest_qpn |= (attrs->rnr_retry << ocrdma_set_qp_params() 2571 cmd->flags |= OCRDMA_QP_PARA_RRC_VALID; ocrdma_set_qp_params() 2574 cmd->params.tclass_sq_psn |= (attrs->sq_psn & 0x00ffffff); ocrdma_set_qp_params() 2575 cmd->flags |= OCRDMA_QP_PARA_SQPSN_VALID; ocrdma_set_qp_params() 2578 cmd->params.hop_lmt_rq_psn |= (attrs->rq_psn & 0x00ffffff); ocrdma_set_qp_params() 2579 cmd->flags |= OCRDMA_QP_PARA_RQPSN_VALID; ocrdma_set_qp_params() 2587 cmd->flags |= OCRDMA_QP_PARA_MAX_ORD_VALID; ocrdma_set_qp_params() 2595 cmd->flags |= OCRDMA_QP_PARA_MAX_IRD_VALID; ocrdma_set_qp_params() 2597 cmd->params.max_ord_ird = (qp->max_ord << ocrdma_set_qp_params() 2608 struct ocrdma_modify_qp *cmd; ocrdma_mbx_modify_qp() local 2610 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_MODIFY_QP, sizeof(*cmd)); ocrdma_mbx_modify_qp() 2611 if (!cmd) ocrdma_mbx_modify_qp() 2614 cmd->params.id = qp->id; ocrdma_mbx_modify_qp() 2615 cmd->flags = 0; ocrdma_mbx_modify_qp() 2617 cmd->params.max_sge_recv_flags |= ocrdma_mbx_modify_qp() 2621 cmd->flags |= OCRDMA_QP_PARA_QPS_VALID; ocrdma_mbx_modify_qp() 2623 cmd->params.max_sge_recv_flags |= ocrdma_mbx_modify_qp() 2628 status = ocrdma_set_qp_params(qp, cmd, attrs, attr_mask); ocrdma_mbx_modify_qp() 2631 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_modify_qp() 2636 kfree(cmd); ocrdma_mbx_modify_qp() 2643 struct ocrdma_destroy_qp *cmd; ocrdma_mbx_destroy_qp() local 2646 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_DELETE_QP, sizeof(*cmd)); ocrdma_mbx_destroy_qp() 2647 if (!cmd) ocrdma_mbx_destroy_qp() 2649 cmd->qp_id = qp->id; ocrdma_mbx_destroy_qp() 2650 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_destroy_qp() 2655 kfree(cmd); ocrdma_mbx_destroy_qp() 2673 struct ocrdma_create_srq *cmd; ocrdma_mbx_create_srq() local 2678 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_CREATE_SRQ, sizeof(*cmd)); ocrdma_mbx_create_srq() 2679 if (!cmd) ocrdma_mbx_create_srq() 2682 cmd->pgsz_pdid = pd->id & OCRDMA_CREATE_SRQ_PD_ID_MASK; ocrdma_mbx_create_srq() 2699 ocrdma_build_q_pages(&cmd->rq_addr[0], hw_pages, pa, hw_page_size); ocrdma_mbx_create_srq() 2706 cmd->max_sge_rqe = ilog2(max_rqe_allocated); ocrdma_mbx_create_srq() 2707 cmd->max_sge_rqe |= srq_attr->attr.max_sge << ocrdma_mbx_create_srq() 2710 cmd->pgsz_pdid |= (ilog2(hw_page_size / OCRDMA_MIN_Q_PAGE_SIZE) ocrdma_mbx_create_srq() 2712 cmd->pages_rqe_sz |= (dev->attr.rqe_size ocrdma_mbx_create_srq() 2715 cmd->pages_rqe_sz |= hw_pages << OCRDMA_CREATE_SRQ_NUM_RQ_PAGES_SHIFT; ocrdma_mbx_create_srq() 2717 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_create_srq() 2720 rsp = (struct ocrdma_create_srq_rsp *)cmd; ocrdma_mbx_create_srq() 2736 kfree(cmd); ocrdma_mbx_create_srq() 2743 struct ocrdma_modify_srq *cmd; ocrdma_mbx_modify_srq() local 2747 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_MODIFY_SRQ, sizeof(*cmd)); ocrdma_mbx_modify_srq() 2748 if (!cmd) ocrdma_mbx_modify_srq() 2750 cmd->id = srq->id; ocrdma_mbx_modify_srq() 2751 cmd->limit_max_rqe |= srq_attr->srq_limit << ocrdma_mbx_modify_srq() 2753 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_modify_srq() 2754 kfree(cmd); ocrdma_mbx_modify_srq() 2761 struct ocrdma_query_srq *cmd; ocrdma_mbx_query_srq() local 2764 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_QUERY_SRQ, sizeof(*cmd)); ocrdma_mbx_query_srq() 2765 if (!cmd) ocrdma_mbx_query_srq() 2767 cmd->id = srq->rq.dbid; ocrdma_mbx_query_srq() 2768 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_query_srq() 2771 (struct ocrdma_query_srq_rsp *)cmd; ocrdma_mbx_query_srq() 2780 kfree(cmd); ocrdma_mbx_query_srq() 2787 struct ocrdma_destroy_srq *cmd; ocrdma_mbx_destroy_srq() local 2789 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_DELETE_SRQ, sizeof(*cmd)); ocrdma_mbx_destroy_srq() 2790 if (!cmd) ocrdma_mbx_destroy_srq() 2792 cmd->id = srq->id; ocrdma_mbx_destroy_srq() 2793 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_destroy_srq() 2797 kfree(cmd); ocrdma_mbx_destroy_srq() 2806 struct ocrdma_mqe cmd; ocrdma_mbx_get_dcbx_config() local 2811 struct ocrdma_mqe_sge *mqe_sge = cmd.u.nonemb_req.sge; ocrdma_mbx_get_dcbx_config() 2813 memset(&cmd, 0, sizeof(struct ocrdma_mqe)); ocrdma_mbx_get_dcbx_config() 2814 cmd.hdr.pyld_len = max_t (u32, sizeof(struct ocrdma_get_dcbx_cfg_rsp), ocrdma_mbx_get_dcbx_config() 2816 req = dma_alloc_coherent(&pdev->dev, cmd.hdr.pyld_len, &pa, GFP_KERNEL); ocrdma_mbx_get_dcbx_config() 2822 cmd.hdr.spcl_sge_cnt_emb |= (1 << OCRDMA_MQE_HDR_SGE_CNT_SHIFT) & ocrdma_mbx_get_dcbx_config() 2826 mqe_sge->len = cmd.hdr.pyld_len; ocrdma_mbx_get_dcbx_config() 2830 OCRDMA_SUBSYS_DCBX, cmd.hdr.pyld_len); ocrdma_mbx_get_dcbx_config() 2833 status = ocrdma_mbx_cmd(dev, &cmd); ocrdma_mbx_get_dcbx_config() 2842 dma_free_coherent(&pdev->dev, cmd.hdr.pyld_len, req, pa); ocrdma_mbx_get_dcbx_config() 3047 struct ocrdma_modify_eqd_req *cmd; ocrdma_mbx_modify_eqd() local 3049 cmd = ocrdma_init_emb_mqe(OCRDMA_CMD_MODIFY_EQ_DELAY, sizeof(*cmd)); ocrdma_mbx_modify_eqd() 3050 if (!cmd) ocrdma_mbx_modify_eqd() 3053 ocrdma_init_mch(&cmd->cmd.req, OCRDMA_CMD_MODIFY_EQ_DELAY, ocrdma_mbx_modify_eqd() 3054 OCRDMA_SUBSYS_COMMON, sizeof(*cmd)); ocrdma_mbx_modify_eqd() 3056 cmd->cmd.num_eq = num; ocrdma_mbx_modify_eqd() 3058 cmd->cmd.set_eqd[i].eq_id = eq[i].q.id; ocrdma_mbx_modify_eqd() 3059 cmd->cmd.set_eqd[i].phase = 0; ocrdma_mbx_modify_eqd() 3060 cmd->cmd.set_eqd[i].delay_multiplier = ocrdma_mbx_modify_eqd() 3063 status = ocrdma_mbx_cmd(dev, (struct ocrdma_mqe *)cmd); ocrdma_mbx_modify_eqd() 3067 kfree(cmd); ocrdma_mbx_modify_eqd() 2428 ocrdma_set_av_params(struct ocrdma_qp *qp, struct ocrdma_modify_qp *cmd, struct ib_qp_attr *attrs, int attr_mask) ocrdma_set_av_params() argument 2495 ocrdma_set_qp_params(struct ocrdma_qp *qp, struct ocrdma_modify_qp *cmd, struct ib_qp_attr *attrs, int attr_mask) ocrdma_set_qp_params() argument
|
/linux-4.1.27/drivers/isdn/sc/ |
H A D | event.c | 43 isdn_ctrl cmd; indicate_status() local 54 memcpy(&cmd.parm.length, Data, sizeof(cmd.parm.length)); indicate_status() 57 memcpy(&cmd.parm.setup, Data, sizeof(cmd.parm.setup)); indicate_status() 60 strlcpy(cmd.parm.num, Data, sizeof(cmd.parm.num)); indicate_status() 64 cmd.command = event; indicate_status() 65 cmd.driver = sc_adapter[card]->driverId; indicate_status() 66 cmd.arg = Channel; indicate_status() 67 return sc_adapter[card]->card->statcallb(&cmd); indicate_status()
|
/linux-4.1.27/sound/pci/hda/ |
H A D | hda_intel_trace.h | 15 TP_PROTO(struct azx *chip, struct azx_dev *dev, int cmd), 17 TP_ARGS(chip, dev, cmd), 22 __field( int, cmd ) 28 __entry->cmd = cmd; 31 TP_printk("[%d:%d] cmd=%d", __entry->card, __entry->idx, __entry->cmd)
|
/linux-4.1.27/drivers/net/ethernet/qlogic/qlcnic/ |
H A D | qlcnic_sriov_pf.c | 28 u32 cmd; member in struct:qlcnic_sriov_fw_cmd_handler 36 struct qlcnic_cmd_args cmd; qlcnic_sriov_pf_set_vport_info() local 39 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_SET_NIC_INFO)) qlcnic_sriov_pf_set_vport_info() 42 cmd.req.arg[1] = (vport_id << 16) | 0x1; qlcnic_sriov_pf_set_vport_info() 43 cmd.req.arg[2] = npar_info->bit_offsets; qlcnic_sriov_pf_set_vport_info() 44 cmd.req.arg[2] |= npar_info->min_tx_bw << 16; qlcnic_sriov_pf_set_vport_info() 45 cmd.req.arg[3] = npar_info->max_tx_bw | (npar_info->max_tx_ques << 16); qlcnic_sriov_pf_set_vport_info() 46 cmd.req.arg[4] = npar_info->max_tx_mac_filters; qlcnic_sriov_pf_set_vport_info() 47 cmd.req.arg[4] |= npar_info->max_rx_mcast_mac_filters << 16; qlcnic_sriov_pf_set_vport_info() 48 cmd.req.arg[5] = npar_info->max_rx_ucast_mac_filters | qlcnic_sriov_pf_set_vport_info() 50 cmd.req.arg[6] = npar_info->max_rx_lro_flow | qlcnic_sriov_pf_set_vport_info() 52 cmd.req.arg[7] = npar_info->max_rx_buf_rings | qlcnic_sriov_pf_set_vport_info() 54 cmd.req.arg[8] = npar_info->max_tx_vlan_keys; qlcnic_sriov_pf_set_vport_info() 55 cmd.req.arg[8] |= npar_info->max_local_ipv6_addrs << 16; qlcnic_sriov_pf_set_vport_info() 56 cmd.req.arg[9] = npar_info->max_remote_ipv6_addrs; qlcnic_sriov_pf_set_vport_info() 58 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_sriov_pf_set_vport_info() 63 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_pf_set_vport_info() 178 struct qlcnic_cmd_args cmd; qlcnic_sriov_get_pf_info() local 180 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_NIC_INFO)) qlcnic_sriov_get_pf_info() 183 cmd.req.arg[1] = 0x2; qlcnic_sriov_get_pf_info() 184 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_sriov_get_pf_info() 191 npar_info->total_pf = cmd.rsp.arg[2] & 0xff; qlcnic_sriov_get_pf_info() 192 npar_info->total_rss_engines = (cmd.rsp.arg[2] >> 8) & 0xff; qlcnic_sriov_get_pf_info() 193 npar_info->max_vports = MSW(cmd.rsp.arg[2]); qlcnic_sriov_get_pf_info() 194 npar_info->max_tx_ques = LSW(cmd.rsp.arg[3]); qlcnic_sriov_get_pf_info() 195 npar_info->max_tx_mac_filters = MSW(cmd.rsp.arg[3]); qlcnic_sriov_get_pf_info() 196 npar_info->max_rx_mcast_mac_filters = LSW(cmd.rsp.arg[4]); qlcnic_sriov_get_pf_info() 197 npar_info->max_rx_ucast_mac_filters = MSW(cmd.rsp.arg[4]); qlcnic_sriov_get_pf_info() 198 npar_info->max_rx_ip_addr = LSW(cmd.rsp.arg[5]); qlcnic_sriov_get_pf_info() 199 npar_info->max_rx_lro_flow = MSW(cmd.rsp.arg[5]); qlcnic_sriov_get_pf_info() 200 npar_info->max_rx_status_rings = LSW(cmd.rsp.arg[6]); qlcnic_sriov_get_pf_info() 201 npar_info->max_rx_buf_rings = MSW(cmd.rsp.arg[6]); qlcnic_sriov_get_pf_info() 202 npar_info->max_rx_ques = LSW(cmd.rsp.arg[7]); qlcnic_sriov_get_pf_info() 203 npar_info->max_tx_vlan_keys = MSW(cmd.rsp.arg[7]); qlcnic_sriov_get_pf_info() 204 npar_info->max_local_ipv6_addrs = LSW(cmd.rsp.arg[8]); qlcnic_sriov_get_pf_info() 205 npar_info->max_remote_ipv6_addrs = MSW(cmd.rsp.arg[8]); qlcnic_sriov_get_pf_info() 228 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_get_pf_info() 291 struct qlcnic_cmd_args cmd; qlcnic_sriov_pf_config_vport() local 295 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_CONFIG_VPORT)) qlcnic_sriov_pf_config_vport() 299 cmd.req.arg[3] = func << 8; qlcnic_sriov_pf_config_vport() 306 cmd.req.arg[3] = ((vpid & 0xffff) << 8) | 1; qlcnic_sriov_pf_config_vport() 309 ret = qlcnic_issue_cmd(adapter, &cmd); qlcnic_sriov_pf_config_vport() 318 vpid = cmd.rsp.arg[2] & 0xffff; qlcnic_sriov_pf_config_vport() 325 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_pf_config_vport() 332 struct qlcnic_cmd_args cmd; qlcnic_sriov_pf_cfg_vlan_filtering() local 335 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_SET_NIC_INFO); qlcnic_sriov_pf_cfg_vlan_filtering() 339 cmd.req.arg[1] = 0x4; qlcnic_sriov_pf_cfg_vlan_filtering() 342 cmd.req.arg[1] |= BIT_16; qlcnic_sriov_pf_cfg_vlan_filtering() 344 cmd.req.arg[1] |= QLC_SRIOV_ALLOW_VLAN0; qlcnic_sriov_pf_cfg_vlan_filtering() 349 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_sriov_pf_cfg_vlan_filtering() 354 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_pf_cfg_vlan_filtering() 361 struct qlcnic_cmd_args cmd; qlcnic_sriov_pf_cfg_flood() local 364 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_SET_NIC_INFO); qlcnic_sriov_pf_cfg_flood() 368 cmd.req.arg[1] = QLC_FLOOD_MODE | QLC_VF_FLOOD_BIT; qlcnic_sriov_pf_cfg_flood() 370 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_sriov_pf_cfg_flood() 376 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_pf_cfg_flood() 383 struct qlcnic_cmd_args cmd; qlcnic_sriov_pf_cfg_eswitch() local 386 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_TOGGLE_ESWITCH)) qlcnic_sriov_pf_cfg_eswitch() 389 cmd.req.arg[0] |= (3 << 29); qlcnic_sriov_pf_cfg_eswitch() 390 cmd.req.arg[1] = ((func & 0xf) << 2) | BIT_6 | BIT_1; qlcnic_sriov_pf_cfg_eswitch() 392 cmd.req.arg[1] |= BIT_0; qlcnic_sriov_pf_cfg_eswitch() 394 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_sriov_pf_cfg_eswitch() 402 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_pf_cfg_eswitch() 684 struct qlcnic_cmd_args cmd; qlcnic_sriov_set_vf_acl() local 694 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_SET_NIC_INFO); qlcnic_sriov_set_vf_acl() 698 cmd.req.arg[1] = 0x3 | func << 16; qlcnic_sriov_set_vf_acl() 701 cmd.req.arg[2] |= BIT_1 | BIT_3 | BIT_8; qlcnic_sriov_set_vf_acl() 702 cmd.req.arg[4] = mac[5] | mac[4] << 8 | mac[3] << 16 | qlcnic_sriov_set_vf_acl() 704 cmd.req.arg[5] = mac[1] | mac[0] << 8; qlcnic_sriov_set_vf_acl() 708 cmd.req.arg[2] |= BIT_6; qlcnic_sriov_set_vf_acl() 709 cmd.req.arg[3] |= vp->pvid << 8; qlcnic_sriov_set_vf_acl() 712 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_sriov_set_vf_acl() 717 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_set_vf_acl() 739 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_channel_cfg_cmd() 772 cmd->rsp.arg[0] |= (1 << 25); qlcnic_sriov_pf_channel_cfg_cmd() 782 cmd->rsp.arg[0] |= (2 << 25); qlcnic_sriov_pf_channel_cfg_cmd() 790 struct qlcnic_cmd_args *cmd; qlcnic_sriov_cfg_vf_def_mac() local 800 cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC); qlcnic_sriov_cfg_vf_def_mac() 801 if (!cmd) qlcnic_sriov_cfg_vf_def_mac() 804 err = qlcnic_alloc_mbx_args(cmd, adapter, QLCNIC_CMD_CONFIG_MAC_VLAN); qlcnic_sriov_cfg_vf_def_mac() 808 cmd->type = QLC_83XX_MBX_CMD_NO_WAIT; qlcnic_sriov_cfg_vf_def_mac() 819 cmd->req.arg[1] = op | (1 << 8) | (3 << 6); qlcnic_sriov_cfg_vf_def_mac() 820 cmd->req.arg[1] |= ((vpid & 0xffff) << 16) | BIT_31; qlcnic_sriov_cfg_vf_def_mac() 830 buf = &cmd->req.arg[2]; qlcnic_sriov_cfg_vf_def_mac() 833 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_cfg_vf_def_mac() 839 qlcnic_free_mbx_args(cmd); qlcnic_sriov_cfg_vf_def_mac() 841 kfree(cmd); qlcnic_sriov_cfg_vf_def_mac() 845 static int qlcnic_sriov_validate_create_rx_ctx(struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_create_rx_ctx() argument 847 if ((cmd->req.arg[0] >> 29) != 0x3) qlcnic_sriov_validate_create_rx_ctx() 883 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_create_rx_ctx_cmd() 890 err = qlcnic_sriov_validate_create_rx_ctx(cmd); qlcnic_sriov_pf_create_rx_ctx_cmd() 892 cmd->rsp.arg[0] |= (0x6 << 25); qlcnic_sriov_pf_create_rx_ctx_cmd() 896 cmd->req.arg[6] = vf->vp->handle; qlcnic_sriov_pf_create_rx_ctx_cmd() 897 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_create_rx_ctx_cmd() 900 mbx_out = (struct qlcnic_rcv_mbx_out *)&cmd->rsp.arg[1]; qlcnic_sriov_pf_create_rx_ctx_cmd() 911 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_mac_address_cmd() 916 type = cmd->req.arg[1]; qlcnic_sriov_pf_mac_address_cmd() 920 cmd->rsp.arg[0] = (2 << 25); qlcnic_sriov_pf_mac_address_cmd() 923 cmd->rsp.arg[0] = (1 << 25); qlcnic_sriov_pf_mac_address_cmd() 925 cmd->rsp.arg[2] = mac[1] | ((mac[0] << 8) & 0xff00); qlcnic_sriov_pf_mac_address_cmd() 926 cmd->rsp.arg[1] = mac[5] | ((mac[4] << 8) & 0xff00) | qlcnic_sriov_pf_mac_address_cmd() 934 static int qlcnic_sriov_validate_create_tx_ctx(struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_create_tx_ctx() argument 936 if ((cmd->req.arg[0] >> 29) != 0x3) qlcnic_sriov_validate_create_tx_ctx() 943 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_create_tx_ctx_cmd() 950 err = qlcnic_sriov_validate_create_tx_ctx(cmd); qlcnic_sriov_pf_create_tx_ctx_cmd() 952 cmd->rsp.arg[0] |= (0x6 << 25); qlcnic_sriov_pf_create_tx_ctx_cmd() 956 cmd->req.arg[5] |= vf->vp->handle << 16; qlcnic_sriov_pf_create_tx_ctx_cmd() 957 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_create_tx_ctx_cmd() 959 mbx_out = (struct qlcnic_tx_mbx_out *)&cmd->rsp.arg[2]; qlcnic_sriov_pf_create_tx_ctx_cmd() 969 struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_del_rx_ctx() 971 if ((cmd->req.arg[0] >> 29) != 0x3) qlcnic_sriov_validate_del_rx_ctx() 974 if ((cmd->req.arg[1] & 0xffff) != vf->rx_ctx_id) qlcnic_sriov_validate_del_rx_ctx() 981 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_del_rx_ctx_cmd() 987 err = qlcnic_sriov_validate_del_rx_ctx(vf, cmd); qlcnic_sriov_pf_del_rx_ctx_cmd() 989 cmd->rsp.arg[0] |= (0x6 << 25); qlcnic_sriov_pf_del_rx_ctx_cmd() 994 cmd->req.arg[1] |= vf->vp->handle << 16; qlcnic_sriov_pf_del_rx_ctx_cmd() 995 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_del_rx_ctx_cmd() 1004 struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_del_tx_ctx() 1006 if ((cmd->req.arg[0] >> 29) != 0x3) qlcnic_sriov_validate_del_tx_ctx() 1009 if ((cmd->req.arg[1] & 0xffff) != vf->tx_ctx_id) qlcnic_sriov_validate_del_tx_ctx() 1016 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_del_tx_ctx_cmd() 1022 err = qlcnic_sriov_validate_del_tx_ctx(vf, cmd); qlcnic_sriov_pf_del_tx_ctx_cmd() 1024 cmd->rsp.arg[0] |= (0x6 << 25); qlcnic_sriov_pf_del_tx_ctx_cmd() 1028 cmd->req.arg[1] |= vf->vp->handle << 16; qlcnic_sriov_pf_del_tx_ctx_cmd() 1029 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_del_tx_ctx_cmd() 1038 struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_cfg_lro() 1040 if ((cmd->req.arg[1] >> 16) != vf->rx_ctx_id) qlcnic_sriov_validate_cfg_lro() 1047 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_lro_cmd() 1053 err = qlcnic_sriov_validate_cfg_lro(vf, cmd); qlcnic_sriov_pf_cfg_lro_cmd() 1055 cmd->rsp.arg[0] |= (0x6 << 25); qlcnic_sriov_pf_cfg_lro_cmd() 1059 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_cfg_lro_cmd() 1064 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_ip_cmd() 1071 op = cmd->req.arg[1] & 0xff; qlcnic_sriov_pf_cfg_ip_cmd() 1073 cmd->req.arg[1] |= vf->vp->handle << 16; qlcnic_sriov_pf_cfg_ip_cmd() 1074 cmd->req.arg[1] |= BIT_31; qlcnic_sriov_pf_cfg_ip_cmd() 1076 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_cfg_ip_cmd() 1081 struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_cfg_intrpt() 1083 if (((cmd->req.arg[1] >> 8) & 0xff) != vf->pci_func) qlcnic_sriov_validate_cfg_intrpt() 1086 if (!(cmd->req.arg[1] & BIT_16)) qlcnic_sriov_validate_cfg_intrpt() 1089 if ((cmd->req.arg[1] & 0xff) != 0x1) qlcnic_sriov_validate_cfg_intrpt() 1096 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_intrpt_cmd() 1102 err = qlcnic_sriov_validate_cfg_intrpt(vf, cmd); qlcnic_sriov_pf_cfg_intrpt_cmd() 1104 cmd->rsp.arg[0] |= (0x6 << 25); qlcnic_sriov_pf_cfg_intrpt_cmd() 1106 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_cfg_intrpt_cmd() 1113 struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_mtu() 1115 if (cmd->req.arg[1] != vf->rx_ctx_id) qlcnic_sriov_validate_mtu() 1118 if (cmd->req.arg[2] > adapter->ahw->max_mtu) qlcnic_sriov_validate_mtu() 1125 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_set_mtu_cmd() 1131 err = qlcnic_sriov_validate_mtu(adapter, vf, cmd); qlcnic_sriov_pf_set_mtu_cmd() 1133 cmd->rsp.arg[0] |= (0x6 << 25); qlcnic_sriov_pf_set_mtu_cmd() 1135 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_set_mtu_cmd() 1141 struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_get_nic_info() 1143 if (cmd->req.arg[1] & BIT_31) { qlcnic_sriov_validate_get_nic_info() 1144 if (((cmd->req.arg[1] >> 16) & 0x7fff) != vf->pci_func) qlcnic_sriov_validate_get_nic_info() 1147 cmd->req.arg[1] |= vf->vp->handle << 16; qlcnic_sriov_validate_get_nic_info() 1154 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_get_nic_info_cmd() 1160 err = qlcnic_sriov_validate_get_nic_info(vf, cmd); qlcnic_sriov_pf_get_nic_info_cmd() 1162 cmd->rsp.arg[0] |= (0x6 << 25); qlcnic_sriov_pf_get_nic_info_cmd() 1166 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_get_nic_info_cmd() 1171 struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_cfg_rss() 1173 if (cmd->req.arg[1] != vf->rx_ctx_id) qlcnic_sriov_validate_cfg_rss() 1180 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_rss_cmd() 1186 err = qlcnic_sriov_validate_cfg_rss(vf, cmd); qlcnic_sriov_pf_cfg_rss_cmd() 1188 cmd->rsp.arg[0] |= (0x6 << 25); qlcnic_sriov_pf_cfg_rss_cmd() 1190 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_cfg_rss_cmd() 1197 struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_cfg_intrcoal() 1204 type = cmd->req.arg[1] & QLC_INTR_COAL_TYPE_MASK; qlcnic_sriov_validate_cfg_intrcoal() 1205 ctx_id = cmd->req.arg[1] >> 16; qlcnic_sriov_validate_cfg_intrcoal() 1206 pkts = cmd->req.arg[2] & 0xffff; qlcnic_sriov_validate_cfg_intrcoal() 1207 time = cmd->req.arg[2] >> 16; qlcnic_sriov_validate_cfg_intrcoal() 1239 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_intrcoal_cmd() 1245 err = qlcnic_sriov_validate_cfg_intrcoal(adapter, vf, cmd); qlcnic_sriov_pf_cfg_intrcoal_cmd() 1247 cmd->rsp.arg[0] |= (0x6 << 25); qlcnic_sriov_pf_cfg_intrcoal_cmd() 1251 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_cfg_intrcoal_cmd() 1257 struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_cfg_macvlan() 1262 if (!(cmd->req.arg[1] & BIT_8)) qlcnic_sriov_validate_cfg_macvlan() 1265 cmd->req.arg[1] |= (vf->vp->handle << 16); qlcnic_sriov_validate_cfg_macvlan() 1266 cmd->req.arg[1] |= BIT_31; qlcnic_sriov_validate_cfg_macvlan() 1269 op = cmd->req.arg[1] & 0x7; qlcnic_sriov_validate_cfg_macvlan() 1270 cmd->req.arg[1] &= ~0x7; qlcnic_sriov_validate_cfg_macvlan() 1273 cmd->req.arg[3] |= vp->pvid << 16; qlcnic_sriov_validate_cfg_macvlan() 1274 cmd->req.arg[1] |= new_op; qlcnic_sriov_validate_cfg_macvlan() 1281 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_macvlan_cmd() 1287 err = qlcnic_sriov_validate_cfg_macvlan(adapter, vf, cmd); qlcnic_sriov_pf_cfg_macvlan_cmd() 1289 cmd->rsp.arg[0] |= (0x6 << 25); qlcnic_sriov_pf_cfg_macvlan_cmd() 1293 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_cfg_macvlan_cmd() 1298 struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_linkevent() 1300 if ((cmd->req.arg[1] >> 16) != vf->rx_ctx_id) qlcnic_sriov_validate_linkevent() 1307 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_linkevent_cmd() 1313 err = qlcnic_sriov_validate_linkevent(vf, cmd); qlcnic_sriov_pf_linkevent_cmd() 1315 cmd->rsp.arg[0] |= (0x6 << 25); qlcnic_sriov_pf_linkevent_cmd() 1319 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_linkevent_cmd() 1324 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_promisc_cmd() 1330 cmd->req.arg[1] |= vf->vp->handle << 16; qlcnic_sriov_pf_cfg_promisc_cmd() 1331 cmd->req.arg[1] |= BIT_31; qlcnic_sriov_pf_cfg_promisc_cmd() 1332 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_cfg_promisc_cmd() 1337 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_get_acl_cmd() 1349 cmd->rsp.arg[0] |= 1 << 25; qlcnic_sriov_pf_get_acl_cmd() 1359 cmd->rsp.arg[1] = mode | 1 << 8; qlcnic_sriov_pf_get_acl_cmd() 1360 cmd->rsp.arg[2] = sriov->num_allowed_vlans << 16; qlcnic_sriov_pf_get_acl_cmd() 1363 cmd->rsp.arg[1] = mode | 1 << 8 | vp->pvid << 16; qlcnic_sriov_pf_get_acl_cmd() 1372 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_del_guest_vlan() 1380 vlan = cmd->req.arg[1] >> 16; qlcnic_sriov_pf_del_guest_vlan() 1397 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_add_guest_vlan() 1406 vlan = cmd->req.arg[1] >> 16; qlcnic_sriov_pf_add_guest_vlan() 1434 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_guest_vlan_cmd() 1443 cmd->rsp.arg[0] |= 2 << 25; qlcnic_sriov_pf_cfg_guest_vlan_cmd() 1447 op = cmd->req.arg[1] & 0xf; qlcnic_sriov_pf_cfg_guest_vlan_cmd() 1450 err = qlcnic_sriov_pf_add_guest_vlan(adapter, vf, cmd); qlcnic_sriov_pf_cfg_guest_vlan_cmd() 1452 err = qlcnic_sriov_pf_del_guest_vlan(adapter, vf, cmd); qlcnic_sriov_pf_cfg_guest_vlan_cmd() 1454 cmd->rsp.arg[0] |= err ? 2 << 25 : 1 << 25; qlcnic_sriov_pf_cfg_guest_vlan_cmd() 1493 struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_process_bc_cmd() 1502 qlcnic_pf_bc_cmd_hdlr[cmd_op].fn(trans, cmd); qlcnic_sriov_pf_process_bc_cmd() 1509 if (cmd_op == qlcnic_pf_fw_cmd_hdlr[i].cmd) { qlcnic_sriov_pf_process_bc_cmd() 1510 qlcnic_pf_fw_cmd_hdlr[i].fn(trans, cmd); qlcnic_sriov_pf_process_bc_cmd() 1518 qlcnic_issue_cmd(adapter, cmd); qlcnic_sriov_pf_process_bc_cmd() 1524 cmd->rsp.arg[0] |= (0x9 << 25); qlcnic_sriov_pf_process_bc_cmd() 1600 struct qlcnic_cmd_args cmd; qlcnic_sriov_del_rx_ctx() local 1606 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_DESTROY_RX_CTX)) qlcnic_sriov_del_rx_ctx() 1611 cmd.req.arg[1] = vf->rx_ctx_id | (vpid & 0xffff) << 16; qlcnic_sriov_del_rx_ctx() 1612 if (qlcnic_issue_cmd(adapter, &cmd)) qlcnic_sriov_del_rx_ctx() 1620 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_del_rx_ctx() 1626 struct qlcnic_cmd_args cmd; qlcnic_sriov_del_tx_ctx() local 1632 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_DESTROY_TX_CTX)) qlcnic_sriov_del_tx_ctx() 1637 cmd.req.arg[1] |= vf->tx_ctx_id | (vpid & 0xffff) << 16; qlcnic_sriov_del_tx_ctx() 1638 if (qlcnic_issue_cmd(adapter, &cmd)) qlcnic_sriov_del_tx_ctx() 1646 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_del_tx_ctx() 738 qlcnic_sriov_pf_channel_cfg_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_channel_cfg_cmd() argument 882 qlcnic_sriov_pf_create_rx_ctx_cmd(struct qlcnic_bc_trans *tran, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_create_rx_ctx_cmd() argument 910 qlcnic_sriov_pf_mac_address_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_mac_address_cmd() argument 942 qlcnic_sriov_pf_create_tx_ctx_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_create_tx_ctx_cmd() argument 968 qlcnic_sriov_validate_del_rx_ctx(struct qlcnic_vf_info *vf, struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_del_rx_ctx() argument 980 qlcnic_sriov_pf_del_rx_ctx_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_del_rx_ctx_cmd() argument 1003 qlcnic_sriov_validate_del_tx_ctx(struct qlcnic_vf_info *vf, struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_del_tx_ctx() argument 1015 qlcnic_sriov_pf_del_tx_ctx_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_del_tx_ctx_cmd() argument 1037 qlcnic_sriov_validate_cfg_lro(struct qlcnic_vf_info *vf, struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_cfg_lro() argument 1046 qlcnic_sriov_pf_cfg_lro_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_lro_cmd() argument 1063 qlcnic_sriov_pf_cfg_ip_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_ip_cmd() argument 1080 qlcnic_sriov_validate_cfg_intrpt(struct qlcnic_vf_info *vf, struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_cfg_intrpt() argument 1095 qlcnic_sriov_pf_cfg_intrpt_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_intrpt_cmd() argument 1111 qlcnic_sriov_validate_mtu(struct qlcnic_adapter *adapter, struct qlcnic_vf_info *vf, struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_mtu() argument 1124 qlcnic_sriov_pf_set_mtu_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_set_mtu_cmd() argument 1140 qlcnic_sriov_validate_get_nic_info(struct qlcnic_vf_info *vf, struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_get_nic_info() argument 1153 qlcnic_sriov_pf_get_nic_info_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_get_nic_info_cmd() argument 1170 qlcnic_sriov_validate_cfg_rss(struct qlcnic_vf_info *vf, struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_cfg_rss() argument 1179 qlcnic_sriov_pf_cfg_rss_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_rss_cmd() argument 1195 qlcnic_sriov_validate_cfg_intrcoal(struct qlcnic_adapter *adapter, struct qlcnic_vf_info *vf, struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_cfg_intrcoal() argument 1238 qlcnic_sriov_pf_cfg_intrcoal_cmd(struct qlcnic_bc_trans *tran, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_intrcoal_cmd() argument 1255 qlcnic_sriov_validate_cfg_macvlan(struct qlcnic_adapter *adapter, struct qlcnic_vf_info *vf, struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_cfg_macvlan() argument 1280 qlcnic_sriov_pf_cfg_macvlan_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_macvlan_cmd() argument 1297 qlcnic_sriov_validate_linkevent(struct qlcnic_vf_info *vf, struct qlcnic_cmd_args *cmd) qlcnic_sriov_validate_linkevent() argument 1306 qlcnic_sriov_pf_linkevent_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_linkevent_cmd() argument 1323 qlcnic_sriov_pf_cfg_promisc_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_promisc_cmd() argument 1336 qlcnic_sriov_pf_get_acl_cmd(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_get_acl_cmd() argument 1370 qlcnic_sriov_pf_del_guest_vlan(struct qlcnic_adapter *adapter, struct qlcnic_vf_info *vf, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_del_guest_vlan() argument 1395 qlcnic_sriov_pf_add_guest_vlan(struct qlcnic_adapter *adapter, struct qlcnic_vf_info *vf, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_add_guest_vlan() argument 1433 qlcnic_sriov_pf_cfg_guest_vlan_cmd(struct qlcnic_bc_trans *tran, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_cfg_guest_vlan_cmd() argument 1491 qlcnic_sriov_pf_process_bc_cmd(struct qlcnic_adapter *adapter, struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) qlcnic_sriov_pf_process_bc_cmd() argument
|
H A D | qlcnic_ctx.c | 62 if (type == mbx_tbl[i].cmd) { qlcnic_82xx_alloc_mbx_args() 86 void qlcnic_free_mbx_args(struct qlcnic_cmd_args *cmd) qlcnic_free_mbx_args() argument 88 kfree(cmd->req.arg); qlcnic_free_mbx_args() 89 cmd->req.arg = NULL; qlcnic_free_mbx_args() 90 kfree(cmd->rsp.arg); qlcnic_free_mbx_args() 91 cmd->rsp.arg = NULL; qlcnic_free_mbx_args() 114 struct qlcnic_cmd_args *cmd) qlcnic_82xx_issue_cmd() 127 cmd->rsp.arg[0] = QLCNIC_RCODE_TIMEOUT; qlcnic_82xx_issue_cmd() 128 return cmd->rsp.arg[0]; qlcnic_82xx_issue_cmd() 132 for (i = 1; i < cmd->req.num; i++) qlcnic_82xx_issue_cmd() 133 QLCWR32(adapter, QLCNIC_CDRP_ARG(i), cmd->req.arg[i]); qlcnic_82xx_issue_cmd() 135 QLCNIC_CDRP_FORM_CMD(cmd->req.arg[0])); qlcnic_82xx_issue_cmd() 140 cmd->rsp.arg[0] = QLCNIC_RCODE_TIMEOUT; qlcnic_82xx_issue_cmd() 142 cmd->rsp.arg[0] = QLCRD32(adapter, QLCNIC_CDRP_ARG(1), &err); qlcnic_82xx_issue_cmd() 143 switch (cmd->rsp.arg[0]) { qlcnic_82xx_issue_cmd() 155 fmt = "CDRP invalid or unknown cmd received: [%d]\n"; qlcnic_82xx_issue_cmd() 164 dev_err(&pdev->dev, fmt, cmd->rsp.arg[0]); qlcnic_82xx_issue_cmd() 165 qlcnic_dump_mbx(adapter, cmd); qlcnic_82xx_issue_cmd() 167 cmd->rsp.arg[0] = QLCNIC_RCODE_SUCCESS; qlcnic_82xx_issue_cmd() 169 for (i = 1; i < cmd->rsp.num; i++) qlcnic_82xx_issue_cmd() 170 cmd->rsp.arg[i] = QLCRD32(adapter, QLCNIC_CDRP_ARG(i), &err); qlcnic_82xx_issue_cmd() 174 return cmd->rsp.arg[0]; qlcnic_82xx_issue_cmd() 179 struct qlcnic_cmd_args cmd; qlcnic_fw_cmd_set_drv_version() local 189 err = qlcnic_alloc_mbx_args(&cmd, adapter, fw_cmd); qlcnic_fw_cmd_set_drv_version() 197 cmd.req.arg[1] = arg1; qlcnic_fw_cmd_set_drv_version() 198 cmd.req.arg[2] = arg2; qlcnic_fw_cmd_set_drv_version() 199 cmd.req.arg[3] = arg3; qlcnic_fw_cmd_set_drv_version() 201 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_fw_cmd_set_drv_version() 207 qlcnic_free_mbx_args(&cmd); qlcnic_fw_cmd_set_drv_version() 215 struct qlcnic_cmd_args cmd; qlcnic_fw_cmd_set_mtu() local 220 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_SET_MTU); qlcnic_fw_cmd_set_mtu() 224 cmd.req.arg[1] = recv_ctx->context_id; qlcnic_fw_cmd_set_mtu() 225 cmd.req.arg[2] = mtu; qlcnic_fw_cmd_set_mtu() 227 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_fw_cmd_set_mtu() 232 qlcnic_free_mbx_args(&cmd); qlcnic_fw_cmd_set_mtu() 252 struct qlcnic_cmd_args cmd; qlcnic_82xx_fw_cmd_create_rx_ctx() local 340 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_CREATE_RX_CTX); qlcnic_82xx_fw_cmd_create_rx_ctx() 344 cmd.req.arg[1] = MSD(phys_addr); qlcnic_82xx_fw_cmd_create_rx_ctx() 345 cmd.req.arg[2] = LSD(phys_addr); qlcnic_82xx_fw_cmd_create_rx_ctx() 346 cmd.req.arg[3] = rq_size; qlcnic_82xx_fw_cmd_create_rx_ctx() 347 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_82xx_fw_cmd_create_rx_ctx() 384 qlcnic_free_mbx_args(&cmd); qlcnic_82xx_fw_cmd_create_rx_ctx() 398 struct qlcnic_cmd_args cmd; qlcnic_82xx_fw_cmd_del_rx_ctx() local 401 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_DESTROY_RX_CTX); qlcnic_82xx_fw_cmd_del_rx_ctx() 405 cmd.req.arg[1] = recv_ctx->context_id; qlcnic_82xx_fw_cmd_del_rx_ctx() 406 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_82xx_fw_cmd_del_rx_ctx() 412 qlcnic_free_mbx_args(&cmd); qlcnic_82xx_fw_cmd_del_rx_ctx() 424 struct qlcnic_cmd_args cmd; qlcnic_82xx_fw_cmd_create_tx_ctx() local 486 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_CREATE_TX_CTX); qlcnic_82xx_fw_cmd_create_tx_ctx() 490 cmd.req.arg[1] = MSD(phys_addr); qlcnic_82xx_fw_cmd_create_tx_ctx() 491 cmd.req.arg[2] = LSD(phys_addr); qlcnic_82xx_fw_cmd_create_tx_ctx() 492 cmd.req.arg[3] = rq_size; qlcnic_82xx_fw_cmd_create_tx_ctx() 493 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_82xx_fw_cmd_create_tx_ctx() 515 qlcnic_free_mbx_args(&cmd); qlcnic_82xx_fw_cmd_create_tx_ctx() 529 struct qlcnic_cmd_args cmd; qlcnic_82xx_fw_cmd_del_tx_ctx() local 532 ret = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_DESTROY_TX_CTX); qlcnic_82xx_fw_cmd_del_tx_ctx() 536 cmd.req.arg[1] = tx_ring->ctx_id; qlcnic_82xx_fw_cmd_del_tx_ctx() 537 if (qlcnic_issue_cmd(adapter, &cmd)) qlcnic_82xx_fw_cmd_del_tx_ctx() 540 qlcnic_free_mbx_args(&cmd); qlcnic_82xx_fw_cmd_del_tx_ctx() 547 struct qlcnic_cmd_args cmd; qlcnic_fw_cmd_set_port() local 549 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_CONFIG_PORT); qlcnic_fw_cmd_set_port() 553 cmd.req.arg[1] = config; qlcnic_fw_cmd_set_port() 554 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_fw_cmd_set_port() 555 qlcnic_free_mbx_args(&cmd); qlcnic_fw_cmd_set_port() 582 /* cmd desc ring */ qlcnic_alloc_hw_resources() 772 struct qlcnic_cmd_args cmd; qlcnic_82xx_config_intrpt() local 777 qlcnic_alloc_mbx_args(&cmd, adapter, qlcnic_82xx_config_intrpt() 783 cmd.req.arg[1] = val; qlcnic_82xx_config_intrpt() 784 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_82xx_config_intrpt() 789 qlcnic_free_mbx_args(&cmd); qlcnic_82xx_config_intrpt() 792 val = cmd.rsp.arg[1]; qlcnic_82xx_config_intrpt() 802 ahw->intr_tbl[i].src = cmd.rsp.arg[2]; qlcnic_82xx_config_intrpt() 808 qlcnic_free_mbx_args(&cmd); qlcnic_82xx_config_intrpt() 818 struct qlcnic_cmd_args cmd; qlcnic_82xx_get_mac_address() local 821 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_MAC_ADDRESS); qlcnic_82xx_get_mac_address() 825 cmd.req.arg[1] = function | BIT_8; qlcnic_82xx_get_mac_address() 826 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_82xx_get_mac_address() 829 mac_low = cmd.rsp.arg[1]; qlcnic_82xx_get_mac_address() 830 mac_high = cmd.rsp.arg[2]; qlcnic_82xx_get_mac_address() 841 qlcnic_free_mbx_args(&cmd); qlcnic_82xx_get_mac_address() 853 struct qlcnic_cmd_args cmd; qlcnic_82xx_get_nic_info() local 863 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_NIC_INFO); qlcnic_82xx_get_nic_info() 867 cmd.req.arg[1] = MSD(nic_dma_t); qlcnic_82xx_get_nic_info() 868 cmd.req.arg[2] = LSD(nic_dma_t); qlcnic_82xx_get_nic_info() 869 cmd.req.arg[3] = (func_id << 16 | nic_size); qlcnic_82xx_get_nic_info() 870 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_82xx_get_nic_info() 888 qlcnic_free_mbx_args(&cmd); qlcnic_82xx_get_nic_info() 903 struct qlcnic_cmd_args cmd; qlcnic_82xx_set_nic_info() local 928 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_SET_NIC_INFO); qlcnic_82xx_set_nic_info() 932 cmd.req.arg[1] = MSD(nic_dma_t); qlcnic_82xx_set_nic_info() 933 cmd.req.arg[2] = LSD(nic_dma_t); qlcnic_82xx_set_nic_info() 934 cmd.req.arg[3] = ((nic->pci_func << 16) | nic_size); qlcnic_82xx_set_nic_info() 935 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_82xx_set_nic_info() 943 qlcnic_free_mbx_args(&cmd); qlcnic_82xx_set_nic_info() 960 struct qlcnic_cmd_args cmd; qlcnic_82xx_get_pci_info() local 971 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_PCI_INFO); qlcnic_82xx_get_pci_info() 975 cmd.req.arg[1] = MSD(pci_info_dma_t); qlcnic_82xx_get_pci_info() 976 cmd.req.arg[2] = LSD(pci_info_dma_t); qlcnic_82xx_get_pci_info() 977 cmd.req.arg[3] = pci_size; qlcnic_82xx_get_pci_info() 978 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_82xx_get_pci_info() 1012 qlcnic_free_mbx_args(&cmd); qlcnic_82xx_get_pci_info() 1025 struct qlcnic_cmd_args cmd; qlcnic_config_port_mirroring() local 1039 err = qlcnic_alloc_mbx_args(&cmd, adapter, qlcnic_config_port_mirroring() 1044 cmd.req.arg[1] = arg1; qlcnic_config_port_mirroring() 1045 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_config_port_mirroring() 1053 qlcnic_free_mbx_args(&cmd); qlcnic_config_port_mirroring() 1066 struct qlcnic_cmd_args cmd; qlcnic_get_port_stats() local 1087 err = qlcnic_alloc_mbx_args(&cmd, adapter, qlcnic_get_port_stats() 1092 cmd.req.arg[1] = arg1; qlcnic_get_port_stats() 1093 cmd.req.arg[2] = MSD(stats_dma_t); qlcnic_get_port_stats() 1094 cmd.req.arg[3] = LSD(stats_dma_t); qlcnic_get_port_stats() 1095 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_get_port_stats() 1113 qlcnic_free_mbx_args(&cmd); qlcnic_get_port_stats() 1126 struct qlcnic_cmd_args cmd; qlcnic_get_mac_stats() local 1140 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_MAC_STATS); qlcnic_get_mac_stats() 1144 cmd.req.arg[1] = stats_size << 16; qlcnic_get_mac_stats() 1145 cmd.req.arg[2] = MSD(stats_dma_t); qlcnic_get_mac_stats() 1146 cmd.req.arg[3] = LSD(stats_dma_t); qlcnic_get_mac_stats() 1147 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_get_mac_stats() 1174 qlcnic_free_mbx_args(&cmd); qlcnic_get_mac_stats() 1241 struct qlcnic_cmd_args cmd; qlcnic_clear_esw_stats() local 1264 err = qlcnic_alloc_mbx_args(&cmd, adapter, qlcnic_clear_esw_stats() 1269 cmd.req.arg[1] = arg1; qlcnic_clear_esw_stats() 1270 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_clear_esw_stats() 1271 qlcnic_free_mbx_args(&cmd); qlcnic_clear_esw_stats() 1285 struct qlcnic_cmd_args cmd; __qlcnic_get_eswitch_port_config() local 1289 err = qlcnic_alloc_mbx_args(&cmd, adapter, __qlcnic_get_eswitch_port_config() 1294 cmd.req.arg[1] = *arg1; __qlcnic_get_eswitch_port_config() 1295 err = qlcnic_issue_cmd(adapter, &cmd); __qlcnic_get_eswitch_port_config() 1296 *arg1 = cmd.rsp.arg[1]; __qlcnic_get_eswitch_port_config() 1297 *arg2 = cmd.rsp.arg[2]; __qlcnic_get_eswitch_port_config() 1298 qlcnic_free_mbx_args(&cmd); __qlcnic_get_eswitch_port_config() 1319 struct qlcnic_cmd_args cmd; qlcnic_config_switch_port() local 1378 err = qlcnic_alloc_mbx_args(&cmd, adapter, qlcnic_config_switch_port() 1383 cmd.req.arg[1] = arg1; qlcnic_config_switch_port() 1384 cmd.req.arg[2] = arg2; qlcnic_config_switch_port() 1385 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_config_switch_port() 1386 qlcnic_free_mbx_args(&cmd); qlcnic_config_switch_port() 113 qlcnic_82xx_issue_cmd(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_82xx_issue_cmd() argument
|
H A D | qlcnic_83xx_hw.c | 447 struct qlcnic_cmd_args *cmd) qlcnic_83xx_get_mbx_data() 451 if (cmd->op_type == QLC_83XX_MBX_POST_BC_OP) qlcnic_83xx_get_mbx_data() 454 for (i = 0; i < cmd->rsp.num; i++) qlcnic_83xx_get_mbx_data() 455 cmd->rsp.arg[i] = readl(QLCNIC_MBX_FW(adapter->ahw, i)); qlcnic_83xx_get_mbx_data() 796 struct qlcnic_cmd_args *cmd) qlcnic_dump_mbx() 800 if (cmd->op_type == QLC_83XX_MBX_POST_BC_OP) qlcnic_dump_mbx() 804 "Host MBX regs(%d)\n", cmd->req.num); qlcnic_dump_mbx() 805 for (i = 0; i < cmd->req.num; i++) { qlcnic_dump_mbx() 808 pr_info("%08x ", cmd->req.arg[i]); qlcnic_dump_mbx() 812 "FW MBX regs(%d)\n", cmd->rsp.num); qlcnic_dump_mbx() 813 for (i = 0; i < cmd->rsp.num; i++) { qlcnic_dump_mbx() 816 pr_info("%08x ", cmd->rsp.arg[i]); qlcnic_dump_mbx() 822 struct qlcnic_cmd_args *cmd) qlcnic_83xx_poll_for_mbx_completion() 825 int opcode = LSW(cmd->req.arg[0]); qlcnic_83xx_poll_for_mbx_completion() 828 max_loops = cmd->total_cmds * QLC_83XX_MBX_CMD_LOOP; qlcnic_83xx_poll_for_mbx_completion() 831 if (atomic_read(&cmd->rsp_status) == qlcnic_83xx_poll_for_mbx_completion() 840 __func__, opcode, cmd->type, ahw->pci_func, ahw->op_mode); qlcnic_83xx_poll_for_mbx_completion() 846 struct qlcnic_cmd_args *cmd) qlcnic_83xx_issue_cmd() 856 opcode = LSW(cmd->req.arg[0]); qlcnic_83xx_issue_cmd() 857 cmd_type = cmd->type; qlcnic_83xx_issue_cmd() 858 err = mbx->ops->enqueue_cmd(adapter, cmd, &timeout); qlcnic_83xx_issue_cmd() 862 __func__, opcode, cmd->type, ahw->pci_func, qlcnic_83xx_issue_cmd() 869 if (!wait_for_completion_timeout(&cmd->completion, timeout)) { qlcnic_83xx_issue_cmd() 880 qlcnic_83xx_poll_for_mbx_completion(adapter, cmd); qlcnic_83xx_issue_cmd() 890 return cmd->rsp_opcode; qlcnic_83xx_issue_cmd() 904 if (type == mbx_tbl[i].cmd) { qlcnic_83xx_alloc_mbx_args() 936 struct qlcnic_cmd_args cmd; qlcnic_83xx_idc_aen_work() local 940 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_IDC_ACK); qlcnic_83xx_idc_aen_work() 945 cmd.req.arg[i] = adapter->ahw->mbox_aen[i]; qlcnic_83xx_idc_aen_work() 947 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_idc_aen_work() 951 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_idc_aen_work() 1069 struct qlcnic_cmd_args cmd; qlcnic_83xx_add_rings() local 1079 ahw->hw_ops->alloc_mbx_args(&cmd, adapter, qlcnic_83xx_add_rings() 1081 cmd.req.arg[1] = 0 | (num_sds << 8) | (context_id << 16); qlcnic_83xx_add_rings() 1104 buf = &cmd.req.arg[index]; qlcnic_83xx_add_rings() 1110 err = ahw->hw_ops->mbx_cmd(adapter, &cmd); qlcnic_83xx_add_rings() 1117 mbx_out = (struct qlcnic_add_rings_mbx_out *)&cmd.rsp.arg[1]; qlcnic_83xx_add_rings() 1133 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_add_rings() 1141 struct qlcnic_cmd_args cmd; qlcnic_83xx_del_rx_ctx() local 1144 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_DESTROY_RX_CTX)) qlcnic_83xx_del_rx_ctx() 1148 cmd.req.arg[0] |= (0x3 << 29); qlcnic_83xx_del_rx_ctx() 1153 cmd.req.arg[1] = recv_ctx->context_id | temp; qlcnic_83xx_del_rx_ctx() 1154 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_del_rx_ctx() 1160 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_del_rx_ctx() 1172 struct qlcnic_cmd_args cmd; qlcnic_83xx_create_rx_ctx() local 1191 err = qlcnic_alloc_mbx_args(&cmd, adapter, qlcnic_83xx_create_rx_ctx() 1197 cmd.req.arg[0] |= (0x3 << 29); qlcnic_83xx_create_rx_ctx() 1199 cmd.req.arg[1] = cap; qlcnic_83xx_create_rx_ctx() 1200 cmd.req.arg[5] = 1 | (num_rds << 5) | (num_sds << 8) | qlcnic_83xx_create_rx_ctx() 1205 &cmd.req.arg[6]); qlcnic_83xx_create_rx_ctx() 1225 buf = &cmd.req.arg[index]; qlcnic_83xx_create_rx_ctx() 1245 buf = &cmd.req.arg[index]; qlcnic_83xx_create_rx_ctx() 1249 err = ahw->hw_ops->mbx_cmd(adapter, &cmd); qlcnic_83xx_create_rx_ctx() 1255 mbx_out = (struct qlcnic_rcv_mbx_out *)&cmd.rsp.arg[1]; qlcnic_83xx_create_rx_ctx() 1285 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_create_rx_ctx() 1292 struct qlcnic_cmd_args cmd; qlcnic_83xx_del_tx_ctx() local 1295 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_DESTROY_TX_CTX)) qlcnic_83xx_del_tx_ctx() 1299 cmd.req.arg[0] |= (0x3 << 29); qlcnic_83xx_del_tx_ctx() 1304 cmd.req.arg[1] = tx_ring->ctx_id | temp; qlcnic_83xx_del_tx_ctx() 1305 if (qlcnic_issue_cmd(adapter, &cmd)) qlcnic_83xx_del_tx_ctx() 1308 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_del_tx_ctx() 1317 struct qlcnic_cmd_args cmd; qlcnic_83xx_create_tx_ctx() local 1352 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_CREATE_TX_CTX); qlcnic_83xx_create_tx_ctx() 1357 cmd.req.arg[0] |= (0x3 << 29); qlcnic_83xx_create_tx_ctx() 1362 cmd.req.arg[1] = QLCNIC_CAP0_LEGACY_CONTEXT; qlcnic_83xx_create_tx_ctx() 1363 cmd.req.arg[5] = QLCNIC_SINGLE_RING | temp; qlcnic_83xx_create_tx_ctx() 1365 buf = &cmd.req.arg[6]; qlcnic_83xx_create_tx_ctx() 1368 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_create_tx_ctx() 1374 mbx_out = (struct qlcnic_tx_mbx_out *)&cmd.rsp.arg[2]; qlcnic_83xx_create_tx_ctx() 1386 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_create_tx_ctx() 1484 struct qlcnic_cmd_args cmd; qlcnic_83xx_get_beacon_state() local 1488 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_LED_CONFIG); qlcnic_83xx_get_beacon_state() 1490 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_get_beacon_state() 1492 beacon_state = cmd.rsp.arg[4]; qlcnic_83xx_get_beacon_state() 1503 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_get_beacon_state() 1511 struct qlcnic_cmd_args cmd; qlcnic_83xx_config_led() local 1517 status = qlcnic_alloc_mbx_args(&cmd, adapter, qlcnic_83xx_config_led() 1522 status = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_config_led() 1529 adapter->ahw->mbox_reg[i] = cmd.rsp.arg[i+1]; qlcnic_83xx_config_led() 1531 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_config_led() 1535 status = qlcnic_alloc_mbx_args(&cmd, adapter, qlcnic_83xx_config_led() 1540 cmd.req.arg[1] = mbx_in; qlcnic_83xx_config_led() 1541 cmd.req.arg[2] = mbx_in; qlcnic_83xx_config_led() 1542 cmd.req.arg[3] = mbx_in; qlcnic_83xx_config_led() 1544 cmd.req.arg[4] = QLC_83XX_ENABLE_BEACON; qlcnic_83xx_config_led() 1545 status = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_config_led() 1551 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_config_led() 1556 status = qlcnic_alloc_mbx_args(&cmd, adapter, qlcnic_83xx_config_led() 1561 cmd.req.arg[1] = adapter->ahw->mbox_reg[0]; qlcnic_83xx_config_led() 1562 cmd.req.arg[2] = adapter->ahw->mbox_reg[1]; qlcnic_83xx_config_led() 1563 cmd.req.arg[3] = adapter->ahw->mbox_reg[2]; qlcnic_83xx_config_led() 1565 cmd.req.arg[4] = adapter->ahw->mbox_reg[3]; qlcnic_83xx_config_led() 1566 status = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_config_led() 1570 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_config_led() 1622 struct qlcnic_cmd_args cmd; qlcnic_83xx_initialize_nic() local 1629 status = qlcnic_alloc_mbx_args(&cmd, adapter, qlcnic_83xx_initialize_nic() 1632 status = qlcnic_alloc_mbx_args(&cmd, adapter, qlcnic_83xx_initialize_nic() 1638 cmd.req.arg[1] = QLC_REGISTER_LB_IDC | QLC_INIT_FW_RESOURCES; qlcnic_83xx_initialize_nic() 1641 cmd.req.arg[1] |= QLC_REGISTER_DCB_AEN; qlcnic_83xx_initialize_nic() 1643 status = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_initialize_nic() 1649 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_initialize_nic() 1654 struct qlcnic_cmd_args cmd; qlcnic_83xx_set_port_config() local 1657 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_SET_PORT_CONFIG); qlcnic_83xx_set_port_config() 1661 cmd.req.arg[1] = adapter->ahw->port_config; qlcnic_83xx_set_port_config() 1662 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_set_port_config() 1665 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_set_port_config() 1671 struct qlcnic_cmd_args cmd; qlcnic_83xx_get_port_config() local 1674 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_PORT_CONFIG); qlcnic_83xx_get_port_config() 1678 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_get_port_config() 1682 adapter->ahw->port_config = cmd.rsp.arg[1]; qlcnic_83xx_get_port_config() 1683 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_get_port_config() 1691 struct qlcnic_cmd_args cmd; qlcnic_83xx_setup_link_event() local 1693 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_LINK_EVENT); qlcnic_83xx_setup_link_event() 1698 cmd.req.arg[1] = (enable ? 1 : 0) | BIT_8 | temp; qlcnic_83xx_setup_link_event() 1699 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_setup_link_event() 1703 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_setup_link_event() 1722 struct qlcnic_cmd_args *cmd = NULL; qlcnic_83xx_nic_set_promisc() local 1729 cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC); qlcnic_83xx_nic_set_promisc() 1730 if (!cmd) qlcnic_83xx_nic_set_promisc() 1733 err = qlcnic_alloc_mbx_args(cmd, adapter, qlcnic_83xx_nic_set_promisc() 1738 cmd->type = QLC_83XX_MBX_CMD_NO_WAIT; qlcnic_83xx_nic_set_promisc() 1744 cmd->req.arg[1] = mode | temp; qlcnic_83xx_nic_set_promisc() 1745 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_83xx_nic_set_promisc() 1749 qlcnic_free_mbx_args(cmd); qlcnic_83xx_nic_set_promisc() 1752 kfree(cmd); qlcnic_83xx_nic_set_promisc() 1976 struct qlcnic_cmd_args cmd; qlcnic_83xx_config_ipaddr() local 1978 err = qlcnic_alloc_mbx_args(&cmd, adapter, qlcnic_83xx_config_ipaddr() 1986 cmd.req.arg[1] = 1 | temp; qlcnic_83xx_config_ipaddr() 1988 cmd.req.arg[1] = 2 | temp; qlcnic_83xx_config_ipaddr() 1999 memcpy(&cmd.req.arg[2], &temp_ip, sizeof(u32)); qlcnic_83xx_config_ipaddr() 2000 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_config_ipaddr() 2006 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_config_ipaddr() 2013 struct qlcnic_cmd_args cmd; qlcnic_83xx_config_hw_lro() local 2021 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_CONFIGURE_HW_LRO); qlcnic_83xx_config_hw_lro() 2027 cmd.req.arg[1] = arg1; qlcnic_83xx_config_hw_lro() 2029 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_config_hw_lro() 2032 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_config_hw_lro() 2041 struct qlcnic_cmd_args cmd; qlcnic_83xx_config_rss() local 2046 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_CONFIGURE_RSS); qlcnic_83xx_config_rss() 2062 cmd.req.arg[1] = (adapter->recv_ctx->context_id); qlcnic_83xx_config_rss() 2063 cmd.req.arg[2] = word; qlcnic_83xx_config_rss() 2064 memcpy(&cmd.req.arg[4], key, sizeof(key)); qlcnic_83xx_config_rss() 2066 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_config_rss() 2070 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_config_rss() 2090 struct qlcnic_cmd_args *cmd = NULL; qlcnic_83xx_sre_macaddr_change() local 2098 cmd = kzalloc(sizeof(*cmd), GFP_ATOMIC); qlcnic_83xx_sre_macaddr_change() 2099 if (!cmd) qlcnic_83xx_sre_macaddr_change() 2102 err = qlcnic_alloc_mbx_args(cmd, adapter, QLCNIC_CMD_CONFIG_MAC_VLAN); qlcnic_83xx_sre_macaddr_change() 2106 cmd->type = QLC_83XX_MBX_CMD_NO_WAIT; qlcnic_83xx_sre_macaddr_change() 2112 cmd->req.arg[1] = op | (1 << 8); qlcnic_83xx_sre_macaddr_change() 2114 cmd->req.arg[1] |= temp; qlcnic_83xx_sre_macaddr_change() 2122 buf = &cmd->req.arg[2]; qlcnic_83xx_sre_macaddr_change() 2124 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_83xx_sre_macaddr_change() 2128 qlcnic_free_mbx_args(cmd); qlcnic_83xx_sre_macaddr_change() 2130 kfree(cmd); qlcnic_83xx_sre_macaddr_change() 2143 u8 type, struct qlcnic_cmd_args *cmd) qlcnic_83xx_configure_mac() 2148 memcpy(&cmd->req.arg[2], mac, sizeof(u32)); qlcnic_83xx_configure_mac() 2149 memcpy(&cmd->req.arg[3], &mac[4], sizeof(u16)); qlcnic_83xx_configure_mac() 2152 cmd->req.arg[1] = type; qlcnic_83xx_configure_mac() 2159 struct qlcnic_cmd_args cmd; qlcnic_83xx_get_mac_address() local 2163 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_MAC_ADDRESS); qlcnic_83xx_get_mac_address() 2167 qlcnic_83xx_configure_mac(adapter, mac, QLCNIC_GET_CURRENT_MAC, &cmd); qlcnic_83xx_get_mac_address() 2168 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_get_mac_address() 2171 mac_low = cmd.rsp.arg[1]; qlcnic_83xx_get_mac_address() 2172 mac_high = cmd.rsp.arg[2]; qlcnic_83xx_get_mac_address() 2183 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_get_mac_address() 2190 struct qlcnic_cmd_args cmd; qlcnic_83xx_set_rx_intr_coal() local 2194 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_CONFIG_INTR_COAL); qlcnic_83xx_set_rx_intr_coal() 2199 cmd.req.arg[1] = QLCNIC_INTR_COAL_TYPE_RX | temp << 16; qlcnic_83xx_set_rx_intr_coal() 2201 cmd.req.arg[2] = coal->rx_packets | temp << 16; qlcnic_83xx_set_rx_intr_coal() 2202 cmd.req.arg[3] = coal->flag; qlcnic_83xx_set_rx_intr_coal() 2204 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_set_rx_intr_coal() 2209 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_set_rx_intr_coal() 2217 struct qlcnic_cmd_args cmd; qlcnic_83xx_set_tx_intr_coal() local 2221 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_CONFIG_INTR_COAL); qlcnic_83xx_set_tx_intr_coal() 2226 cmd.req.arg[1] = QLCNIC_INTR_COAL_TYPE_TX | temp << 16; qlcnic_83xx_set_tx_intr_coal() 2228 cmd.req.arg[2] = coal->tx_packets | temp << 16; qlcnic_83xx_set_tx_intr_coal() 2229 cmd.req.arg[3] = coal->flag; qlcnic_83xx_set_tx_intr_coal() 2231 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_set_tx_intr_coal() 2236 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_set_tx_intr_coal() 2369 struct qlcnic_cmd_args cmd; qlcnic_83xx_set_nic_info() local 2378 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_SET_NIC_INFO); qlcnic_83xx_set_nic_info() 2382 cmd.req.arg[1] = (nic->pci_func << 16); qlcnic_83xx_set_nic_info() 2383 cmd.req.arg[2] = 0x1 << 16; qlcnic_83xx_set_nic_info() 2384 cmd.req.arg[3] = nic->phys_port | (nic->switch_mode << 16); qlcnic_83xx_set_nic_info() 2385 cmd.req.arg[4] = nic->capabilities; qlcnic_83xx_set_nic_info() 2386 cmd.req.arg[5] = (nic->max_mac_filters & 0xFF) | ((nic->max_mtu) << 16); qlcnic_83xx_set_nic_info() 2387 cmd.req.arg[6] = (nic->max_tx_ques) | ((nic->max_rx_ques) << 16); qlcnic_83xx_set_nic_info() 2388 cmd.req.arg[7] = (nic->min_tx_bw) | ((nic->max_tx_bw) << 16); qlcnic_83xx_set_nic_info() 2390 cmd.req.arg[i] = 0; qlcnic_83xx_set_nic_info() 2392 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_set_nic_info() 2400 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_set_nic_info() 2411 struct qlcnic_cmd_args cmd; qlcnic_83xx_get_nic_info() local 2414 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_NIC_INFO); qlcnic_83xx_get_nic_info() 2420 cmd.req.arg[1] = op | BIT_31 | temp; qlcnic_83xx_get_nic_info() 2422 cmd.req.arg[1] = ahw->pci_func << 16; qlcnic_83xx_get_nic_info() 2424 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_get_nic_info() 2431 npar_info->op_type = cmd.rsp.arg[1]; qlcnic_83xx_get_nic_info() 2432 npar_info->pci_func = cmd.rsp.arg[2] & 0xFFFF; qlcnic_83xx_get_nic_info() 2433 npar_info->op_mode = (cmd.rsp.arg[2] & 0xFFFF0000) >> 16; qlcnic_83xx_get_nic_info() 2434 npar_info->phys_port = cmd.rsp.arg[3] & 0xFFFF; qlcnic_83xx_get_nic_info() 2435 npar_info->switch_mode = (cmd.rsp.arg[3] & 0xFFFF0000) >> 16; qlcnic_83xx_get_nic_info() 2436 npar_info->capabilities = cmd.rsp.arg[4]; qlcnic_83xx_get_nic_info() 2437 npar_info->max_mac_filters = cmd.rsp.arg[5] & 0xFF; qlcnic_83xx_get_nic_info() 2438 npar_info->max_mtu = (cmd.rsp.arg[5] & 0xFFFF0000) >> 16; qlcnic_83xx_get_nic_info() 2439 npar_info->max_tx_ques = cmd.rsp.arg[6] & 0xFFFF; qlcnic_83xx_get_nic_info() 2440 npar_info->max_rx_ques = (cmd.rsp.arg[6] & 0xFFFF0000) >> 16; qlcnic_83xx_get_nic_info() 2441 npar_info->min_tx_bw = cmd.rsp.arg[7] & 0xFFFF; qlcnic_83xx_get_nic_info() 2442 npar_info->max_tx_bw = (cmd.rsp.arg[7] & 0xFFFF0000) >> 16; qlcnic_83xx_get_nic_info() 2443 if (cmd.rsp.arg[8] & 0x1) qlcnic_83xx_get_nic_info() 2444 npar_info->max_bw_reg_offset = (cmd.rsp.arg[8] & 0x7FFE) >> 1; qlcnic_83xx_get_nic_info() 2445 if (cmd.rsp.arg[8] & 0x10000) { qlcnic_83xx_get_nic_info() 2446 temp = (cmd.rsp.arg[8] & 0x7FFE0000) >> 17; qlcnic_83xx_get_nic_info() 2450 memcpy(ahw->extra_capability, &cmd.rsp.arg[16], qlcnic_83xx_get_nic_info() 2454 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_get_nic_info() 2489 struct qlcnic_cmd_args cmd; qlcnic_83xx_get_pci_info() local 2493 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_PCI_INFO); qlcnic_83xx_get_pci_info() 2497 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_get_pci_info() 2501 ahw->max_pci_func = cmd.rsp.arg[1] & 0xFF; qlcnic_83xx_get_pci_info() 2503 pci_info->id = cmd.rsp.arg[i] & 0xFFFF; qlcnic_83xx_get_pci_info() 2504 pci_info->active = (cmd.rsp.arg[i] & 0xFFFF0000) >> 16; qlcnic_83xx_get_pci_info() 2510 pci_info->type = cmd.rsp.arg[i] & 0xFFFF; qlcnic_83xx_get_pci_info() 2513 temp = (cmd.rsp.arg[i] & 0xFFFF0000) >> 16; qlcnic_83xx_get_pci_info() 2516 pci_info->tx_min_bw = cmd.rsp.arg[i] & 0xFFFF; qlcnic_83xx_get_pci_info() 2517 temp = (cmd.rsp.arg[i] & 0xFFFF0000) >> 16; qlcnic_83xx_get_pci_info() 2520 memcpy(pci_info->mac, &cmd.rsp.arg[i], ETH_ALEN - 2); qlcnic_83xx_get_pci_info() 2522 memcpy(pci_info->mac + sizeof(u32), &cmd.rsp.arg[i], 2); qlcnic_83xx_get_pci_info() 2537 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_get_pci_info() 2547 struct qlcnic_cmd_args cmd; qlcnic_83xx_config_intrpt() local 2550 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_CONFIG_INTRPT); qlcnic_83xx_config_intrpt() 2554 cmd.req.arg[1] = max_ints; qlcnic_83xx_config_intrpt() 2557 cmd.req.arg[1] |= (adapter->ahw->pci_func << 8) | BIT_16; qlcnic_83xx_config_intrpt() 2564 cmd.req.arg[index++] = val; qlcnic_83xx_config_intrpt() 2566 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_config_intrpt() 2573 max_ints = cmd.rsp.arg[1]; qlcnic_83xx_config_intrpt() 2575 val = cmd.rsp.arg[index]; qlcnic_83xx_config_intrpt() 2585 temp = cmd.rsp.arg[index + 1]; qlcnic_83xx_config_intrpt() 2594 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_config_intrpt() 2716 u32 cmd; qlcnic_83xx_enable_flash_write() local 2717 cmd = adapter->ahw->fdt.write_statusreg_cmd; qlcnic_83xx_enable_flash_write() 2719 (QLC_83XX_FLASH_FDT_WRITE_DEF_SIG | cmd)); qlcnic_83xx_enable_flash_write() 2801 u32 reversed_addr, addr1, addr2, cmd; qlcnic_83xx_erase_flash_sector() local 2832 cmd = QLC_83XX_FLASH_FDT_ERASE_DEF_SIG | adapter->ahw->fdt.erase_cmd; qlcnic_83xx_erase_flash_sector() 2834 qlcnic_83xx_wrt_reg_indirect(adapter, QLC_83XX_FLASH_ADDR, cmd); qlcnic_83xx_erase_flash_sector() 3173 struct qlcnic_cmd_args cmd; qlcnic_83xx_test_link() local 3187 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_LINK_STATUS); qlcnic_83xx_test_link() 3191 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_test_link() 3197 config = cmd.rsp.arg[1]; qlcnic_83xx_test_link() 3215 config = cmd.rsp.arg[3]; qlcnic_83xx_test_link() 3248 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_test_link() 3407 static inline u64 *qlcnic_83xx_copy_stats(struct qlcnic_cmd_args *cmd, qlcnic_83xx_copy_stats() argument 3413 low = cmd->rsp.arg[index]; qlcnic_83xx_copy_stats() 3414 hi = cmd->rsp.arg[index + 1]; qlcnic_83xx_copy_stats() 3421 struct qlcnic_cmd_args *cmd, u64 *data, qlcnic_83xx_fill_stats() 3427 err = qlcnic_issue_cmd(adapter, cmd); qlcnic_83xx_fill_stats() 3434 total_regs = cmd->rsp.num; qlcnic_83xx_fill_stats() 3439 data = qlcnic_83xx_copy_stats(cmd, data, k); qlcnic_83xx_fill_stats() 3443 data = qlcnic_83xx_copy_stats(cmd, data, k); qlcnic_83xx_fill_stats() 3447 data = qlcnic_83xx_copy_stats(cmd, data, k); qlcnic_83xx_fill_stats() 3450 data = qlcnic_83xx_copy_stats(cmd, data, k); qlcnic_83xx_fill_stats() 3454 data = qlcnic_83xx_copy_stats(cmd, data, k); qlcnic_83xx_fill_stats() 3457 data = qlcnic_83xx_copy_stats(cmd, data, k); qlcnic_83xx_fill_stats() 3460 data = qlcnic_83xx_copy_stats(cmd, data, k); qlcnic_83xx_fill_stats() 3464 data = qlcnic_83xx_copy_stats(cmd, data, k); qlcnic_83xx_fill_stats() 3467 data = qlcnic_83xx_copy_stats(cmd, data, k); qlcnic_83xx_fill_stats() 3478 struct qlcnic_cmd_args cmd; qlcnic_83xx_get_stats() local 3482 ret = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_STATISTICS); qlcnic_83xx_get_stats() 3486 cmd.req.arg[1] = BIT_1 | (adapter->tx_ring->ctx_id << 16); qlcnic_83xx_get_stats() 3487 cmd.rsp.num = QLC_83XX_TX_STAT_REGS; qlcnic_83xx_get_stats() 3488 data = qlcnic_83xx_fill_stats(adapter, &cmd, data, qlcnic_83xx_get_stats() 3495 cmd.req.arg[1] = BIT_2 | (adapter->portnum << 16); qlcnic_83xx_get_stats() 3496 cmd.rsp.num = QLC_83XX_MAC_STAT_REGS; qlcnic_83xx_get_stats() 3497 memset(cmd.rsp.arg, 0, sizeof(u32) * cmd.rsp.num); qlcnic_83xx_get_stats() 3498 data = qlcnic_83xx_fill_stats(adapter, &cmd, data, qlcnic_83xx_get_stats() 3505 cmd.req.arg[1] = adapter->recv_ctx->context_id << 16; qlcnic_83xx_get_stats() 3506 cmd.rsp.num = QLC_83XX_RX_STAT_REGS; qlcnic_83xx_get_stats() 3507 memset(cmd.rsp.arg, 0, sizeof(u32) * cmd.rsp.num); qlcnic_83xx_get_stats() 3508 data = qlcnic_83xx_fill_stats(adapter, &cmd, data, qlcnic_83xx_get_stats() 3513 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_get_stats() 3557 struct qlcnic_cmd_args cmd; qlcnic_83xx_interrupt_test() local 3580 ret = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_INTRPT_TEST); qlcnic_83xx_interrupt_test() 3589 cmd.req.arg[1] = 1; qlcnic_83xx_interrupt_test() 3590 cmd.req.arg[2] = intrpt_id; qlcnic_83xx_interrupt_test() 3591 cmd.req.arg[3] = BIT_0; qlcnic_83xx_interrupt_test() 3593 ret = qlcnic_issue_cmd(adapter, &cmd); qlcnic_83xx_interrupt_test() 3594 data = cmd.rsp.arg[2]; qlcnic_83xx_interrupt_test() 3611 qlcnic_free_mbx_args(&cmd); qlcnic_83xx_interrupt_test() 3806 struct qlcnic_cmd_args *cmd) qlcnic_83xx_notify_cmd_completion() 3808 atomic_set(&cmd->rsp_status, QLC_83XX_MBX_RESPONSE_ARRIVED); qlcnic_83xx_notify_cmd_completion() 3810 if (cmd->type == QLC_83XX_MBX_CMD_NO_WAIT) { qlcnic_83xx_notify_cmd_completion() 3811 qlcnic_free_mbx_args(cmd); qlcnic_83xx_notify_cmd_completion() 3812 kfree(cmd); qlcnic_83xx_notify_cmd_completion() 3815 complete(&cmd->completion); qlcnic_83xx_notify_cmd_completion() 3822 struct qlcnic_cmd_args *cmd = NULL; qlcnic_83xx_flush_mbx_queue() local 3827 cmd = list_entry(head->next, struct qlcnic_cmd_args, list); qlcnic_83xx_flush_mbx_queue() 3829 __func__, cmd->cmd_op); qlcnic_83xx_flush_mbx_queue() 3830 list_del(&cmd->list); qlcnic_83xx_flush_mbx_queue() 3832 qlcnic_83xx_notify_cmd_completion(adapter, cmd); qlcnic_83xx_flush_mbx_queue() 3867 struct qlcnic_cmd_args *cmd) qlcnic_83xx_dequeue_mbx_cmd() 3873 list_del(&cmd->list); qlcnic_83xx_dequeue_mbx_cmd() 3878 qlcnic_83xx_notify_cmd_completion(adapter, cmd); qlcnic_83xx_dequeue_mbx_cmd() 3882 struct qlcnic_cmd_args *cmd) qlcnic_83xx_encode_mbx_cmd() 3888 if (cmd->op_type != QLC_83XX_MBX_POST_BC_OP) { qlcnic_83xx_encode_mbx_cmd() 3889 mbx_cmd = cmd->req.arg[0]; qlcnic_83xx_encode_mbx_cmd() 3891 for (i = 1; i < cmd->req.num; i++) qlcnic_83xx_encode_mbx_cmd() 3892 writel(cmd->req.arg[i], QLCNIC_MBX_HOST(ahw, i)); qlcnic_83xx_encode_mbx_cmd() 3896 total_size = cmd->pay_size + hdr_size; qlcnic_83xx_encode_mbx_cmd() 3905 mbx_cmd |= cmd->func_num << 5; qlcnic_83xx_encode_mbx_cmd() 3910 writel(*(cmd->hdr++), QLCNIC_MBX_HOST(ahw, i)); qlcnic_83xx_encode_mbx_cmd() 3911 for (j = 0; j < cmd->pay_size; j++, i++) qlcnic_83xx_encode_mbx_cmd() 3912 writel(*(cmd->pay++), QLCNIC_MBX_HOST(ahw, i)); qlcnic_83xx_encode_mbx_cmd() 3931 struct qlcnic_cmd_args *cmd, qlcnic_83xx_enqueue_mbx_cmd() 3937 atomic_set(&cmd->rsp_status, QLC_83XX_MBX_RESPONSE_WAIT); qlcnic_83xx_enqueue_mbx_cmd() 3938 init_completion(&cmd->completion); qlcnic_83xx_enqueue_mbx_cmd() 3939 cmd->rsp_opcode = QLC_83XX_MBX_RESPONSE_UNKNOWN; qlcnic_83xx_enqueue_mbx_cmd() 3943 list_add_tail(&cmd->list, &mbx->cmd_q); qlcnic_83xx_enqueue_mbx_cmd() 3945 cmd->total_cmds = mbx->num_cmds; qlcnic_83xx_enqueue_mbx_cmd() 3946 *timeout = cmd->total_cmds * QLC_83XX_MBX_TIMEOUT; qlcnic_83xx_enqueue_mbx_cmd() 3958 struct qlcnic_cmd_args *cmd) qlcnic_83xx_check_mac_rcode() 3963 if (cmd->cmd_op == QLCNIC_CMD_CONFIG_MAC_VLAN) { qlcnic_83xx_check_mac_rcode() 3969 cmd->rsp_opcode = QLCNIC_RCODE_SUCCESS; qlcnic_83xx_check_mac_rcode() 3978 struct qlcnic_cmd_args *cmd) qlcnic_83xx_decode_mbx_rsp() 3987 qlcnic_83xx_get_mbx_data(adapter, cmd); qlcnic_83xx_decode_mbx_rsp() 3992 cmd->rsp_opcode = QLCNIC_RCODE_SUCCESS; qlcnic_83xx_decode_mbx_rsp() 3995 if (!qlcnic_83xx_check_mac_rcode(adapter, cmd)) qlcnic_83xx_decode_mbx_rsp() 3999 __func__, cmd->cmd_op, cmd->type, ahw->pci_func, qlcnic_83xx_decode_mbx_rsp() 4001 cmd->rsp_opcode = QLC_83XX_MBX_RESPONSE_FAILED; qlcnic_83xx_decode_mbx_rsp() 4002 qlcnic_dump_mbx(adapter, cmd); qlcnic_83xx_decode_mbx_rsp() 4031 struct qlcnic_cmd_args *cmd = NULL; qlcnic_83xx_mailbox_worker() local 4049 cmd = list_entry(head->next, struct qlcnic_cmd_args, list); qlcnic_83xx_mailbox_worker() 4053 mbx_ops->encode_cmd(adapter, cmd); qlcnic_83xx_mailbox_worker() 4058 mbx_ops->decode_resp(adapter, cmd); qlcnic_83xx_mailbox_worker() 4062 __func__, cmd->cmd_op, cmd->type, ahw->pci_func, qlcnic_83xx_mailbox_worker() 4066 qlcnic_83xx_get_mbx_data(adapter, cmd); qlcnic_83xx_mailbox_worker() 4067 qlcnic_dump_mbx(adapter, cmd); qlcnic_83xx_mailbox_worker() 4070 cmd->rsp_opcode = QLCNIC_RCODE_TIMEOUT; qlcnic_83xx_mailbox_worker() 4072 mbx_ops->dequeue_cmd(adapter, cmd); qlcnic_83xx_mailbox_worker() 446 qlcnic_83xx_get_mbx_data(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_83xx_get_mbx_data() argument 795 qlcnic_dump_mbx(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_dump_mbx() argument 821 qlcnic_83xx_poll_for_mbx_completion(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_83xx_poll_for_mbx_completion() argument 845 qlcnic_83xx_issue_cmd(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_83xx_issue_cmd() argument 2142 qlcnic_83xx_configure_mac(struct qlcnic_adapter *adapter, u8 *mac, u8 type, struct qlcnic_cmd_args *cmd) qlcnic_83xx_configure_mac() argument 3420 qlcnic_83xx_fill_stats(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd, u64 *data, int type, int *ret) qlcnic_83xx_fill_stats() argument 3805 qlcnic_83xx_notify_cmd_completion(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_83xx_notify_cmd_completion() argument 3866 qlcnic_83xx_dequeue_mbx_cmd(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_83xx_dequeue_mbx_cmd() argument 3881 qlcnic_83xx_encode_mbx_cmd(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_83xx_encode_mbx_cmd() argument 3930 qlcnic_83xx_enqueue_mbx_cmd(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd, unsigned long *timeout) qlcnic_83xx_enqueue_mbx_cmd() argument 3957 qlcnic_83xx_check_mac_rcode(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_83xx_check_mac_rcode() argument 3977 qlcnic_83xx_decode_mbx_rsp(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_83xx_decode_mbx_rsp() argument
|
H A D | qlcnic_sriov_common.c | 232 struct qlcnic_cmd_args cmd; qlcnic_sriov_cleanup_list() local 242 cmd.req.arg = (u32 *)trans->req_pay; qlcnic_sriov_cleanup_list() 243 cmd.rsp.arg = (u32 *)trans->rsp_pay; qlcnic_sriov_cleanup_list() 244 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_cleanup_list() 306 struct qlcnic_cmd_args cmd; qlcnic_sriov_post_bc_msg() local 310 memset(&cmd, 0, sizeof(struct qlcnic_cmd_args)); qlcnic_sriov_post_bc_msg() 311 cmd.hdr = hdr; qlcnic_sriov_post_bc_msg() 312 cmd.pay = pay; qlcnic_sriov_post_bc_msg() 313 cmd.pay_size = size; qlcnic_sriov_post_bc_msg() 314 cmd.func_num = pci_func; qlcnic_sriov_post_bc_msg() 315 cmd.op_type = QLC_83XX_MBX_POST_BC_OP; qlcnic_sriov_post_bc_msg() 316 cmd.cmd_op = ((struct qlcnic_bc_hdr *)hdr)->cmd_op; qlcnic_sriov_post_bc_msg() 318 err = mbx->ops->enqueue_cmd(adapter, &cmd, &timeout); qlcnic_sriov_post_bc_msg() 322 __func__, cmd.cmd_op, cmd.type, ahw->pci_func, qlcnic_sriov_post_bc_msg() 327 if (!wait_for_completion_timeout(&cmd.completion, timeout)) { qlcnic_sriov_post_bc_msg() 330 __func__, cmd.cmd_op, cmd.type, ahw->pci_func, qlcnic_sriov_post_bc_msg() 335 return cmd.rsp_opcode; qlcnic_sriov_post_bc_msg() 352 struct qlcnic_cmd_args cmd; qlcnic_sriov_get_vf_vport_info() local 356 err = qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_GET_NIC_INFO); qlcnic_sriov_get_vf_vport_info() 360 cmd.req.arg[1] = vport_id << 16 | 0x1; qlcnic_sriov_get_vf_vport_info() 361 err = qlcnic_issue_cmd(adapter, &cmd); qlcnic_sriov_get_vf_vport_info() 365 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_get_vf_vport_info() 369 status = cmd.rsp.arg[2] & 0xffff; qlcnic_sriov_get_vf_vport_info() 371 npar_info->min_tx_bw = MSW(cmd.rsp.arg[2]); qlcnic_sriov_get_vf_vport_info() 373 npar_info->max_tx_bw = LSW(cmd.rsp.arg[3]); qlcnic_sriov_get_vf_vport_info() 375 npar_info->max_tx_ques = MSW(cmd.rsp.arg[3]); qlcnic_sriov_get_vf_vport_info() 377 npar_info->max_tx_mac_filters = LSW(cmd.rsp.arg[4]); qlcnic_sriov_get_vf_vport_info() 379 npar_info->max_rx_mcast_mac_filters = MSW(cmd.rsp.arg[4]); qlcnic_sriov_get_vf_vport_info() 381 npar_info->max_rx_ucast_mac_filters = LSW(cmd.rsp.arg[5]); qlcnic_sriov_get_vf_vport_info() 383 npar_info->max_rx_ip_addr = MSW(cmd.rsp.arg[5]); qlcnic_sriov_get_vf_vport_info() 385 npar_info->max_rx_lro_flow = LSW(cmd.rsp.arg[6]); qlcnic_sriov_get_vf_vport_info() 387 npar_info->max_rx_status_rings = MSW(cmd.rsp.arg[6]); qlcnic_sriov_get_vf_vport_info() 389 npar_info->max_rx_buf_rings = LSW(cmd.rsp.arg[7]); qlcnic_sriov_get_vf_vport_info() 391 npar_info->max_rx_ques = MSW(cmd.rsp.arg[7]); qlcnic_sriov_get_vf_vport_info() 392 npar_info->max_tx_vlan_keys = LSW(cmd.rsp.arg[8]); qlcnic_sriov_get_vf_vport_info() 393 npar_info->max_local_ipv6_addrs = MSW(cmd.rsp.arg[8]); qlcnic_sriov_get_vf_vport_info() 394 npar_info->max_remote_ipv6_addrs = LSW(cmd.rsp.arg[9]); qlcnic_sriov_get_vf_vport_info() 411 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_get_vf_vport_info() 416 struct qlcnic_cmd_args *cmd) qlcnic_sriov_set_pvid_mode() 418 adapter->rx_pvid = MSW(cmd->rsp.arg[1]) & 0xffff; qlcnic_sriov_set_pvid_mode() 424 struct qlcnic_cmd_args *cmd) qlcnic_sriov_set_guest_vlan_mode() 433 sriov->any_vlan = cmd->rsp.arg[2] & 0xf; qlcnic_sriov_set_guest_vlan_mode() 434 sriov->num_allowed_vlans = cmd->rsp.arg[2] >> 16; qlcnic_sriov_set_guest_vlan_mode() 448 vlans = (u16 *)&cmd->rsp.arg[3]; qlcnic_sriov_set_guest_vlan_mode() 458 struct qlcnic_cmd_args cmd; qlcnic_sriov_get_vf_acl() local 461 memset(&cmd, 0, sizeof(cmd)); qlcnic_sriov_get_vf_acl() 462 ret = qlcnic_sriov_alloc_bc_mbx_args(&cmd, QLCNIC_BC_CMD_GET_ACL); qlcnic_sriov_get_vf_acl() 466 ret = qlcnic_issue_cmd(adapter, &cmd); qlcnic_sriov_get_vf_acl() 471 sriov->vlan_mode = cmd.rsp.arg[1] & 0x3; qlcnic_sriov_get_vf_acl() 474 ret = qlcnic_sriov_set_guest_vlan_mode(adapter, &cmd); qlcnic_sriov_get_vf_acl() 477 ret = qlcnic_sriov_set_pvid_mode(adapter, &cmd); qlcnic_sriov_get_vf_acl() 482 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_get_vf_acl() 716 if (type == mbx_tbl[i].cmd) { qlcnic_sriov_alloc_bc_mbx_args() 743 struct qlcnic_cmd_args *cmd, qlcnic_sriov_prepare_bc_hdr() 754 trans->req_pay = (struct qlcnic_bc_payload *)cmd->req.arg; qlcnic_sriov_prepare_bc_hdr() 755 trans->rsp_pay = (struct qlcnic_bc_payload *)cmd->rsp.arg; qlcnic_sriov_prepare_bc_hdr() 756 num_regs = cmd->req.num; qlcnic_sriov_prepare_bc_hdr() 758 num_regs = cmd->rsp.num; qlcnic_sriov_prepare_bc_hdr() 760 cmd_op = cmd->req.arg[0] & 0xff; qlcnic_sriov_prepare_bc_hdr() 777 cmd->req.arg = (u32 *)trans->req_pay; qlcnic_sriov_prepare_bc_hdr() 778 cmd->rsp.arg = (u32 *)trans->rsp_pay; qlcnic_sriov_prepare_bc_hdr() 779 cmd_op = cmd->req.arg[0] & 0xff; qlcnic_sriov_prepare_bc_hdr() 780 cmd->cmd_op = cmd_op; qlcnic_sriov_prepare_bc_hdr() 785 cmd->req.num = trans->req_pay_size / 4; qlcnic_sriov_prepare_bc_hdr() 786 cmd->rsp.num = trans->rsp_pay_size / 4; qlcnic_sriov_prepare_bc_hdr() 788 cmd->op_type = trans->req_hdr->op_type; qlcnic_sriov_prepare_bc_hdr() 796 hdr[i].op_type = cmd->op_type; qlcnic_sriov_prepare_bc_hdr() 1032 struct qlcnic_cmd_args *cmd) __qlcnic_sriov_process_bc_cmd() 1036 qlcnic_sriov_pf_process_bc_cmd(adapter, trans, cmd); __qlcnic_sriov_process_bc_cmd() 1040 cmd->rsp.arg[0] |= (0x9 << 25); __qlcnic_sriov_process_bc_cmd() 1050 struct qlcnic_cmd_args cmd; qlcnic_sriov_process_bc_cmd() local 1059 memset(&cmd, 0, sizeof(struct qlcnic_cmd_args)); qlcnic_sriov_process_bc_cmd() 1064 if (qlcnic_sriov_prepare_bc_hdr(trans, &cmd, trans->req_hdr->seq_id, qlcnic_sriov_process_bc_cmd() 1068 __qlcnic_sriov_process_bc_cmd(adapter, trans, &cmd); qlcnic_sriov_process_bc_cmd() 1073 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_process_bc_cmd() 1191 struct qlcnic_cmd_args cmd; qlcnic_sriov_handle_bc_cmd() local 1209 memset(&cmd, 0, sizeof(struct qlcnic_cmd_args)); qlcnic_sriov_handle_bc_cmd() 1215 err = qlcnic_sriov_alloc_bc_mbx_args(&cmd, cmd_op); qlcnic_sriov_handle_bc_cmd() 1217 err = qlcnic_alloc_mbx_args(&cmd, adapter, cmd_op); qlcnic_sriov_handle_bc_cmd() 1224 cmd.op_type = hdr->op_type; qlcnic_sriov_handle_bc_cmd() 1225 if (qlcnic_sriov_prepare_bc_hdr(trans, &cmd, hdr->seq_id, qlcnic_sriov_handle_bc_cmd() 1227 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_handle_bc_cmd() 1248 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_handle_bc_cmd() 1323 struct qlcnic_cmd_args cmd; qlcnic_sriov_cfg_bc_intr() local 1329 if (qlcnic_alloc_mbx_args(&cmd, adapter, QLCNIC_CMD_BC_EVENT_SETUP)) qlcnic_sriov_cfg_bc_intr() 1333 cmd.req.arg[1] = (1 << 4) | (1 << 5) | (1 << 6) | (1 << 7); qlcnic_sriov_cfg_bc_intr() 1335 err = qlcnic_83xx_issue_cmd(adapter, &cmd); qlcnic_sriov_cfg_bc_intr() 1343 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_cfg_bc_intr() 1368 struct qlcnic_cmd_args *cmd) __qlcnic_sriov_issue_cmd() 1383 rsp = qlcnic_sriov_prepare_bc_hdr(trans, cmd, seq, QLC_BC_COMMAND); __qlcnic_sriov_issue_cmd() 1390 QLCDB(adapter, DRV, "MBX not Ready!(cmd 0x%x) for VF 0x%x\n", __qlcnic_sriov_issue_cmd() 1391 QLCNIC_MBX_RSP(cmd->req.arg[0]), func); __qlcnic_sriov_issue_cmd() 1398 (cmd->req.arg[0] & 0xffff), func); __qlcnic_sriov_issue_cmd() 1411 rsp_data = cmd->rsp.arg[0]; __qlcnic_sriov_issue_cmd() 1413 opcode = QLCNIC_MBX_RSP(cmd->req.arg[0]); __qlcnic_sriov_issue_cmd() 1419 if (cmd->type == QLC_83XX_MBX_CMD_NO_WAIT) { __qlcnic_sriov_issue_cmd() 1443 if (cmd->type == QLC_83XX_MBX_CMD_NO_WAIT) { __qlcnic_sriov_issue_cmd() 1444 qlcnic_free_mbx_args(cmd); __qlcnic_sriov_issue_cmd() 1445 kfree(cmd); __qlcnic_sriov_issue_cmd() 1453 struct qlcnic_cmd_args *cmd) qlcnic_sriov_issue_cmd() 1455 if (cmd->type == QLC_83XX_MBX_CMD_NO_WAIT) qlcnic_sriov_issue_cmd() 1456 return qlcnic_sriov_async_issue_cmd(adapter, cmd); qlcnic_sriov_issue_cmd() 1458 return __qlcnic_sriov_issue_cmd(adapter, cmd); qlcnic_sriov_issue_cmd() 1463 struct qlcnic_cmd_args cmd; qlcnic_sriov_channel_cfg_cmd() local 1467 memset(&cmd, 0, sizeof(cmd)); qlcnic_sriov_channel_cfg_cmd() 1468 if (qlcnic_sriov_alloc_bc_mbx_args(&cmd, cmd_op)) qlcnic_sriov_channel_cfg_cmd() 1471 ret = qlcnic_issue_cmd(adapter, &cmd); qlcnic_sriov_channel_cfg_cmd() 1479 cmd_op = (cmd.rsp.arg[0] & 0xff); qlcnic_sriov_channel_cfg_cmd() 1480 if (cmd.rsp.arg[0] >> 25 == 2) qlcnic_sriov_channel_cfg_cmd() 1488 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_channel_cfg_cmd() 1593 struct qlcnic_cmd_args *cmd; qlcnic_sriov_handle_async_issue_cmd() local 1597 cmd = entry->cmd; qlcnic_sriov_handle_async_issue_cmd() 1598 __qlcnic_sriov_issue_cmd(adapter, cmd); qlcnic_sriov_handle_async_issue_cmd() 1630 struct qlcnic_cmd_args *cmd) qlcnic_sriov_schedule_async_cmd() 1639 entry->cmd = cmd; qlcnic_sriov_schedule_async_cmd() 1645 struct qlcnic_cmd_args *cmd) qlcnic_sriov_async_issue_cmd() 1654 adapter, cmd); qlcnic_sriov_async_issue_cmd() 2040 struct qlcnic_cmd_args cmd; qlcnic_sriov_cfg_vf_guest_vlan() local 2043 memset(&cmd, 0, sizeof(cmd)); qlcnic_sriov_cfg_vf_guest_vlan() 2052 ret = qlcnic_sriov_alloc_bc_mbx_args(&cmd, qlcnic_sriov_cfg_vf_guest_vlan() 2057 cmd.req.arg[1] = (enable & 1) | vid << 16; qlcnic_sriov_cfg_vf_guest_vlan() 2060 ret = qlcnic_issue_cmd(adapter, &cmd); qlcnic_sriov_cfg_vf_guest_vlan() 2079 qlcnic_free_mbx_args(&cmd); qlcnic_sriov_cfg_vf_guest_vlan() 415 qlcnic_sriov_set_pvid_mode(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_sriov_set_pvid_mode() argument 423 qlcnic_sriov_set_guest_vlan_mode(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_sriov_set_guest_vlan_mode() argument 742 qlcnic_sriov_prepare_bc_hdr(struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd, u16 seq, u8 msg_type) qlcnic_sriov_prepare_bc_hdr() argument 1030 __qlcnic_sriov_process_bc_cmd(struct qlcnic_adapter *adapter, struct qlcnic_bc_trans *trans, struct qlcnic_cmd_args *cmd) __qlcnic_sriov_process_bc_cmd() argument 1367 __qlcnic_sriov_issue_cmd(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) __qlcnic_sriov_issue_cmd() argument 1452 qlcnic_sriov_issue_cmd(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_sriov_issue_cmd() argument 1628 qlcnic_sriov_schedule_async_cmd(struct qlcnic_back_channel *bc, work_func_t func, void *data, struct qlcnic_cmd_args *cmd) qlcnic_sriov_schedule_async_cmd() argument 1644 qlcnic_sriov_async_issue_cmd(struct qlcnic_adapter *adapter, struct qlcnic_cmd_args *cmd) qlcnic_sriov_async_issue_cmd() argument
|
/linux-4.1.27/drivers/net/ethernet/mellanox/mlx5/core/ |
H A D | cmd.c | 97 static struct mlx5_cmd_work_ent *alloc_cmd(struct mlx5_cmd *cmd, alloc_cmd() argument 117 ent->cmd = cmd; alloc_cmd() 123 static u8 alloc_token(struct mlx5_cmd *cmd) alloc_token() argument 127 spin_lock(&cmd->token_lock); alloc_token() 128 cmd->token++; alloc_token() 129 if (cmd->token == 0) alloc_token() 130 cmd->token++; alloc_token() 131 token = cmd->token; alloc_token() 132 spin_unlock(&cmd->token_lock); alloc_token() 137 static int alloc_ent(struct mlx5_cmd *cmd) alloc_ent() argument 142 spin_lock_irqsave(&cmd->alloc_lock, flags); alloc_ent() 143 ret = find_first_bit(&cmd->bitmask, cmd->max_reg_cmds); alloc_ent() 144 if (ret < cmd->max_reg_cmds) alloc_ent() 145 clear_bit(ret, &cmd->bitmask); alloc_ent() 146 spin_unlock_irqrestore(&cmd->alloc_lock, flags); alloc_ent() 148 return ret < cmd->max_reg_cmds ? ret : -ENOMEM; alloc_ent() 151 static void free_ent(struct mlx5_cmd *cmd, int idx) free_ent() argument 155 spin_lock_irqsave(&cmd->alloc_lock, flags); free_ent() 156 set_bit(idx, &cmd->bitmask); free_ent() 157 spin_unlock_irqrestore(&cmd->alloc_lock, flags); free_ent() 160 static struct mlx5_cmd_layout *get_inst(struct mlx5_cmd *cmd, int idx) get_inst() argument 162 return cmd->cmd_buf + (idx << cmd->log_stride); get_inst() 482 struct mlx5_cmd *cmd = ent->cmd; cmd_work_handler() local 483 struct mlx5_core_dev *dev = container_of(cmd, struct mlx5_core_dev, cmd); cmd_work_handler() 487 sem = ent->page_queue ? &cmd->pages_sem : &cmd->sem; cmd_work_handler() 490 ent->idx = alloc_ent(cmd); cmd_work_handler() 497 ent->idx = cmd->max_reg_cmds; cmd_work_handler() 500 ent->token = alloc_token(cmd); cmd_work_handler() 501 cmd->ent_arr[ent->idx] = ent; cmd_work_handler() 502 lay = get_inst(cmd, ent->idx); cmd_work_handler() 516 set_signature(ent, !cmd->checksum_disabled); cmd_work_handler() 526 if (cmd->mode == CMD_MODE_POLLING) { cmd_work_handler() 574 struct mlx5_cmd *cmd = &dev->cmd; wait_func() local 577 if (cmd->mode == CMD_MODE_POLLING) { wait_func() 606 struct mlx5_cmd *cmd = &dev->cmd; mlx5_cmd_invoke() local 616 ent = alloc_cmd(cmd, in, out, uout, uout_size, callback, context, mlx5_cmd_invoke() 627 } else if (!queue_work(cmd->wq, &ent->work)) { mlx5_cmd_invoke() 640 if (op < ARRAY_SIZE(cmd->stats)) { mlx5_cmd_invoke() 641 stats = &cmd->stats[op]; mlx5_cmd_invoke() 666 struct mlx5_cmd_debug *dbg = &dev->cmd.dbg; dbg_write() 767 mailbox->buf = pci_pool_alloc(dev->cmd.pool, flags, alloc_cmd_box() 783 pci_pool_free(dev->cmd.pool, mailbox->buf, mailbox->dma); free_cmd_box() 852 struct mlx5_cmd_debug *dbg = &dev->cmd.dbg; data_write() 887 struct mlx5_cmd_debug *dbg = &dev->cmd.dbg; data_read() 916 struct mlx5_cmd_debug *dbg = &dev->cmd.dbg; outlen_read() 939 struct mlx5_cmd_debug *dbg = &dev->cmd.dbg; outlen_write() 982 struct mlx5_cmd *cmd = &dev->cmd; set_wqname() local 984 snprintf(cmd->wq_name, sizeof(cmd->wq_name), "mlx5_cmd_%s", set_wqname() 990 struct mlx5_cmd_debug *dbg = &dev->cmd.dbg; clean_debug_files() 1001 struct mlx5_cmd_debug *dbg = &dev->cmd.dbg; create_debugfs_files() 1007 dbg->dbg_root = debugfs_create_dir("cmd", dev->priv.dbg_root); create_debugfs_files() 1046 struct mlx5_cmd *cmd = &dev->cmd; mlx5_cmd_use_events() local 1049 for (i = 0; i < cmd->max_reg_cmds; i++) mlx5_cmd_use_events() 1050 down(&cmd->sem); mlx5_cmd_use_events() 1052 down(&cmd->pages_sem); mlx5_cmd_use_events() 1054 flush_workqueue(cmd->wq); mlx5_cmd_use_events() 1056 cmd->mode = CMD_MODE_EVENTS; mlx5_cmd_use_events() 1058 up(&cmd->pages_sem); mlx5_cmd_use_events() 1059 for (i = 0; i < cmd->max_reg_cmds; i++) mlx5_cmd_use_events() 1060 up(&cmd->sem); mlx5_cmd_use_events() 1065 struct mlx5_cmd *cmd = &dev->cmd; mlx5_cmd_use_polling() local 1068 for (i = 0; i < cmd->max_reg_cmds; i++) mlx5_cmd_use_polling() 1069 down(&cmd->sem); mlx5_cmd_use_polling() 1071 down(&cmd->pages_sem); mlx5_cmd_use_polling() 1073 flush_workqueue(cmd->wq); mlx5_cmd_use_polling() 1074 cmd->mode = CMD_MODE_POLLING; mlx5_cmd_use_polling() 1076 up(&cmd->pages_sem); mlx5_cmd_use_polling() 1077 for (i = 0; i < cmd->max_reg_cmds; i++) mlx5_cmd_use_polling() 1078 up(&cmd->sem); mlx5_cmd_use_polling() 1096 struct mlx5_cmd *cmd = &dev->cmd; mlx5_cmd_comp_handler() local 1106 for (i = 0; i < (1 << cmd->log_sz); i++) { mlx5_cmd_comp_handler() 1110 ent = cmd->ent_arr[i]; mlx5_cmd_comp_handler() 1112 sem = &cmd->pages_sem; mlx5_cmd_comp_handler() 1114 sem = &cmd->sem; mlx5_cmd_comp_handler() 1119 if (!cmd->checksum_disabled) mlx5_cmd_comp_handler() 1127 free_ent(cmd, ent->idx); mlx5_cmd_comp_handler() 1130 if (ent->op < ARRAY_SIZE(cmd->stats)) { mlx5_cmd_comp_handler() 1131 stats = &cmd->stats[ent->op]; mlx5_cmd_comp_handler() 1169 struct mlx5_cmd *cmd = &dev->cmd; alloc_msg() local 1173 ent = &cmd->cache.large; alloc_msg() 1175 ent = &cmd->cache.med; alloc_msg() 1273 struct mlx5_cmd *cmd = &dev->cmd; destroy_msg_cache() local 1277 list_for_each_entry_safe(msg, n, &cmd->cache.large.head, list) { destroy_msg_cache() 1282 list_for_each_entry_safe(msg, n, &cmd->cache.med.head, list) { destroy_msg_cache() 1290 struct mlx5_cmd *cmd = &dev->cmd; create_msg_cache() local 1295 spin_lock_init(&cmd->cache.large.lock); create_msg_cache() 1296 INIT_LIST_HEAD(&cmd->cache.large.head); create_msg_cache() 1297 spin_lock_init(&cmd->cache.med.lock); create_msg_cache() 1298 INIT_LIST_HEAD(&cmd->cache.med.head); create_msg_cache() 1306 msg->cache = &cmd->cache.large; create_msg_cache() 1307 list_add_tail(&msg->list, &cmd->cache.large.head); create_msg_cache() 1316 msg->cache = &cmd->cache.med; create_msg_cache() 1317 list_add_tail(&msg->list, &cmd->cache.med.head); create_msg_cache() 1327 static int alloc_cmd_page(struct mlx5_core_dev *dev, struct mlx5_cmd *cmd) alloc_cmd_page() argument 1331 cmd->cmd_alloc_buf = dma_zalloc_coherent(ddev, MLX5_ADAPTER_PAGE_SIZE, alloc_cmd_page() 1332 &cmd->alloc_dma, GFP_KERNEL); alloc_cmd_page() 1333 if (!cmd->cmd_alloc_buf) alloc_cmd_page() 1337 if (!((uintptr_t)cmd->cmd_alloc_buf & (MLX5_ADAPTER_PAGE_SIZE - 1))) { alloc_cmd_page() 1338 cmd->cmd_buf = cmd->cmd_alloc_buf; alloc_cmd_page() 1339 cmd->dma = cmd->alloc_dma; alloc_cmd_page() 1340 cmd->alloc_size = MLX5_ADAPTER_PAGE_SIZE; alloc_cmd_page() 1344 dma_free_coherent(ddev, MLX5_ADAPTER_PAGE_SIZE, cmd->cmd_alloc_buf, alloc_cmd_page() 1345 cmd->alloc_dma); alloc_cmd_page() 1346 cmd->cmd_alloc_buf = dma_zalloc_coherent(ddev, alloc_cmd_page() 1348 &cmd->alloc_dma, GFP_KERNEL); alloc_cmd_page() 1349 if (!cmd->cmd_alloc_buf) alloc_cmd_page() 1352 cmd->cmd_buf = PTR_ALIGN(cmd->cmd_alloc_buf, MLX5_ADAPTER_PAGE_SIZE); alloc_cmd_page() 1353 cmd->dma = ALIGN(cmd->alloc_dma, MLX5_ADAPTER_PAGE_SIZE); alloc_cmd_page() 1354 cmd->alloc_size = 2 * MLX5_ADAPTER_PAGE_SIZE - 1; alloc_cmd_page() 1358 static void free_cmd_page(struct mlx5_core_dev *dev, struct mlx5_cmd *cmd) free_cmd_page() argument 1362 dma_free_coherent(ddev, cmd->alloc_size, cmd->cmd_alloc_buf, free_cmd_page() 1363 cmd->alloc_dma); free_cmd_page() 1370 struct mlx5_cmd *cmd = &dev->cmd; mlx5_cmd_init() local 1384 cmd->pool = pci_pool_create("mlx5_cmd", dev->pdev, size, align, 0); mlx5_cmd_init() 1385 if (!cmd->pool) mlx5_cmd_init() 1388 err = alloc_cmd_page(dev, cmd); mlx5_cmd_init() 1393 cmd->log_sz = cmd_l >> 4 & 0xf; mlx5_cmd_init() 1394 cmd->log_stride = cmd_l & 0xf; mlx5_cmd_init() 1395 if (1 << cmd->log_sz > MLX5_MAX_COMMANDS) { mlx5_cmd_init() 1397 1 << cmd->log_sz); mlx5_cmd_init() 1402 if (cmd->log_sz + cmd->log_stride > MLX5_ADAPTER_PAGE_SHIFT) { mlx5_cmd_init() 1408 cmd->checksum_disabled = 1; mlx5_cmd_init() 1409 cmd->max_reg_cmds = (1 << cmd->log_sz) - 1; mlx5_cmd_init() 1410 cmd->bitmask = (1 << cmd->max_reg_cmds) - 1; mlx5_cmd_init() 1412 cmd->cmdif_rev = ioread32be(&dev->iseg->cmdif_rev_fw_sub) >> 16; mlx5_cmd_init() 1413 if (cmd->cmdif_rev > CMD_IF_REV) { mlx5_cmd_init() 1415 CMD_IF_REV, cmd->cmdif_rev); mlx5_cmd_init() 1420 spin_lock_init(&cmd->alloc_lock); mlx5_cmd_init() 1421 spin_lock_init(&cmd->token_lock); mlx5_cmd_init() 1422 for (i = 0; i < ARRAY_SIZE(cmd->stats); i++) mlx5_cmd_init() 1423 spin_lock_init(&cmd->stats[i].lock); mlx5_cmd_init() 1425 sema_init(&cmd->sem, cmd->max_reg_cmds); mlx5_cmd_init() 1426 sema_init(&cmd->pages_sem, 1); mlx5_cmd_init() 1428 cmd_h = (u32)((u64)(cmd->dma) >> 32); mlx5_cmd_init() 1429 cmd_l = (u32)(cmd->dma); mlx5_cmd_init() 1442 mlx5_core_dbg(dev, "descriptor at dma 0x%llx\n", (unsigned long long)(cmd->dma)); mlx5_cmd_init() 1444 cmd->mode = CMD_MODE_POLLING; mlx5_cmd_init() 1453 cmd->wq = create_singlethread_workqueue(cmd->wq_name); mlx5_cmd_init() 1454 if (!cmd->wq) { mlx5_cmd_init() 1469 destroy_workqueue(cmd->wq); mlx5_cmd_init() 1475 free_cmd_page(dev, cmd); mlx5_cmd_init() 1478 pci_pool_destroy(cmd->pool); mlx5_cmd_init() 1486 struct mlx5_cmd *cmd = &dev->cmd; mlx5_cmd_cleanup() local 1489 destroy_workqueue(cmd->wq); mlx5_cmd_cleanup() 1491 free_cmd_page(dev, cmd); mlx5_cmd_cleanup() 1492 pci_pool_destroy(cmd->pool); mlx5_cmd_cleanup()
|
H A D | Makefile | 3 mlx5_core-y := main.o cmd.o debugfs.o fw.o eq.o uar.o pagealloc.o \
|
/linux-4.1.27/arch/powerpc/platforms/powermac/ |
H A D | pfunc_core.c | 95 static u32 pmf_next32(struct pmf_cmd *cmd) pmf_next32() argument 98 if ((cmd->cmdend - cmd->cmdptr) < 4) { pmf_next32() 99 cmd->error = 1; pmf_next32() 102 value = *((u32 *)cmd->cmdptr); pmf_next32() 103 cmd->cmdptr += 4; pmf_next32() 107 static const void* pmf_next_blob(struct pmf_cmd *cmd, int count) pmf_next_blob() argument 110 if ((cmd->cmdend - cmd->cmdptr) < count) { pmf_next_blob() 111 cmd->error = 1; pmf_next_blob() 114 value = cmd->cmdptr; pmf_next_blob() 115 cmd->cmdptr += count; pmf_next_blob() 123 #define PMF_PARSE_CALL(name, cmd, handlers, p...) \ 125 if (cmd->error) \ 130 return handlers->name(cmd->func, cmd->instdata, \ 131 cmd->args, p); \ 136 static int pmf_parser_write_gpio(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_write_gpio() argument 138 u8 value = (u8)pmf_next32(cmd); pmf_parser_write_gpio() 139 u8 mask = (u8)pmf_next32(cmd); pmf_parser_write_gpio() 143 PMF_PARSE_CALL(write_gpio, cmd, h, value, mask); pmf_parser_write_gpio() 146 static int pmf_parser_read_gpio(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_read_gpio() argument 148 u8 mask = (u8)pmf_next32(cmd); pmf_parser_read_gpio() 149 int rshift = (int)pmf_next32(cmd); pmf_parser_read_gpio() 150 u8 xor = (u8)pmf_next32(cmd); pmf_parser_read_gpio() 155 PMF_PARSE_CALL(read_gpio, cmd, h, mask, rshift, xor); pmf_parser_read_gpio() 158 static int pmf_parser_write_reg32(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_write_reg32() argument 160 u32 offset = pmf_next32(cmd); pmf_parser_write_reg32() 161 u32 value = pmf_next32(cmd); pmf_parser_write_reg32() 162 u32 mask = pmf_next32(cmd); pmf_parser_write_reg32() 167 PMF_PARSE_CALL(write_reg32, cmd, h, offset, value, mask); pmf_parser_write_reg32() 170 static int pmf_parser_read_reg32(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_read_reg32() argument 172 u32 offset = pmf_next32(cmd); pmf_parser_read_reg32() 176 PMF_PARSE_CALL(read_reg32, cmd, h, offset); pmf_parser_read_reg32() 180 static int pmf_parser_write_reg16(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_write_reg16() argument 182 u32 offset = pmf_next32(cmd); pmf_parser_write_reg16() 183 u16 value = (u16)pmf_next32(cmd); pmf_parser_write_reg16() 184 u16 mask = (u16)pmf_next32(cmd); pmf_parser_write_reg16() 189 PMF_PARSE_CALL(write_reg16, cmd, h, offset, value, mask); pmf_parser_write_reg16() 192 static int pmf_parser_read_reg16(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_read_reg16() argument 194 u32 offset = pmf_next32(cmd); pmf_parser_read_reg16() 198 PMF_PARSE_CALL(read_reg16, cmd, h, offset); pmf_parser_read_reg16() 202 static int pmf_parser_write_reg8(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_write_reg8() argument 204 u32 offset = pmf_next32(cmd); pmf_parser_write_reg8() 205 u8 value = (u16)pmf_next32(cmd); pmf_parser_write_reg8() 206 u8 mask = (u16)pmf_next32(cmd); pmf_parser_write_reg8() 211 PMF_PARSE_CALL(write_reg8, cmd, h, offset, value, mask); pmf_parser_write_reg8() 214 static int pmf_parser_read_reg8(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_read_reg8() argument 216 u32 offset = pmf_next32(cmd); pmf_parser_read_reg8() 220 PMF_PARSE_CALL(read_reg8, cmd, h, offset); pmf_parser_read_reg8() 223 static int pmf_parser_delay(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_delay() argument 225 u32 duration = pmf_next32(cmd); pmf_parser_delay() 229 PMF_PARSE_CALL(delay, cmd, h, duration); pmf_parser_delay() 232 static int pmf_parser_wait_reg32(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_wait_reg32() argument 234 u32 offset = pmf_next32(cmd); pmf_parser_wait_reg32() 235 u32 value = pmf_next32(cmd); pmf_parser_wait_reg32() 236 u32 mask = pmf_next32(cmd); pmf_parser_wait_reg32() 241 PMF_PARSE_CALL(wait_reg32, cmd, h, offset, value, mask); pmf_parser_wait_reg32() 244 static int pmf_parser_wait_reg16(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_wait_reg16() argument 246 u32 offset = pmf_next32(cmd); pmf_parser_wait_reg16() 247 u16 value = (u16)pmf_next32(cmd); pmf_parser_wait_reg16() 248 u16 mask = (u16)pmf_next32(cmd); pmf_parser_wait_reg16() 253 PMF_PARSE_CALL(wait_reg16, cmd, h, offset, value, mask); pmf_parser_wait_reg16() 256 static int pmf_parser_wait_reg8(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_wait_reg8() argument 258 u32 offset = pmf_next32(cmd); pmf_parser_wait_reg8() 259 u8 value = (u8)pmf_next32(cmd); pmf_parser_wait_reg8() 260 u8 mask = (u8)pmf_next32(cmd); pmf_parser_wait_reg8() 265 PMF_PARSE_CALL(wait_reg8, cmd, h, offset, value, mask); pmf_parser_wait_reg8() 268 static int pmf_parser_read_i2c(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_read_i2c() argument 270 u32 bytes = pmf_next32(cmd); pmf_parser_read_i2c() 274 PMF_PARSE_CALL(read_i2c, cmd, h, bytes); pmf_parser_read_i2c() 277 static int pmf_parser_write_i2c(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_write_i2c() argument 279 u32 bytes = pmf_next32(cmd); pmf_parser_write_i2c() 280 const void *blob = pmf_next_blob(cmd, bytes); pmf_parser_write_i2c() 285 PMF_PARSE_CALL(write_i2c, cmd, h, bytes, blob); pmf_parser_write_i2c() 289 static int pmf_parser_rmw_i2c(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_rmw_i2c() argument 291 u32 maskbytes = pmf_next32(cmd); pmf_parser_rmw_i2c() 292 u32 valuesbytes = pmf_next32(cmd); pmf_parser_rmw_i2c() 293 u32 totalbytes = pmf_next32(cmd); pmf_parser_rmw_i2c() 294 const void *maskblob = pmf_next_blob(cmd, maskbytes); pmf_parser_rmw_i2c() 295 const void *valuesblob = pmf_next_blob(cmd, valuesbytes); pmf_parser_rmw_i2c() 303 PMF_PARSE_CALL(rmw_i2c, cmd, h, maskbytes, valuesbytes, totalbytes, pmf_parser_rmw_i2c() 307 static int pmf_parser_read_cfg(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_read_cfg() argument 309 u32 offset = pmf_next32(cmd); pmf_parser_read_cfg() 310 u32 bytes = pmf_next32(cmd); pmf_parser_read_cfg() 314 PMF_PARSE_CALL(read_cfg, cmd, h, offset, bytes); pmf_parser_read_cfg() 318 static int pmf_parser_write_cfg(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_write_cfg() argument 320 u32 offset = pmf_next32(cmd); pmf_parser_write_cfg() 321 u32 bytes = pmf_next32(cmd); pmf_parser_write_cfg() 322 const void *blob = pmf_next_blob(cmd, bytes); pmf_parser_write_cfg() 327 PMF_PARSE_CALL(write_cfg, cmd, h, offset, bytes, blob); pmf_parser_write_cfg() 330 static int pmf_parser_rmw_cfg(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_rmw_cfg() argument 332 u32 offset = pmf_next32(cmd); pmf_parser_rmw_cfg() 333 u32 maskbytes = pmf_next32(cmd); pmf_parser_rmw_cfg() 334 u32 valuesbytes = pmf_next32(cmd); pmf_parser_rmw_cfg() 335 u32 totalbytes = pmf_next32(cmd); pmf_parser_rmw_cfg() 336 const void *maskblob = pmf_next_blob(cmd, maskbytes); pmf_parser_rmw_cfg() 337 const void *valuesblob = pmf_next_blob(cmd, valuesbytes); pmf_parser_rmw_cfg() 345 PMF_PARSE_CALL(rmw_cfg, cmd, h, offset, maskbytes, valuesbytes, pmf_parser_rmw_cfg() 350 static int pmf_parser_read_i2c_sub(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_read_i2c_sub() argument 352 u8 subaddr = (u8)pmf_next32(cmd); pmf_parser_read_i2c_sub() 353 u32 bytes = pmf_next32(cmd); pmf_parser_read_i2c_sub() 358 PMF_PARSE_CALL(read_i2c_sub, cmd, h, subaddr, bytes); pmf_parser_read_i2c_sub() 361 static int pmf_parser_write_i2c_sub(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_write_i2c_sub() argument 363 u8 subaddr = (u8)pmf_next32(cmd); pmf_parser_write_i2c_sub() 364 u32 bytes = pmf_next32(cmd); pmf_parser_write_i2c_sub() 365 const void *blob = pmf_next_blob(cmd, bytes); pmf_parser_write_i2c_sub() 371 PMF_PARSE_CALL(write_i2c_sub, cmd, h, subaddr, bytes, blob); pmf_parser_write_i2c_sub() 374 static int pmf_parser_set_i2c_mode(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_set_i2c_mode() argument 376 u32 mode = pmf_next32(cmd); pmf_parser_set_i2c_mode() 380 PMF_PARSE_CALL(set_i2c_mode, cmd, h, mode); pmf_parser_set_i2c_mode() 384 static int pmf_parser_rmw_i2c_sub(struct pmf_cmd *cmd, struct pmf_handlers *h) pmf_parser_rmw_i2c_sub() argument 386 u8 subaddr = (u8)pmf_next32(cmd); pmf_parser_rmw_i2c_sub() 387 u32 maskbytes = pmf_next32(cmd); pmf_parser_rmw_i2c_sub() 388 u32 valuesbytes = pmf_next32(cmd); pmf_parser_rmw_i2c_sub() 389 u32 totalbytes = pmf_next32(cmd); pmf_parser_rmw_i2c_sub() 390 const void *maskblob = pmf_next_blob(cmd, maskbytes); pmf_parser_rmw_i2c_sub() 391 const void *valuesblob = pmf_next_blob(cmd, valuesbytes); pmf_parser_rmw_i2c_sub() 399 PMF_PARSE_CALL(rmw_i2c_sub, cmd, h, subaddr, maskbytes, valuesbytes, pmf_parser_rmw_i2c_sub() 403 static int pmf_parser_read_reg32_msrx(struct pmf_cmd *cmd, pmf_parser_read_reg32_msrx() argument 406 u32 offset = pmf_next32(cmd); pmf_parser_read_reg32_msrx() 407 u32 mask = pmf_next32(cmd); pmf_parser_read_reg32_msrx() 408 u32 shift = pmf_next32(cmd); pmf_parser_read_reg32_msrx() 409 u32 xor = pmf_next32(cmd); pmf_parser_read_reg32_msrx() 414 PMF_PARSE_CALL(read_reg32_msrx, cmd, h, offset, mask, shift, xor); pmf_parser_read_reg32_msrx() 417 static int pmf_parser_read_reg16_msrx(struct pmf_cmd *cmd, pmf_parser_read_reg16_msrx() argument 420 u32 offset = pmf_next32(cmd); pmf_parser_read_reg16_msrx() 421 u32 mask = pmf_next32(cmd); pmf_parser_read_reg16_msrx() 422 u32 shift = pmf_next32(cmd); pmf_parser_read_reg16_msrx() 423 u32 xor = pmf_next32(cmd); pmf_parser_read_reg16_msrx() 428 PMF_PARSE_CALL(read_reg16_msrx, cmd, h, offset, mask, shift, xor); pmf_parser_read_reg16_msrx() 430 static int pmf_parser_read_reg8_msrx(struct pmf_cmd *cmd, pmf_parser_read_reg8_msrx() argument 433 u32 offset = pmf_next32(cmd); pmf_parser_read_reg8_msrx() 434 u32 mask = pmf_next32(cmd); pmf_parser_read_reg8_msrx() 435 u32 shift = pmf_next32(cmd); pmf_parser_read_reg8_msrx() 436 u32 xor = pmf_next32(cmd); pmf_parser_read_reg8_msrx() 441 PMF_PARSE_CALL(read_reg8_msrx, cmd, h, offset, mask, shift, xor); pmf_parser_read_reg8_msrx() 444 static int pmf_parser_write_reg32_slm(struct pmf_cmd *cmd, pmf_parser_write_reg32_slm() argument 447 u32 offset = pmf_next32(cmd); pmf_parser_write_reg32_slm() 448 u32 shift = pmf_next32(cmd); pmf_parser_write_reg32_slm() 449 u32 mask = pmf_next32(cmd); pmf_parser_write_reg32_slm() 454 PMF_PARSE_CALL(write_reg32_slm, cmd, h, offset, shift, mask); pmf_parser_write_reg32_slm() 457 static int pmf_parser_write_reg16_slm(struct pmf_cmd *cmd, pmf_parser_write_reg16_slm() argument 460 u32 offset = pmf_next32(cmd); pmf_parser_write_reg16_slm() 461 u32 shift = pmf_next32(cmd); pmf_parser_write_reg16_slm() 462 u32 mask = pmf_next32(cmd); pmf_parser_write_reg16_slm() 467 PMF_PARSE_CALL(write_reg16_slm, cmd, h, offset, shift, mask); pmf_parser_write_reg16_slm() 470 static int pmf_parser_write_reg8_slm(struct pmf_cmd *cmd, pmf_parser_write_reg8_slm() argument 473 u32 offset = pmf_next32(cmd); pmf_parser_write_reg8_slm() 474 u32 shift = pmf_next32(cmd); pmf_parser_write_reg8_slm() 475 u32 mask = pmf_next32(cmd); pmf_parser_write_reg8_slm() 480 PMF_PARSE_CALL(write_reg8_slm, cmd, h, offset, shift, mask); pmf_parser_write_reg8_slm() 483 static int pmf_parser_mask_and_compare(struct pmf_cmd *cmd, pmf_parser_mask_and_compare() argument 486 u32 bytes = pmf_next32(cmd); pmf_parser_mask_and_compare() 487 const void *maskblob = pmf_next_blob(cmd, bytes); pmf_parser_mask_and_compare() 488 const void *valuesblob = pmf_next_blob(cmd, bytes); pmf_parser_mask_and_compare() 494 PMF_PARSE_CALL(mask_and_compare, cmd, h, pmf_parser_mask_and_compare() 499 typedef int (*pmf_cmd_parser_t)(struct pmf_cmd *cmd, struct pmf_handlers *h); 582 struct pmf_cmd cmd; pmf_parse_one() local 586 cmd.cmdptr = func->data; pmf_parse_one() 587 cmd.cmdend = func->data + func->length; pmf_parse_one() 588 cmd.func = func; pmf_parse_one() 589 cmd.instdata = instdata; pmf_parse_one() 590 cmd.args = args; pmf_parse_one() 591 cmd.error = 0; pmf_parse_one() 600 while(count-- && cmd.cmdptr < cmd.cmdend) { pmf_parse_one() 602 ccode = pmf_next32(&cmd); pmf_parse_one() 605 count = pmf_next32(&cmd) - 1; pmf_parse_one() 606 ccode = pmf_next32(&cmd); pmf_parse_one() 608 if (cmd.error) { pmf_parse_one() 620 rc = pmf_parsers[ccode](&cmd, handlers); pmf_parse_one() 630 func->length = cmd.cmdptr - func->data; pmf_parse_one()
|
/linux-4.1.27/drivers/char/tpm/ |
H A D | tpm2-cmd.c | 247 struct tpm2_cmd cmd; tpm2_pcr_read() local 253 cmd.header.in = tpm2_pcrread_header; tpm2_pcr_read() 254 cmd.params.pcrread_in.pcr_selects_cnt = cpu_to_be32(1); tpm2_pcr_read() 255 cmd.params.pcrread_in.hash_alg = cpu_to_be16(TPM2_ALG_SHA1); tpm2_pcr_read() 256 cmd.params.pcrread_in.pcr_select_size = TPM2_PCR_SELECT_MIN; tpm2_pcr_read() 258 memset(cmd.params.pcrread_in.pcr_select, 0, tpm2_pcr_read() 259 sizeof(cmd.params.pcrread_in.pcr_select)); tpm2_pcr_read() 260 cmd.params.pcrread_in.pcr_select[pcr_idx >> 3] = 1 << (pcr_idx & 0x7); tpm2_pcr_read() 262 rc = tpm_transmit_cmd(chip, &cmd, sizeof(cmd), tpm2_pcr_read() 265 buf = cmd.params.pcrread_out.digest; tpm2_pcr_read() 294 struct tpm2_cmd cmd; tpm2_pcr_extend() local 297 cmd.header.in = tpm2_pcrextend_header; tpm2_pcr_extend() 298 cmd.params.pcrextend_in.pcr_idx = cpu_to_be32(pcr_idx); tpm2_pcr_extend() 299 cmd.params.pcrextend_in.auth_area_size = tpm2_pcr_extend() 301 cmd.params.pcrextend_in.auth_area.handle = tpm2_pcr_extend() 303 cmd.params.pcrextend_in.auth_area.nonce_size = 0; tpm2_pcr_extend() 304 cmd.params.pcrextend_in.auth_area.attributes = 0; tpm2_pcr_extend() 305 cmd.params.pcrextend_in.auth_area.auth_size = 0; tpm2_pcr_extend() 306 cmd.params.pcrextend_in.digest_cnt = cpu_to_be32(1); tpm2_pcr_extend() 307 cmd.params.pcrextend_in.hash_alg = cpu_to_be16(TPM2_ALG_SHA1); tpm2_pcr_extend() 308 memcpy(cmd.params.pcrextend_in.digest, hash, TPM_DIGEST_SIZE); tpm2_pcr_extend() 310 rc = tpm_transmit_cmd(chip, &cmd, sizeof(cmd), tpm2_pcr_extend() 338 struct tpm2_cmd cmd; tpm2_get_random() local 346 num_bytes = min_t(u32, max, sizeof(cmd.params.getrandom_out.buffer)); tpm2_get_random() 349 max > sizeof(cmd.params.getrandom_out.buffer)) tpm2_get_random() 353 cmd.header.in = tpm2_getrandom_header; tpm2_get_random() 354 cmd.params.getrandom_in.size = cpu_to_be16(num_bytes); tpm2_get_random() 356 err = tpm_transmit_cmd(chip, &cmd, sizeof(cmd), tpm2_get_random() 361 recd = min_t(u32, be16_to_cpu(cmd.params.getrandom_out.size), tpm2_get_random() 363 memcpy(dest, cmd.params.getrandom_out.buffer, recd); tpm2_get_random() 397 struct tpm2_cmd cmd; tpm2_get_tpm_pt() local 400 cmd.header.in = tpm2_get_tpm_pt_header; tpm2_get_tpm_pt() 401 cmd.params.get_tpm_pt_in.cap_id = cpu_to_be32(TPM2_CAP_TPM_PROPERTIES); tpm2_get_tpm_pt() 402 cmd.params.get_tpm_pt_in.property_id = cpu_to_be32(property_id); tpm2_get_tpm_pt() 403 cmd.params.get_tpm_pt_in.property_cnt = cpu_to_be32(1); tpm2_get_tpm_pt() 405 rc = tpm_transmit_cmd(chip, &cmd, sizeof(cmd), desc); tpm2_get_tpm_pt() 407 *value = cmd.params.get_tpm_pt_out.value; tpm2_get_tpm_pt() 434 struct tpm2_cmd cmd; tpm2_startup() local 436 cmd.header.in = tpm2_startup_header; tpm2_startup() 438 cmd.params.startup_in.startup_type = cpu_to_be16(startup_type); tpm2_startup() 439 return tpm_transmit_cmd(chip, &cmd, sizeof(cmd), tpm2_startup() 462 struct tpm2_cmd cmd; tpm2_shutdown() local 465 cmd.header.in = tpm2_shutdown_header; tpm2_shutdown() 466 cmd.params.startup_in.startup_type = cpu_to_be16(shutdown_type); tpm2_shutdown() 468 rc = tpm_transmit_cmd(chip, &cmd, sizeof(cmd), "stopping the TPM"); tpm2_shutdown() 529 struct tpm2_cmd cmd; tpm2_start_selftest() local 531 cmd.header.in = tpm2_selftest_header; tpm2_start_selftest() 532 cmd.params.selftest_in.full_test = full; tpm2_start_selftest() 534 rc = tpm_transmit_cmd(chip, &cmd, TPM2_SELF_TEST_IN_SIZE, tpm2_start_selftest() 565 struct tpm2_cmd cmd; tpm2_do_selftest() local 578 cmd.header.in = tpm2_pcrread_header; tpm2_do_selftest() 579 cmd.params.pcrread_in.pcr_selects_cnt = cpu_to_be32(1); tpm2_do_selftest() 580 cmd.params.pcrread_in.hash_alg = cpu_to_be16(TPM2_ALG_SHA1); tpm2_do_selftest() 581 cmd.params.pcrread_in.pcr_select_size = TPM2_PCR_SELECT_MIN; tpm2_do_selftest() 582 cmd.params.pcrread_in.pcr_select[0] = 0x01; tpm2_do_selftest() 583 cmd.params.pcrread_in.pcr_select[1] = 0x00; tpm2_do_selftest() 584 cmd.params.pcrread_in.pcr_select[2] = 0x00; tpm2_do_selftest() 586 rc = tpm_transmit_cmd(chip, (u8 *) &cmd, sizeof(cmd), NULL); tpm2_do_selftest() 590 rc = be32_to_cpu(cmd.header.out.return_code); tpm2_do_selftest() 627 struct tpm2_cmd cmd; tpm2_probe() local 630 cmd.header.in = tpm2_get_tpm_pt_header; tpm2_probe() 631 cmd.params.get_tpm_pt_in.cap_id = cpu_to_be32(TPM2_CAP_TPM_PROPERTIES); tpm2_probe() 632 cmd.params.get_tpm_pt_in.property_id = cpu_to_be32(0x100); tpm2_probe() 633 cmd.params.get_tpm_pt_in.property_cnt = cpu_to_be32(1); tpm2_probe() 635 rc = tpm_transmit(chip, (const char *) &cmd, sizeof(cmd)); tpm2_probe() 641 if (be16_to_cpu(cmd.header.out.tag) == TPM2_ST_NO_SESSIONS) tpm2_probe()
|
/linux-4.1.27/include/scsi/ |
H A D | scsi_cmnd.h | 147 static inline void *scsi_cmd_priv(struct scsi_cmnd *cmd) scsi_cmd_priv() argument 149 return cmd + 1; scsi_cmd_priv() 153 static inline struct scsi_driver *scsi_cmd_to_driver(struct scsi_cmnd *cmd) scsi_cmd_to_driver() argument 155 return *(struct scsi_driver **)cmd->request->rq_disk->private_data; scsi_cmd_to_driver() 160 extern void scsi_finish_command(struct scsi_cmnd *cmd); 166 extern int scsi_init_io(struct scsi_cmnd *cmd); 168 extern int scsi_dma_map(struct scsi_cmnd *cmd); 169 extern void scsi_dma_unmap(struct scsi_cmnd *cmd); 171 static inline unsigned scsi_sg_count(struct scsi_cmnd *cmd) scsi_sg_count() argument 173 return cmd->sdb.table.nents; scsi_sg_count() 176 static inline struct scatterlist *scsi_sglist(struct scsi_cmnd *cmd) scsi_sglist() argument 178 return cmd->sdb.table.sgl; scsi_sglist() 181 static inline unsigned scsi_bufflen(struct scsi_cmnd *cmd) scsi_bufflen() argument 183 return cmd->sdb.length; scsi_bufflen() 186 static inline void scsi_set_resid(struct scsi_cmnd *cmd, int resid) scsi_set_resid() argument 188 cmd->sdb.resid = resid; scsi_set_resid() 191 static inline int scsi_get_resid(struct scsi_cmnd *cmd) scsi_get_resid() argument 193 return cmd->sdb.resid; scsi_get_resid() 196 #define scsi_for_each_sg(cmd, sg, nseg, __i) \ 197 for_each_sg(scsi_sglist(cmd), sg, nseg, __i) 199 static inline int scsi_bidi_cmnd(struct scsi_cmnd *cmd) scsi_bidi_cmnd() argument 201 return blk_bidi_rq(cmd->request) && scsi_bidi_cmnd() 202 (cmd->request->next_rq->special != NULL); scsi_bidi_cmnd() 205 static inline struct scsi_data_buffer *scsi_in(struct scsi_cmnd *cmd) scsi_in() argument 207 return scsi_bidi_cmnd(cmd) ? scsi_in() 208 cmd->request->next_rq->special : &cmd->sdb; scsi_in() 211 static inline struct scsi_data_buffer *scsi_out(struct scsi_cmnd *cmd) scsi_out() argument 213 return &cmd->sdb; scsi_out() 216 static inline int scsi_sg_copy_from_buffer(struct scsi_cmnd *cmd, scsi_sg_copy_from_buffer() argument 219 return sg_copy_from_buffer(scsi_sglist(cmd), scsi_sg_count(cmd), scsi_sg_copy_from_buffer() 223 static inline int scsi_sg_copy_to_buffer(struct scsi_cmnd *cmd, scsi_sg_copy_to_buffer() argument 226 return sg_copy_to_buffer(scsi_sglist(cmd), scsi_sg_count(cmd), scsi_sg_copy_to_buffer() 308 static inline unsigned scsi_prot_sg_count(struct scsi_cmnd *cmd) scsi_prot_sg_count() argument 310 return cmd->prot_sdb ? cmd->prot_sdb->table.nents : 0; scsi_prot_sg_count() 313 static inline struct scatterlist *scsi_prot_sglist(struct scsi_cmnd *cmd) scsi_prot_sglist() argument 315 return cmd->prot_sdb ? cmd->prot_sdb->table.sgl : NULL; scsi_prot_sglist() 318 static inline struct scsi_data_buffer *scsi_prot(struct scsi_cmnd *cmd) scsi_prot() argument 320 return cmd->prot_sdb; scsi_prot() 323 #define scsi_for_each_prot_sg(cmd, sg, nseg, __i) \ 324 for_each_sg(scsi_prot_sglist(cmd), sg, nseg, __i) 326 static inline void set_msg_byte(struct scsi_cmnd *cmd, char status) set_msg_byte() argument 328 cmd->result = (cmd->result & 0xffff00ff) | (status << 8); set_msg_byte() 331 static inline void set_host_byte(struct scsi_cmnd *cmd, char status) set_host_byte() argument 333 cmd->result = (cmd->result & 0xff00ffff) | (status << 16); set_host_byte() 336 static inline void set_driver_byte(struct scsi_cmnd *cmd, char status) set_driver_byte() argument 338 cmd->result = (cmd->result & 0x00ffffff) | (status << 24); set_driver_byte()
|
/linux-4.1.27/drivers/infiniband/core/ |
H A D | uverbs_cmd.c | 288 struct ib_uverbs_get_context cmd; ib_uverbs_get_context() local 302 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_get_context() 312 INIT_UDATA(&udata, buf + sizeof cmd, ib_uverbs_get_context() 313 (unsigned long) cmd.response + sizeof resp, ib_uverbs_get_context() 314 in_len - sizeof cmd, out_len - sizeof resp); ib_uverbs_get_context() 364 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_get_context() 453 struct ib_uverbs_query_device cmd; ib_uverbs_query_device() local 461 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_query_device() 471 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_query_device() 482 struct ib_uverbs_query_port cmd; ib_uverbs_query_port() local 490 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_query_port() 493 ret = ib_query_port(file->device->ib_dev, cmd.port_num, &attr); ib_uverbs_query_port() 519 cmd.port_num); ib_uverbs_query_port() 521 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_query_port() 532 struct ib_uverbs_alloc_pd cmd; ib_uverbs_alloc_pd() local 542 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_alloc_pd() 545 INIT_UDATA(&udata, buf + sizeof cmd, ib_uverbs_alloc_pd() 546 (unsigned long) cmd.response + sizeof resp, ib_uverbs_alloc_pd() 547 in_len - sizeof cmd, out_len - sizeof resp); ib_uverbs_alloc_pd() 575 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_alloc_pd() 606 struct ib_uverbs_dealloc_pd cmd; ib_uverbs_dealloc_pd() local 610 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_dealloc_pd() 613 uobj = idr_write_uobj(&ib_uverbs_pd_idr, cmd.pd_handle, file->ucontext); ib_uverbs_dealloc_pd() 726 struct ib_uverbs_open_xrcd cmd; ib_uverbs_open_xrcd() local 739 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_open_xrcd() 742 INIT_UDATA(&udata, buf + sizeof cmd, ib_uverbs_open_xrcd() 743 (unsigned long) cmd.response + sizeof resp, ib_uverbs_open_xrcd() 744 in_len - sizeof cmd, out_len - sizeof resp); ib_uverbs_open_xrcd() 748 if (cmd.fd != -1) { ib_uverbs_open_xrcd() 750 f = fdget(cmd.fd); ib_uverbs_open_xrcd() 758 if (!xrcd && !(cmd.oflags & O_CREAT)) { ib_uverbs_open_xrcd() 764 if (xrcd && cmd.oflags & O_EXCL) { ib_uverbs_open_xrcd() 815 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_open_xrcd() 863 struct ib_uverbs_close_xrcd cmd; ib_uverbs_close_xrcd() local 871 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_close_xrcd() 875 uobj = idr_write_uobj(&ib_uverbs_xrcd_idr, cmd.xrcd_handle, file->ucontext); ib_uverbs_close_xrcd() 940 struct ib_uverbs_reg_mr cmd; ib_uverbs_reg_mr() local 951 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_reg_mr() 954 INIT_UDATA(&udata, buf + sizeof cmd, ib_uverbs_reg_mr() 955 (unsigned long) cmd.response + sizeof resp, ib_uverbs_reg_mr() 956 in_len - sizeof cmd, out_len - sizeof resp); ib_uverbs_reg_mr() 958 if ((cmd.start & ~PAGE_MASK) != (cmd.hca_va & ~PAGE_MASK)) ib_uverbs_reg_mr() 961 ret = ib_check_mr_access(cmd.access_flags); ib_uverbs_reg_mr() 972 pd = idr_read_pd(cmd.pd_handle, file->ucontext); ib_uverbs_reg_mr() 978 if (cmd.access_flags & IB_ACCESS_ON_DEMAND) { ib_uverbs_reg_mr() 990 mr = pd->device->reg_user_mr(pd, cmd.start, cmd.length, cmd.hca_va, ib_uverbs_reg_mr() 991 cmd.access_flags, &udata); ib_uverbs_reg_mr() 1013 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_reg_mr() 1049 struct ib_uverbs_rereg_mr cmd; ib_uverbs_rereg_mr() local 1061 if (copy_from_user(&cmd, buf, sizeof(cmd))) ib_uverbs_rereg_mr() 1064 INIT_UDATA(&udata, buf + sizeof(cmd), ib_uverbs_rereg_mr() 1065 (unsigned long) cmd.response + sizeof(resp), ib_uverbs_rereg_mr() 1066 in_len - sizeof(cmd), out_len - sizeof(resp)); ib_uverbs_rereg_mr() 1068 if (cmd.flags & ~IB_MR_REREG_SUPPORTED || !cmd.flags) ib_uverbs_rereg_mr() 1071 if ((cmd.flags & IB_MR_REREG_TRANS) && ib_uverbs_rereg_mr() 1072 (!cmd.start || !cmd.hca_va || 0 >= cmd.length || ib_uverbs_rereg_mr() 1073 (cmd.start & ~PAGE_MASK) != (cmd.hca_va & ~PAGE_MASK))) ib_uverbs_rereg_mr() 1076 uobj = idr_write_uobj(&ib_uverbs_mr_idr, cmd.mr_handle, ib_uverbs_rereg_mr() 1084 if (cmd.flags & IB_MR_REREG_ACCESS) { ib_uverbs_rereg_mr() 1085 ret = ib_check_mr_access(cmd.access_flags); ib_uverbs_rereg_mr() 1090 if (cmd.flags & IB_MR_REREG_PD) { ib_uverbs_rereg_mr() 1091 pd = idr_read_pd(cmd.pd_handle, file->ucontext); ib_uverbs_rereg_mr() 1104 ret = mr->device->rereg_user_mr(mr, cmd.flags, cmd.start, ib_uverbs_rereg_mr() 1105 cmd.length, cmd.hca_va, ib_uverbs_rereg_mr() 1106 cmd.access_flags, pd, &udata); ib_uverbs_rereg_mr() 1108 if (cmd.flags & IB_MR_REREG_PD) { ib_uverbs_rereg_mr() 1121 if (copy_to_user((void __user *)(unsigned long)cmd.response, ib_uverbs_rereg_mr() 1128 if (cmd.flags & IB_MR_REREG_PD) ib_uverbs_rereg_mr() 1142 struct ib_uverbs_dereg_mr cmd; ib_uverbs_dereg_mr() local 1147 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_dereg_mr() 1150 uobj = idr_write_uobj(&ib_uverbs_mr_idr, cmd.mr_handle, file->ucontext); ib_uverbs_dereg_mr() 1180 struct ib_uverbs_alloc_mw cmd; ib_uverbs_alloc_mw() local 1190 if (copy_from_user(&cmd, buf, sizeof(cmd))) ib_uverbs_alloc_mw() 1200 pd = idr_read_pd(cmd.pd_handle, file->ucontext); ib_uverbs_alloc_mw() 1206 mw = pd->device->alloc_mw(pd, cmd.mw_type); ib_uverbs_alloc_mw() 1226 if (copy_to_user((void __user *)(unsigned long)cmd.response, ib_uverbs_alloc_mw() 1262 struct ib_uverbs_dealloc_mw cmd; ib_uverbs_dealloc_mw() local 1267 if (copy_from_user(&cmd, buf, sizeof(cmd))) ib_uverbs_dealloc_mw() 1270 uobj = idr_write_uobj(&ib_uverbs_mw_idr, cmd.mw_handle, file->ucontext); ib_uverbs_dealloc_mw() 1300 struct ib_uverbs_create_comp_channel cmd; ib_uverbs_create_comp_channel() local 1308 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_create_comp_channel() 1322 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_create_comp_channel() 1337 struct ib_uverbs_create_cq cmd; ib_uverbs_create_cq() local 1348 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_create_cq() 1351 INIT_UDATA(&udata, buf + sizeof cmd, ib_uverbs_create_cq() 1352 (unsigned long) cmd.response + sizeof resp, ib_uverbs_create_cq() 1353 in_len - sizeof cmd, out_len - sizeof resp); ib_uverbs_create_cq() 1355 if (cmd.comp_vector >= file->device->num_comp_vectors) ib_uverbs_create_cq() 1362 init_uobj(&obj->uobject, cmd.user_handle, file->ucontext, &cq_lock_class); ib_uverbs_create_cq() 1365 if (cmd.comp_channel >= 0) { ib_uverbs_create_cq() 1366 ev_file = ib_uverbs_lookup_comp_file(cmd.comp_channel); ib_uverbs_create_cq() 1379 cq = file->device->ib_dev->create_cq(file->device->ib_dev, cmd.cqe, ib_uverbs_create_cq() 1380 cmd.comp_vector, ib_uverbs_create_cq() 1403 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_create_cq() 1438 struct ib_uverbs_resize_cq cmd; ib_uverbs_resize_cq() local 1444 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_resize_cq() 1447 INIT_UDATA(&udata, buf + sizeof cmd, ib_uverbs_resize_cq() 1448 (unsigned long) cmd.response + sizeof resp, ib_uverbs_resize_cq() 1449 in_len - sizeof cmd, out_len - sizeof resp); ib_uverbs_resize_cq() 1451 cq = idr_read_cq(cmd.cq_handle, file->ucontext, 0); ib_uverbs_resize_cq() 1455 ret = cq->device->resize_cq(cq, cmd.cqe, &udata); ib_uverbs_resize_cq() 1461 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_resize_cq() 1501 struct ib_uverbs_poll_cq cmd; ib_uverbs_poll_cq() local 1509 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_poll_cq() 1512 cq = idr_read_cq(cmd.cq_handle, file->ucontext, 0); ib_uverbs_poll_cq() 1517 header_ptr = (void __user *)(unsigned long) cmd.response; ib_uverbs_poll_cq() 1521 while (resp.count < cmd.ne) { ib_uverbs_poll_cq() 1552 struct ib_uverbs_req_notify_cq cmd; ib_uverbs_req_notify_cq() local 1555 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_req_notify_cq() 1558 cq = idr_read_cq(cmd.cq_handle, file->ucontext, 0); ib_uverbs_req_notify_cq() 1562 ib_req_notify_cq(cq, cmd.solicited_only ? ib_uverbs_req_notify_cq() 1574 struct ib_uverbs_destroy_cq cmd; ib_uverbs_destroy_cq() local 1582 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_destroy_cq() 1585 uobj = idr_write_uobj(&ib_uverbs_cq_idr, cmd.cq_handle, file->ucontext); ib_uverbs_destroy_cq() 1615 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_destroy_cq() 1626 struct ib_uverbs_create_qp cmd; ib_uverbs_create_qp() local 1643 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_create_qp() 1646 if (cmd.qp_type == IB_QPT_RAW_PACKET && !capable(CAP_NET_RAW)) ib_uverbs_create_qp() 1649 INIT_UDATA(&udata, buf + sizeof cmd, ib_uverbs_create_qp() 1650 (unsigned long) cmd.response + sizeof resp, ib_uverbs_create_qp() 1651 in_len - sizeof cmd, out_len - sizeof resp); ib_uverbs_create_qp() 1657 init_uobj(&obj->uevent.uobject, cmd.user_handle, file->ucontext, &qp_lock_class); ib_uverbs_create_qp() 1660 if (cmd.qp_type == IB_QPT_XRC_TGT) { ib_uverbs_create_qp() 1661 xrcd = idr_read_xrcd(cmd.pd_handle, file->ucontext, &xrcd_uobj); ib_uverbs_create_qp() 1668 if (cmd.qp_type == IB_QPT_XRC_INI) { ib_uverbs_create_qp() 1669 cmd.max_recv_wr = cmd.max_recv_sge = 0; ib_uverbs_create_qp() 1671 if (cmd.is_srq) { ib_uverbs_create_qp() 1672 srq = idr_read_srq(cmd.srq_handle, file->ucontext); ib_uverbs_create_qp() 1679 if (cmd.recv_cq_handle != cmd.send_cq_handle) { ib_uverbs_create_qp() 1680 rcq = idr_read_cq(cmd.recv_cq_handle, file->ucontext, 0); ib_uverbs_create_qp() 1688 scq = idr_read_cq(cmd.send_cq_handle, file->ucontext, !!rcq); ib_uverbs_create_qp() 1690 pd = idr_read_pd(cmd.pd_handle, file->ucontext); ib_uverbs_create_qp() 1705 attr.sq_sig_type = cmd.sq_sig_all ? IB_SIGNAL_ALL_WR : IB_SIGNAL_REQ_WR; ib_uverbs_create_qp() 1706 attr.qp_type = cmd.qp_type; ib_uverbs_create_qp() 1709 attr.cap.max_send_wr = cmd.max_send_wr; ib_uverbs_create_qp() 1710 attr.cap.max_recv_wr = cmd.max_recv_wr; ib_uverbs_create_qp() 1711 attr.cap.max_send_sge = cmd.max_send_sge; ib_uverbs_create_qp() 1712 attr.cap.max_recv_sge = cmd.max_recv_sge; ib_uverbs_create_qp() 1713 attr.cap.max_inline_data = cmd.max_inline_data; ib_uverbs_create_qp() 1719 if (cmd.qp_type == IB_QPT_XRC_TGT) ib_uverbs_create_qp() 1729 if (cmd.qp_type != IB_QPT_XRC_TGT) { ib_uverbs_create_qp() 1763 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_create_qp() 1820 struct ib_uverbs_open_qp cmd; ib_uverbs_open_qp() local 1833 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_open_qp() 1836 INIT_UDATA(&udata, buf + sizeof cmd, ib_uverbs_open_qp() 1837 (unsigned long) cmd.response + sizeof resp, ib_uverbs_open_qp() 1838 in_len - sizeof cmd, out_len - sizeof resp); ib_uverbs_open_qp() 1844 init_uobj(&obj->uevent.uobject, cmd.user_handle, file->ucontext, &qp_lock_class); ib_uverbs_open_qp() 1847 xrcd = idr_read_xrcd(cmd.pd_handle, file->ucontext, &xrcd_uobj); ib_uverbs_open_qp() 1855 attr.qp_num = cmd.qpn; ib_uverbs_open_qp() 1856 attr.qp_type = cmd.qp_type; ib_uverbs_open_qp() 1879 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_open_qp() 1915 struct ib_uverbs_query_qp cmd; ib_uverbs_query_qp() local 1922 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_query_qp() 1932 qp = idr_read_qp(cmd.qp_handle, file->ucontext); ib_uverbs_query_qp() 1938 ret = ib_query_qp(qp, attr, cmd.attr_mask, init_attr); ib_uverbs_query_qp() 2000 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_query_qp() 2029 struct ib_uverbs_modify_qp cmd; ib_uverbs_modify_qp() local 2035 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_modify_qp() 2038 INIT_UDATA(&udata, buf + sizeof cmd, NULL, in_len - sizeof cmd, ib_uverbs_modify_qp() 2045 qp = idr_read_qp(cmd.qp_handle, file->ucontext); ib_uverbs_modify_qp() 2051 attr->qp_state = cmd.qp_state; ib_uverbs_modify_qp() 2052 attr->cur_qp_state = cmd.cur_qp_state; ib_uverbs_modify_qp() 2053 attr->path_mtu = cmd.path_mtu; ib_uverbs_modify_qp() 2054 attr->path_mig_state = cmd.path_mig_state; ib_uverbs_modify_qp() 2055 attr->qkey = cmd.qkey; ib_uverbs_modify_qp() 2056 attr->rq_psn = cmd.rq_psn; ib_uverbs_modify_qp() 2057 attr->sq_psn = cmd.sq_psn; ib_uverbs_modify_qp() 2058 attr->dest_qp_num = cmd.dest_qp_num; ib_uverbs_modify_qp() 2059 attr->qp_access_flags = cmd.qp_access_flags; ib_uverbs_modify_qp() 2060 attr->pkey_index = cmd.pkey_index; ib_uverbs_modify_qp() 2061 attr->alt_pkey_index = cmd.alt_pkey_index; ib_uverbs_modify_qp() 2062 attr->en_sqd_async_notify = cmd.en_sqd_async_notify; ib_uverbs_modify_qp() 2063 attr->max_rd_atomic = cmd.max_rd_atomic; ib_uverbs_modify_qp() 2064 attr->max_dest_rd_atomic = cmd.max_dest_rd_atomic; ib_uverbs_modify_qp() 2065 attr->min_rnr_timer = cmd.min_rnr_timer; ib_uverbs_modify_qp() 2066 attr->port_num = cmd.port_num; ib_uverbs_modify_qp() 2067 attr->timeout = cmd.timeout; ib_uverbs_modify_qp() 2068 attr->retry_cnt = cmd.retry_cnt; ib_uverbs_modify_qp() 2069 attr->rnr_retry = cmd.rnr_retry; ib_uverbs_modify_qp() 2070 attr->alt_port_num = cmd.alt_port_num; ib_uverbs_modify_qp() 2071 attr->alt_timeout = cmd.alt_timeout; ib_uverbs_modify_qp() 2073 memcpy(attr->ah_attr.grh.dgid.raw, cmd.dest.dgid, 16); ib_uverbs_modify_qp() 2074 attr->ah_attr.grh.flow_label = cmd.dest.flow_label; ib_uverbs_modify_qp() 2075 attr->ah_attr.grh.sgid_index = cmd.dest.sgid_index; ib_uverbs_modify_qp() 2076 attr->ah_attr.grh.hop_limit = cmd.dest.hop_limit; ib_uverbs_modify_qp() 2077 attr->ah_attr.grh.traffic_class = cmd.dest.traffic_class; ib_uverbs_modify_qp() 2078 attr->ah_attr.dlid = cmd.dest.dlid; ib_uverbs_modify_qp() 2079 attr->ah_attr.sl = cmd.dest.sl; ib_uverbs_modify_qp() 2080 attr->ah_attr.src_path_bits = cmd.dest.src_path_bits; ib_uverbs_modify_qp() 2081 attr->ah_attr.static_rate = cmd.dest.static_rate; ib_uverbs_modify_qp() 2082 attr->ah_attr.ah_flags = cmd.dest.is_global ? IB_AH_GRH : 0; ib_uverbs_modify_qp() 2083 attr->ah_attr.port_num = cmd.dest.port_num; ib_uverbs_modify_qp() 2085 memcpy(attr->alt_ah_attr.grh.dgid.raw, cmd.alt_dest.dgid, 16); ib_uverbs_modify_qp() 2086 attr->alt_ah_attr.grh.flow_label = cmd.alt_dest.flow_label; ib_uverbs_modify_qp() 2087 attr->alt_ah_attr.grh.sgid_index = cmd.alt_dest.sgid_index; ib_uverbs_modify_qp() 2088 attr->alt_ah_attr.grh.hop_limit = cmd.alt_dest.hop_limit; ib_uverbs_modify_qp() 2089 attr->alt_ah_attr.grh.traffic_class = cmd.alt_dest.traffic_class; ib_uverbs_modify_qp() 2090 attr->alt_ah_attr.dlid = cmd.alt_dest.dlid; ib_uverbs_modify_qp() 2091 attr->alt_ah_attr.sl = cmd.alt_dest.sl; ib_uverbs_modify_qp() 2092 attr->alt_ah_attr.src_path_bits = cmd.alt_dest.src_path_bits; ib_uverbs_modify_qp() 2093 attr->alt_ah_attr.static_rate = cmd.alt_dest.static_rate; ib_uverbs_modify_qp() 2094 attr->alt_ah_attr.ah_flags = cmd.alt_dest.is_global ? IB_AH_GRH : 0; ib_uverbs_modify_qp() 2095 attr->alt_ah_attr.port_num = cmd.alt_dest.port_num; ib_uverbs_modify_qp() 2098 ret = ib_resolve_eth_l2_attrs(qp, attr, &cmd.attr_mask); ib_uverbs_modify_qp() 2102 modify_qp_mask(qp->qp_type, cmd.attr_mask), &udata); ib_uverbs_modify_qp() 2104 ret = ib_modify_qp(qp, attr, modify_qp_mask(qp->qp_type, cmd.attr_mask)); ib_uverbs_modify_qp() 2125 struct ib_uverbs_destroy_qp cmd; ib_uverbs_destroy_qp() local 2132 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_destroy_qp() 2137 uobj = idr_write_uobj(&ib_uverbs_qp_idr, cmd.qp_handle, file->ucontext); ib_uverbs_destroy_qp() 2172 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_destroy_qp() 2183 struct ib_uverbs_post_send cmd; ib_uverbs_post_send() local 2192 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_post_send() 2195 if (in_len < sizeof cmd + cmd.wqe_size * cmd.wr_count + ib_uverbs_post_send() 2196 cmd.sge_count * sizeof (struct ib_uverbs_sge)) ib_uverbs_post_send() 2199 if (cmd.wqe_size < sizeof (struct ib_uverbs_send_wr)) ib_uverbs_post_send() 2202 user_wr = kmalloc(cmd.wqe_size, GFP_KERNEL); ib_uverbs_post_send() 2206 qp = idr_read_qp(cmd.qp_handle, file->ucontext); ib_uverbs_post_send() 2213 for (i = 0; i < cmd.wr_count; ++i) { ib_uverbs_post_send() 2215 buf + sizeof cmd + i * cmd.wqe_size, ib_uverbs_post_send() 2216 cmd.wqe_size)) { ib_uverbs_post_send() 2221 if (user_wr->num_sge + sg_ind > cmd.sge_count) { ib_uverbs_post_send() 2304 buf + sizeof cmd + ib_uverbs_post_send() 2305 cmd.wr_count * cmd.wqe_size + ib_uverbs_post_send() 2325 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_post_send() 2435 struct ib_uverbs_post_recv cmd; ib_uverbs_post_recv() local 2441 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_post_recv() 2444 wr = ib_uverbs_unmarshall_recv(buf + sizeof cmd, ib_uverbs_post_recv() 2445 in_len - sizeof cmd, cmd.wr_count, ib_uverbs_post_recv() 2446 cmd.sge_count, cmd.wqe_size); ib_uverbs_post_recv() 2450 qp = idr_read_qp(cmd.qp_handle, file->ucontext); ib_uverbs_post_recv() 2466 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_post_recv() 2484 struct ib_uverbs_post_srq_recv cmd; ib_uverbs_post_srq_recv() local 2490 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_post_srq_recv() 2493 wr = ib_uverbs_unmarshall_recv(buf + sizeof cmd, ib_uverbs_post_srq_recv() 2494 in_len - sizeof cmd, cmd.wr_count, ib_uverbs_post_srq_recv() 2495 cmd.sge_count, cmd.wqe_size); ib_uverbs_post_srq_recv() 2499 srq = idr_read_srq(cmd.srq_handle, file->ucontext); ib_uverbs_post_srq_recv() 2515 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_post_srq_recv() 2533 struct ib_uverbs_create_ah cmd; ib_uverbs_create_ah() local 2544 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_create_ah() 2551 init_uobj(uobj, cmd.user_handle, file->ucontext, &ah_lock_class); ib_uverbs_create_ah() 2554 pd = idr_read_pd(cmd.pd_handle, file->ucontext); ib_uverbs_create_ah() 2560 attr.dlid = cmd.attr.dlid; ib_uverbs_create_ah() 2561 attr.sl = cmd.attr.sl; ib_uverbs_create_ah() 2562 attr.src_path_bits = cmd.attr.src_path_bits; ib_uverbs_create_ah() 2563 attr.static_rate = cmd.attr.static_rate; ib_uverbs_create_ah() 2564 attr.ah_flags = cmd.attr.is_global ? IB_AH_GRH : 0; ib_uverbs_create_ah() 2565 attr.port_num = cmd.attr.port_num; ib_uverbs_create_ah() 2566 attr.grh.flow_label = cmd.attr.grh.flow_label; ib_uverbs_create_ah() 2567 attr.grh.sgid_index = cmd.attr.grh.sgid_index; ib_uverbs_create_ah() 2568 attr.grh.hop_limit = cmd.attr.grh.hop_limit; ib_uverbs_create_ah() 2569 attr.grh.traffic_class = cmd.attr.grh.traffic_class; ib_uverbs_create_ah() 2572 memcpy(attr.grh.dgid.raw, cmd.attr.grh.dgid, 16); ib_uverbs_create_ah() 2589 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_create_ah() 2624 struct ib_uverbs_destroy_ah cmd; ib_uverbs_destroy_ah() local 2629 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_destroy_ah() 2632 uobj = idr_write_uobj(&ib_uverbs_ah_idr, cmd.ah_handle, file->ucontext); ib_uverbs_destroy_ah() 2661 struct ib_uverbs_attach_mcast cmd; ib_uverbs_attach_mcast() local 2667 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_attach_mcast() 2670 qp = idr_write_qp(cmd.qp_handle, file->ucontext); ib_uverbs_attach_mcast() 2677 if (cmd.mlid == mcast->lid && ib_uverbs_attach_mcast() 2678 !memcmp(cmd.gid, mcast->gid.raw, sizeof mcast->gid.raw)) { ib_uverbs_attach_mcast() 2689 mcast->lid = cmd.mlid; ib_uverbs_attach_mcast() 2690 memcpy(mcast->gid.raw, cmd.gid, sizeof mcast->gid.raw); ib_uverbs_attach_mcast() 2692 ret = ib_attach_mcast(qp, &mcast->gid, cmd.mlid); ib_uverbs_attach_mcast() 2708 struct ib_uverbs_detach_mcast cmd; ib_uverbs_detach_mcast() local 2714 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_detach_mcast() 2717 qp = idr_write_qp(cmd.qp_handle, file->ucontext); ib_uverbs_detach_mcast() 2721 ret = ib_detach_mcast(qp, (union ib_gid *) cmd.gid, cmd.mlid); ib_uverbs_detach_mcast() 2728 if (cmd.mlid == mcast->lid && ib_uverbs_detach_mcast() 2729 !memcmp(cmd.gid, mcast->gid.raw, sizeof mcast->gid.raw)) { ib_uverbs_detach_mcast() 2788 struct ib_uverbs_create_flow cmd; ib_uverbs_ex_create_flow() local 2800 if (ucore->inlen < sizeof(cmd)) ib_uverbs_ex_create_flow() 2806 err = ib_copy_from_udata(&cmd, ucore, sizeof(cmd)); ib_uverbs_ex_create_flow() 2810 ucore->inbuf += sizeof(cmd); ib_uverbs_ex_create_flow() 2811 ucore->inlen -= sizeof(cmd); ib_uverbs_ex_create_flow() 2813 if (cmd.comp_mask) ib_uverbs_ex_create_flow() 2816 if ((cmd.flow_attr.type == IB_FLOW_ATTR_SNIFFER && ib_uverbs_ex_create_flow() 2820 if (cmd.flow_attr.num_of_specs > IB_FLOW_SPEC_SUPPORT_LAYERS) ib_uverbs_ex_create_flow() 2823 if (cmd.flow_attr.size > ucore->inlen || ib_uverbs_ex_create_flow() 2824 cmd.flow_attr.size > ib_uverbs_ex_create_flow() 2825 (cmd.flow_attr.num_of_specs * sizeof(struct ib_uverbs_flow_spec))) ib_uverbs_ex_create_flow() 2828 if (cmd.flow_attr.reserved[0] || ib_uverbs_ex_create_flow() 2829 cmd.flow_attr.reserved[1]) ib_uverbs_ex_create_flow() 2832 if (cmd.flow_attr.num_of_specs) { ib_uverbs_ex_create_flow() 2833 kern_flow_attr = kmalloc(sizeof(*kern_flow_attr) + cmd.flow_attr.size, ib_uverbs_ex_create_flow() 2838 memcpy(kern_flow_attr, &cmd.flow_attr, sizeof(*kern_flow_attr)); ib_uverbs_ex_create_flow() 2840 cmd.flow_attr.size); ib_uverbs_ex_create_flow() 2844 kern_flow_attr = &cmd.flow_attr; ib_uverbs_ex_create_flow() 2855 qp = idr_read_qp(cmd.qp_handle, file->ucontext); ib_uverbs_ex_create_flow() 2861 flow_attr = kmalloc(sizeof(*flow_attr) + cmd.flow_attr.size, GFP_KERNEL); ib_uverbs_ex_create_flow() 2877 cmd.flow_attr.size > offsetof(struct ib_uverbs_flow_spec, reserved) && ib_uverbs_ex_create_flow() 2878 cmd.flow_attr.size >= ib_uverbs_ex_create_flow() 2885 cmd.flow_attr.size -= ((struct ib_uverbs_flow_spec *)kern_spec)->size; ib_uverbs_ex_create_flow() 2889 if (cmd.flow_attr.size || (i != flow_attr->num_of_specs)) { ib_uverbs_ex_create_flow() 2890 pr_warn("create flow failed, flow %d: %d bytes left from uverb cmd\n", ib_uverbs_ex_create_flow() 2891 i, cmd.flow_attr.size); ib_uverbs_ex_create_flow() 2925 if (cmd.flow_attr.num_of_specs) ib_uverbs_ex_create_flow() 2939 if (cmd.flow_attr.num_of_specs) ib_uverbs_ex_create_flow() 2948 struct ib_uverbs_destroy_flow cmd; ib_uverbs_ex_destroy_flow() local 2953 if (ucore->inlen < sizeof(cmd)) ib_uverbs_ex_destroy_flow() 2956 ret = ib_copy_from_udata(&cmd, ucore, sizeof(cmd)); ib_uverbs_ex_destroy_flow() 2960 if (cmd.comp_mask) ib_uverbs_ex_destroy_flow() 2963 uobj = idr_write_uobj(&ib_uverbs_rule_idr, cmd.flow_handle, ib_uverbs_ex_destroy_flow() 2987 struct ib_uverbs_create_xsrq *cmd, __uverbs_create_xsrq() 3002 init_uobj(&obj->uevent.uobject, cmd->user_handle, file->ucontext, &srq_lock_class); __uverbs_create_xsrq() 3005 if (cmd->srq_type == IB_SRQT_XRC) { __uverbs_create_xsrq() 3006 attr.ext.xrc.xrcd = idr_read_xrcd(cmd->xrcd_handle, file->ucontext, &xrcd_uobj); __uverbs_create_xsrq() 3015 attr.ext.xrc.cq = idr_read_cq(cmd->cq_handle, file->ucontext, 0); __uverbs_create_xsrq() 3022 pd = idr_read_pd(cmd->pd_handle, file->ucontext); __uverbs_create_xsrq() 3030 attr.srq_type = cmd->srq_type; __uverbs_create_xsrq() 3031 attr.attr.max_wr = cmd->max_wr; __uverbs_create_xsrq() 3032 attr.attr.max_sge = cmd->max_sge; __uverbs_create_xsrq() 3033 attr.attr.srq_limit = cmd->srq_limit; __uverbs_create_xsrq() 3046 srq->srq_type = cmd->srq_type; __uverbs_create_xsrq() 3051 if (cmd->srq_type == IB_SRQT_XRC) { __uverbs_create_xsrq() 3070 if (cmd->srq_type == IB_SRQT_XRC) __uverbs_create_xsrq() 3073 if (copy_to_user((void __user *) (unsigned long) cmd->response, __uverbs_create_xsrq() 3079 if (cmd->srq_type == IB_SRQT_XRC) { __uverbs_create_xsrq() 3105 if (cmd->srq_type == IB_SRQT_XRC) __uverbs_create_xsrq() 3109 if (cmd->srq_type == IB_SRQT_XRC) { __uverbs_create_xsrq() 3123 struct ib_uverbs_create_srq cmd; ib_uverbs_create_srq() local 3132 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_create_srq() 3135 xcmd.response = cmd.response; ib_uverbs_create_srq() 3136 xcmd.user_handle = cmd.user_handle; ib_uverbs_create_srq() 3138 xcmd.pd_handle = cmd.pd_handle; ib_uverbs_create_srq() 3139 xcmd.max_wr = cmd.max_wr; ib_uverbs_create_srq() 3140 xcmd.max_sge = cmd.max_sge; ib_uverbs_create_srq() 3141 xcmd.srq_limit = cmd.srq_limit; ib_uverbs_create_srq() 3143 INIT_UDATA(&udata, buf + sizeof cmd, ib_uverbs_create_srq() 3144 (unsigned long) cmd.response + sizeof resp, ib_uverbs_create_srq() 3145 in_len - sizeof cmd, out_len - sizeof resp); ib_uverbs_create_srq() 3157 struct ib_uverbs_create_xsrq cmd; ib_uverbs_create_xsrq() local 3165 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_create_xsrq() 3168 INIT_UDATA(&udata, buf + sizeof cmd, ib_uverbs_create_xsrq() 3169 (unsigned long) cmd.response + sizeof resp, ib_uverbs_create_xsrq() 3170 in_len - sizeof cmd, out_len - sizeof resp); ib_uverbs_create_xsrq() 3172 ret = __uverbs_create_xsrq(file, &cmd, &udata); ib_uverbs_create_xsrq() 3183 struct ib_uverbs_modify_srq cmd; ib_uverbs_modify_srq() local 3189 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_modify_srq() 3192 INIT_UDATA(&udata, buf + sizeof cmd, NULL, in_len - sizeof cmd, ib_uverbs_modify_srq() 3195 srq = idr_read_srq(cmd.srq_handle, file->ucontext); ib_uverbs_modify_srq() 3199 attr.max_wr = cmd.max_wr; ib_uverbs_modify_srq() 3200 attr.srq_limit = cmd.srq_limit; ib_uverbs_modify_srq() 3202 ret = srq->device->modify_srq(srq, &attr, cmd.attr_mask, &udata); ib_uverbs_modify_srq() 3213 struct ib_uverbs_query_srq cmd; ib_uverbs_query_srq() local 3222 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_query_srq() 3225 srq = idr_read_srq(cmd.srq_handle, file->ucontext); ib_uverbs_query_srq() 3242 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_query_srq() 3253 struct ib_uverbs_destroy_srq cmd; ib_uverbs_destroy_srq() local 3262 if (copy_from_user(&cmd, buf, sizeof cmd)) ib_uverbs_destroy_srq() 3265 uobj = idr_write_uobj(&ib_uverbs_srq_idr, cmd.srq_handle, file->ucontext); ib_uverbs_destroy_srq() 3299 if (copy_to_user((void __user *) (unsigned long) cmd.response, ib_uverbs_destroy_srq() 3311 struct ib_uverbs_ex_query_device cmd; ib_uverbs_ex_query_device() local 3317 if (ucore->inlen < sizeof(cmd)) ib_uverbs_ex_query_device() 3320 err = ib_copy_from_udata(&cmd, ucore, sizeof(cmd)); ib_uverbs_ex_query_device() 3324 if (cmd.comp_mask) ib_uverbs_ex_query_device() 3327 if (cmd.reserved) ib_uverbs_ex_query_device() 2986 __uverbs_create_xsrq(struct ib_uverbs_file *file, struct ib_uverbs_create_xsrq *cmd, struct ib_udata *udata) __uverbs_create_xsrq() argument
|
H A D | ucm.c | 390 struct ib_ucm_event_get cmd; ib_ucm_event() local 397 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_event() 428 if (copy_to_user((void __user *)(unsigned long)cmd.response, ib_ucm_event() 435 if (cmd.data_len < uevent->data_len) { ib_ucm_event() 439 if (copy_to_user((void __user *)(unsigned long)cmd.data, ib_ucm_event() 447 if (cmd.info_len < uevent->info_len) { ib_ucm_event() 451 if (copy_to_user((void __user *)(unsigned long)cmd.info, ib_ucm_event() 474 struct ib_ucm_create_id cmd; ib_ucm_create_id() local 482 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_create_id() 491 ctx->uid = cmd.uid; ib_ucm_create_id() 500 if (copy_to_user((void __user *)(unsigned long)cmd.response, ib_ucm_create_id() 521 struct ib_ucm_destroy_id cmd; ib_ucm_destroy_id() local 529 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_destroy_id() 533 ctx = idr_find(&ctx_id_table, cmd.id); ib_ucm_destroy_id() 554 if (copy_to_user((void __user *)(unsigned long)cmd.response, ib_ucm_destroy_id() 567 struct ib_ucm_attr_id cmd; ib_ucm_attr_id() local 574 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_attr_id() 577 ctx = ib_ucm_ctx_get(file, cmd.id); ib_ucm_attr_id() 586 if (copy_to_user((void __user *)(unsigned long)cmd.response, ib_ucm_attr_id() 599 struct ib_ucm_init_qp_attr cmd; ib_ucm_init_qp_attr() local 607 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_init_qp_attr() 610 ctx = ib_ucm_ctx_get(file, cmd.id); ib_ucm_init_qp_attr() 616 qp_attr.qp_state = cmd.qp_state; ib_ucm_init_qp_attr() 623 if (copy_to_user((void __user *)(unsigned long)cmd.response, ib_ucm_init_qp_attr() 647 struct ib_ucm_listen cmd; ib_ucm_listen() local 651 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_listen() 654 ctx = ib_ucm_ctx_get(file, cmd.id); ib_ucm_listen() 658 result = ucm_validate_listen(cmd.service_id, cmd.service_mask); ib_ucm_listen() 662 result = ib_cm_listen(ctx->cm_id, cmd.service_id, cmd.service_mask, ib_ucm_listen() 673 struct ib_ucm_notify cmd; ib_ucm_notify() local 677 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_notify() 680 ctx = ib_ucm_ctx_get(file, cmd.id); ib_ucm_notify() 684 result = ib_cm_notify(ctx->cm_id, (enum ib_event_type) cmd.event); ib_ucm_notify() 738 struct ib_ucm_req cmd; ib_ucm_send_req() local 745 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_send_req() 748 result = ib_ucm_alloc_data(¶m.private_data, cmd.data, cmd.len); ib_ucm_send_req() 752 result = ib_ucm_path_get(¶m.primary_path, cmd.primary_path); ib_ucm_send_req() 756 result = ib_ucm_path_get(¶m.alternate_path, cmd.alternate_path); ib_ucm_send_req() 760 param.private_data_len = cmd.len; ib_ucm_send_req() 761 param.service_id = cmd.sid; ib_ucm_send_req() 762 param.qp_num = cmd.qpn; ib_ucm_send_req() 763 param.qp_type = cmd.qp_type; ib_ucm_send_req() 764 param.starting_psn = cmd.psn; ib_ucm_send_req() 765 param.peer_to_peer = cmd.peer_to_peer; ib_ucm_send_req() 766 param.responder_resources = cmd.responder_resources; ib_ucm_send_req() 767 param.initiator_depth = cmd.initiator_depth; ib_ucm_send_req() 768 param.remote_cm_response_timeout = cmd.remote_cm_response_timeout; ib_ucm_send_req() 769 param.flow_control = cmd.flow_control; ib_ucm_send_req() 770 param.local_cm_response_timeout = cmd.local_cm_response_timeout; ib_ucm_send_req() 771 param.retry_count = cmd.retry_count; ib_ucm_send_req() 772 param.rnr_retry_count = cmd.rnr_retry_count; ib_ucm_send_req() 773 param.max_cm_retries = cmd.max_cm_retries; ib_ucm_send_req() 774 param.srq = cmd.srq; ib_ucm_send_req() 776 ctx = ib_ucm_ctx_get(file, cmd.id); ib_ucm_send_req() 796 struct ib_ucm_rep cmd; ib_ucm_send_rep() local 801 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_send_rep() 804 result = ib_ucm_alloc_data(¶m.private_data, cmd.data, cmd.len); ib_ucm_send_rep() 808 param.qp_num = cmd.qpn; ib_ucm_send_rep() 809 param.starting_psn = cmd.psn; ib_ucm_send_rep() 810 param.private_data_len = cmd.len; ib_ucm_send_rep() 811 param.responder_resources = cmd.responder_resources; ib_ucm_send_rep() 812 param.initiator_depth = cmd.initiator_depth; ib_ucm_send_rep() 813 param.failover_accepted = cmd.failover_accepted; ib_ucm_send_rep() 814 param.flow_control = cmd.flow_control; ib_ucm_send_rep() 815 param.rnr_retry_count = cmd.rnr_retry_count; ib_ucm_send_rep() 816 param.srq = cmd.srq; ib_ucm_send_rep() 818 ctx = ib_ucm_ctx_get(file, cmd.id); ib_ucm_send_rep() 820 ctx->uid = cmd.uid; ib_ucm_send_rep() 836 struct ib_ucm_private_data cmd; ib_ucm_send_private_data() local 841 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_send_private_data() 844 result = ib_ucm_alloc_data(&private_data, cmd.data, cmd.len); ib_ucm_send_private_data() 848 ctx = ib_ucm_ctx_get(file, cmd.id); ib_ucm_send_private_data() 850 result = func(ctx->cm_id, private_data, cmd.len); ib_ucm_send_private_data() 890 struct ib_ucm_info cmd; ib_ucm_send_info() local 895 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_send_info() 898 result = ib_ucm_alloc_data(&data, cmd.data, cmd.data_len); ib_ucm_send_info() 902 result = ib_ucm_alloc_data(&info, cmd.info, cmd.info_len); ib_ucm_send_info() 906 ctx = ib_ucm_ctx_get(file, cmd.id); ib_ucm_send_info() 908 result = func(ctx->cm_id, cmd.status, info, cmd.info_len, ib_ucm_send_info() 909 data, cmd.data_len); ib_ucm_send_info() 939 struct ib_ucm_mra cmd; ib_ucm_send_mra() local 943 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_send_mra() 946 result = ib_ucm_alloc_data(&data, cmd.data, cmd.len); ib_ucm_send_mra() 950 ctx = ib_ucm_ctx_get(file, cmd.id); ib_ucm_send_mra() 952 result = ib_send_cm_mra(ctx->cm_id, cmd.timeout, data, cmd.len); ib_ucm_send_mra() 967 struct ib_ucm_lap cmd; ib_ucm_send_lap() local 971 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_send_lap() 974 result = ib_ucm_alloc_data(&data, cmd.data, cmd.len); ib_ucm_send_lap() 978 result = ib_ucm_path_get(&path, cmd.path); ib_ucm_send_lap() 982 ctx = ib_ucm_ctx_get(file, cmd.id); ib_ucm_send_lap() 984 result = ib_send_cm_lap(ctx->cm_id, path, data, cmd.len); ib_ucm_send_lap() 1001 struct ib_ucm_sidr_req cmd; ib_ucm_send_sidr_req() local 1007 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_send_sidr_req() 1010 result = ib_ucm_alloc_data(¶m.private_data, cmd.data, cmd.len); ib_ucm_send_sidr_req() 1014 result = ib_ucm_path_get(¶m.path, cmd.path); ib_ucm_send_sidr_req() 1018 param.private_data_len = cmd.len; ib_ucm_send_sidr_req() 1019 param.service_id = cmd.sid; ib_ucm_send_sidr_req() 1020 param.timeout_ms = cmd.timeout; ib_ucm_send_sidr_req() 1021 param.max_cm_retries = cmd.max_cm_retries; ib_ucm_send_sidr_req() 1023 ctx = ib_ucm_ctx_get(file, cmd.id); ib_ucm_send_sidr_req() 1041 struct ib_ucm_sidr_rep cmd; ib_ucm_send_sidr_rep() local 1047 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ib_ucm_send_sidr_rep() 1051 cmd.data, cmd.data_len); ib_ucm_send_sidr_rep() 1055 result = ib_ucm_alloc_data(¶m.info, cmd.info, cmd.info_len); ib_ucm_send_sidr_rep() 1059 param.qp_num = cmd.qpn; ib_ucm_send_sidr_rep() 1060 param.qkey = cmd.qkey; ib_ucm_send_sidr_rep() 1061 param.status = cmd.status; ib_ucm_send_sidr_rep() 1062 param.info_length = cmd.info_len; ib_ucm_send_sidr_rep() 1063 param.private_data_len = cmd.data_len; ib_ucm_send_sidr_rep() 1065 ctx = ib_ucm_ctx_get(file, cmd.id); ib_ucm_send_sidr_rep() 1117 if (hdr.cmd >= ARRAY_SIZE(ucm_cmd_table)) ib_ucm_write() 1123 result = ucm_cmd_table[hdr.cmd](file, buf + sizeof(hdr), ib_ucm_write()
|
H A D | ucma.c | 296 struct rdma_ucm_get_event cmd; ucma_get_event() local 303 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_get_event() 334 if (copy_to_user((void __user *)(unsigned long)cmd.response, ucma_get_event() 350 static int ucma_get_qp_type(struct rdma_ucm_create_id *cmd, enum ib_qp_type *qp_type) ucma_get_qp_type() argument 352 switch (cmd->ps) { ucma_get_qp_type() 361 *qp_type = cmd->qp_type; ucma_get_qp_type() 371 struct rdma_ucm_create_id cmd; ucma_create_id() local 380 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_create_id() 383 ret = ucma_get_qp_type(&cmd, &qp_type); ucma_create_id() 393 ctx->uid = cmd.uid; ucma_create_id() 394 ctx->cm_id = rdma_create_id(ucma_event_handler, ctx, cmd.ps, qp_type); ucma_create_id() 401 if (copy_to_user((void __user *)(unsigned long)cmd.response, ucma_create_id() 484 struct rdma_ucm_destroy_id cmd; ucma_destroy_id() local 492 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_destroy_id() 496 ctx = _ucma_find_context(cmd.id, file); ucma_destroy_id() 508 if (copy_to_user((void __user *)(unsigned long)cmd.response, ucma_destroy_id() 518 struct rdma_ucm_bind_ip cmd; ucma_bind_ip() local 522 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_bind_ip() 525 ctx = ucma_get_ctx(file, cmd.id); ucma_bind_ip() 529 ret = rdma_bind_addr(ctx->cm_id, (struct sockaddr *) &cmd.addr); ucma_bind_ip() 537 struct rdma_ucm_bind cmd; ucma_bind() local 542 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_bind() 545 addr = (struct sockaddr *) &cmd.addr; ucma_bind() 546 if (cmd.reserved || !cmd.addr_size || (cmd.addr_size != rdma_addr_size(addr))) ucma_bind() 549 ctx = ucma_get_ctx(file, cmd.id); ucma_bind() 562 struct rdma_ucm_resolve_ip cmd; ucma_resolve_ip() local 566 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_resolve_ip() 569 ctx = ucma_get_ctx(file, cmd.id); ucma_resolve_ip() 573 ret = rdma_resolve_addr(ctx->cm_id, (struct sockaddr *) &cmd.src_addr, ucma_resolve_ip() 574 (struct sockaddr *) &cmd.dst_addr, ucma_resolve_ip() 575 cmd.timeout_ms); ucma_resolve_ip() 584 struct rdma_ucm_resolve_addr cmd; ucma_resolve_addr() local 589 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_resolve_addr() 592 src = (struct sockaddr *) &cmd.src_addr; ucma_resolve_addr() 593 dst = (struct sockaddr *) &cmd.dst_addr; ucma_resolve_addr() 594 if (cmd.reserved || (cmd.src_size && (cmd.src_size != rdma_addr_size(src))) || ucma_resolve_addr() 595 !cmd.dst_size || (cmd.dst_size != rdma_addr_size(dst))) ucma_resolve_addr() 598 ctx = ucma_get_ctx(file, cmd.id); ucma_resolve_addr() 602 ret = rdma_resolve_addr(ctx->cm_id, src, dst, cmd.timeout_ms); ucma_resolve_addr() 611 struct rdma_ucm_resolve_route cmd; ucma_resolve_route() local 615 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_resolve_route() 618 ctx = ucma_get_ctx(file, cmd.id); ucma_resolve_route() 622 ret = rdma_resolve_route(ctx->cm_id, cmd.timeout_ms); ucma_resolve_route() 695 struct rdma_ucm_query cmd; ucma_query_route() local 704 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_query_route() 707 ctx = ucma_get_ctx(file, cmd.id); ucma_query_route() 747 if (copy_to_user((void __user *)(unsigned long)cmd.response, ucma_query_route() 877 struct rdma_ucm_query cmd; ucma_query() local 882 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_query() 885 response = (void __user *)(unsigned long) cmd.response; ucma_query() 886 ctx = ucma_get_ctx(file, cmd.id); ucma_query() 890 switch (cmd.option) { ucma_query() 928 struct rdma_ucm_connect cmd; ucma_connect() local 933 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_connect() 936 if (!cmd.conn_param.valid) ucma_connect() 939 ctx = ucma_get_ctx(file, cmd.id); ucma_connect() 943 ucma_copy_conn_param(ctx->cm_id, &conn_param, &cmd.conn_param); ucma_connect() 952 struct rdma_ucm_listen cmd; ucma_listen() local 956 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_listen() 959 ctx = ucma_get_ctx(file, cmd.id); ucma_listen() 963 ctx->backlog = cmd.backlog > 0 && cmd.backlog < max_backlog ? ucma_listen() 964 cmd.backlog : max_backlog; ucma_listen() 973 struct rdma_ucm_accept cmd; ucma_accept() local 978 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_accept() 981 ctx = ucma_get_ctx(file, cmd.id); ucma_accept() 985 if (cmd.conn_param.valid) { ucma_accept() 986 ucma_copy_conn_param(ctx->cm_id, &conn_param, &cmd.conn_param); ucma_accept() 990 ctx->uid = cmd.uid; ucma_accept() 1002 struct rdma_ucm_reject cmd; ucma_reject() local 1006 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_reject() 1009 ctx = ucma_get_ctx(file, cmd.id); ucma_reject() 1013 ret = rdma_reject(ctx->cm_id, cmd.private_data, cmd.private_data_len); ucma_reject() 1021 struct rdma_ucm_disconnect cmd; ucma_disconnect() local 1025 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_disconnect() 1028 ctx = ucma_get_ctx(file, cmd.id); ucma_disconnect() 1041 struct rdma_ucm_init_qp_attr cmd; ucma_init_qp_attr() local 1050 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_init_qp_attr() 1053 ctx = ucma_get_ctx(file, cmd.id); ucma_init_qp_attr() 1059 qp_attr.qp_state = cmd.qp_state; ucma_init_qp_attr() 1065 if (copy_to_user((void __user *)(unsigned long)cmd.response, ucma_init_qp_attr() 1178 struct rdma_ucm_set_option cmd; ucma_set_option() local 1183 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_set_option() 1186 ctx = ucma_get_ctx(file, cmd.id); ucma_set_option() 1190 optval = memdup_user((void __user *) (unsigned long) cmd.optval, ucma_set_option() 1191 cmd.optlen); ucma_set_option() 1197 ret = ucma_set_option_level(ctx, cmd.level, cmd.optname, optval, ucma_set_option() 1198 cmd.optlen); ucma_set_option() 1209 struct rdma_ucm_notify cmd; ucma_notify() local 1213 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_notify() 1216 ctx = ucma_get_ctx(file, cmd.id); ucma_notify() 1220 ret = rdma_notify(ctx->cm_id, (enum ib_event_type) cmd.event); ucma_notify() 1226 struct rdma_ucm_join_mcast *cmd, int out_len) ucma_process_join() 1237 addr = (struct sockaddr *) &cmd->addr; ucma_process_join() 1238 if (cmd->reserved || !cmd->addr_size || (cmd->addr_size != rdma_addr_size(addr))) ucma_process_join() 1241 ctx = ucma_get_ctx(file, cmd->id); ucma_process_join() 1252 mc->uid = cmd->uid; ucma_process_join() 1253 memcpy(&mc->addr, addr, cmd->addr_size); ucma_process_join() 1259 if (copy_to_user((void __user *)(unsigned long) cmd->response, ucma_process_join() 1288 struct rdma_ucm_join_ip_mcast cmd; ucma_join_ip_multicast() local 1291 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_join_ip_multicast() 1294 join_cmd.response = cmd.response; ucma_join_ip_multicast() 1295 join_cmd.uid = cmd.uid; ucma_join_ip_multicast() 1296 join_cmd.id = cmd.id; ucma_join_ip_multicast() 1297 join_cmd.addr_size = rdma_addr_size((struct sockaddr *) &cmd.addr); ucma_join_ip_multicast() 1299 memcpy(&join_cmd.addr, &cmd.addr, join_cmd.addr_size); ucma_join_ip_multicast() 1308 struct rdma_ucm_join_mcast cmd; ucma_join_multicast() local 1310 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_join_multicast() 1313 return ucma_process_join(file, &cmd, out_len); ucma_join_multicast() 1320 struct rdma_ucm_destroy_id cmd; ucma_leave_multicast() local 1328 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_leave_multicast() 1332 mc = idr_find(&multicast_idr, cmd.id); ucma_leave_multicast() 1358 if (copy_to_user((void __user *)(unsigned long)cmd.response, ucma_leave_multicast() 1401 struct rdma_ucm_migrate_id cmd; ucma_migrate_id() local 1408 if (copy_from_user(&cmd, inbuf, sizeof(cmd))) ucma_migrate_id() 1412 f = fdget(cmd.fd); ucma_migrate_id() 1417 ctx = ucma_get_ctx(f.file->private_data, cmd.id); ucma_migrate_id() 1445 if (copy_to_user((void __user *)(unsigned long)cmd.response, ucma_migrate_id() 1499 if (hdr.cmd >= ARRAY_SIZE(ucma_cmd_table)) ucma_write() 1505 if (!ucma_cmd_table[hdr.cmd]) ucma_write() 1508 ret = ucma_cmd_table[hdr.cmd](file, buf + sizeof(hdr), hdr.in, hdr.out); ucma_write() 1225 ucma_process_join(struct ucma_file *file, struct rdma_ucm_join_mcast *cmd, int out_len) ucma_process_join() argument
|
/linux-4.1.27/drivers/net/wireless/iwlwifi/mvm/ |
H A D | power.c | 82 struct iwl_beacon_filter_cmd *cmd, iwl_mvm_beacon_filter_send_cmd() 86 le32_to_cpu(cmd->ba_enable_beacon_abort)); iwl_mvm_beacon_filter_send_cmd() 88 le32_to_cpu(cmd->ba_escape_timer)); iwl_mvm_beacon_filter_send_cmd() 90 le32_to_cpu(cmd->bf_debug_flag)); iwl_mvm_beacon_filter_send_cmd() 92 le32_to_cpu(cmd->bf_enable_beacon_filter)); iwl_mvm_beacon_filter_send_cmd() 94 le32_to_cpu(cmd->bf_energy_delta)); iwl_mvm_beacon_filter_send_cmd() 96 le32_to_cpu(cmd->bf_escape_timer)); iwl_mvm_beacon_filter_send_cmd() 98 le32_to_cpu(cmd->bf_roaming_energy_delta)); iwl_mvm_beacon_filter_send_cmd() 100 le32_to_cpu(cmd->bf_roaming_state)); iwl_mvm_beacon_filter_send_cmd() 102 le32_to_cpu(cmd->bf_temp_threshold)); iwl_mvm_beacon_filter_send_cmd() 104 le32_to_cpu(cmd->bf_temp_fast_filter)); iwl_mvm_beacon_filter_send_cmd() 106 le32_to_cpu(cmd->bf_temp_slow_filter)); iwl_mvm_beacon_filter_send_cmd() 109 sizeof(struct iwl_beacon_filter_cmd), cmd); iwl_mvm_beacon_filter_send_cmd() 115 struct iwl_beacon_filter_cmd *cmd) iwl_mvm_beacon_filter_set_cqm_params() 120 cmd->bf_energy_delta = iwl_mvm_beacon_filter_set_cqm_params() 123 cmd->bf_roaming_state = iwl_mvm_beacon_filter_set_cqm_params() 126 cmd->ba_enable_beacon_abort = cpu_to_le32(mvmvif->bf_data.ba_enabled); iwl_mvm_beacon_filter_set_cqm_params() 130 struct iwl_mac_power_cmd *cmd) iwl_mvm_power_log() 134 cmd->id_and_color, iwlmvm_mod_params.power_scheme, iwl_mvm_power_log() 135 le16_to_cpu(cmd->flags)); iwl_mvm_power_log() 137 le16_to_cpu(cmd->keep_alive_seconds)); iwl_mvm_power_log() 139 if (!(cmd->flags & cpu_to_le16(POWER_FLAGS_POWER_MANAGEMENT_ENA_MSK))) { iwl_mvm_power_log() 145 le32_to_cpu(cmd->rx_data_timeout)); iwl_mvm_power_log() 147 le32_to_cpu(cmd->tx_data_timeout)); iwl_mvm_power_log() 148 if (cmd->flags & cpu_to_le16(POWER_FLAGS_SKIP_OVER_DTIM_MSK)) iwl_mvm_power_log() 150 cmd->skip_dtim_periods); iwl_mvm_power_log() 151 if (cmd->flags & cpu_to_le16(POWER_FLAGS_LPRX_ENA_MSK)) iwl_mvm_power_log() 153 cmd->lprx_rssi_threshold); iwl_mvm_power_log() 154 if (cmd->flags & cpu_to_le16(POWER_FLAGS_ADVANCE_PM_ENA_MSK)) { iwl_mvm_power_log() 157 le32_to_cpu(cmd->rx_data_timeout_uapsd)); iwl_mvm_power_log() 159 le32_to_cpu(cmd->tx_data_timeout_uapsd)); iwl_mvm_power_log() 160 IWL_DEBUG_POWER(mvm, "QNDP TID = %d\n", cmd->qndp_tid); iwl_mvm_power_log() 161 IWL_DEBUG_POWER(mvm, "ACs flags = 0x%x\n", cmd->uapsd_ac_flags); iwl_mvm_power_log() 162 IWL_DEBUG_POWER(mvm, "Max SP = %d\n", cmd->uapsd_max_sp); iwl_mvm_power_log() 168 struct iwl_mac_power_cmd *cmd) iwl_mvm_power_configure_uapsd() 179 cmd->flags |= iwl_mvm_power_configure_uapsd() 182 cmd->uapsd_ac_flags |= BIT(ac); iwl_mvm_power_configure_uapsd() 189 cmd->qndp_tid = 6; iwl_mvm_power_configure_uapsd() 192 cmd->qndp_tid = 5; iwl_mvm_power_configure_uapsd() 195 cmd->qndp_tid = 0; iwl_mvm_power_configure_uapsd() 198 cmd->qndp_tid = 1; iwl_mvm_power_configure_uapsd() 204 if (!(cmd->flags & cpu_to_le16(POWER_FLAGS_ADVANCE_PM_ENA_MSK))) { iwl_mvm_power_configure_uapsd() 208 cmd->flags |= iwl_mvm_power_configure_uapsd() 214 cmd->flags |= cpu_to_le16(POWER_FLAGS_UAPSD_MISBEHAVING_ENA_MSK); iwl_mvm_power_configure_uapsd() 216 if (cmd->uapsd_ac_flags == (BIT(IEEE80211_AC_VO) | iwl_mvm_power_configure_uapsd() 220 cmd->flags |= cpu_to_le16(POWER_FLAGS_SNOOZE_ENA_MSK); iwl_mvm_power_configure_uapsd() 221 cmd->snooze_interval = cpu_to_le16(IWL_MVM_PS_SNOOZE_INTERVAL); iwl_mvm_power_configure_uapsd() 222 cmd->snooze_window = (mvm->cur_ucode == IWL_UCODE_WOWLAN) ? iwl_mvm_power_configure_uapsd() 227 cmd->uapsd_max_sp = IWL_UAPSD_MAX_SP; iwl_mvm_power_configure_uapsd() 229 if (mvm->cur_ucode == IWL_UCODE_WOWLAN || cmd->flags & iwl_mvm_power_configure_uapsd() 231 cmd->rx_data_timeout_uapsd = iwl_mvm_power_configure_uapsd() 233 cmd->tx_data_timeout_uapsd = iwl_mvm_power_configure_uapsd() 236 cmd->rx_data_timeout_uapsd = iwl_mvm_power_configure_uapsd() 238 cmd->tx_data_timeout_uapsd = iwl_mvm_power_configure_uapsd() 242 if (cmd->flags & cpu_to_le16(POWER_FLAGS_SNOOZE_ENA_MSK)) { iwl_mvm_power_configure_uapsd() 243 cmd->heavy_tx_thld_packets = iwl_mvm_power_configure_uapsd() 245 cmd->heavy_rx_thld_packets = iwl_mvm_power_configure_uapsd() 248 cmd->heavy_tx_thld_packets = iwl_mvm_power_configure_uapsd() 250 cmd->heavy_rx_thld_packets = iwl_mvm_power_configure_uapsd() 253 cmd->heavy_tx_thld_percentage = iwl_mvm_power_configure_uapsd() 255 cmd->heavy_rx_thld_percentage = iwl_mvm_power_configure_uapsd() 331 struct iwl_mac_power_cmd *cmd) iwl_mvm_power_build_cmd() 339 cmd->id_and_color = cpu_to_le32(FW_CMD_ID_AND_COLOR(mvmvif->id, iwl_mvm_power_build_cmd() 353 cmd->keep_alive_seconds = cpu_to_le16(keep_alive); iwl_mvm_power_build_cmd() 358 cmd->flags |= cpu_to_le16(POWER_FLAGS_POWER_SAVE_ENA_MSK); iwl_mvm_power_build_cmd() 364 cmd->flags |= cpu_to_le16(POWER_FLAGS_POWER_MANAGEMENT_ENA_MSK); iwl_mvm_power_build_cmd() 369 cmd->flags |= cpu_to_le16(POWER_FLAGS_LPRX_ENA_MSK); iwl_mvm_power_build_cmd() 370 cmd->lprx_rssi_threshold = POWER_LPRX_RSSI_THRESHOLD; iwl_mvm_power_build_cmd() 380 cmd->skip_dtim_periods = iwl_mvm_power_build_cmd() 382 if (cmd->skip_dtim_periods) iwl_mvm_power_build_cmd() 383 cmd->flags |= iwl_mvm_power_build_cmd() 388 cmd->rx_data_timeout = iwl_mvm_power_build_cmd() 390 cmd->tx_data_timeout = iwl_mvm_power_build_cmd() 393 cmd->rx_data_timeout = iwl_mvm_power_build_cmd() 395 cmd->tx_data_timeout = iwl_mvm_power_build_cmd() 400 iwl_mvm_power_configure_uapsd(mvm, vif, cmd); iwl_mvm_power_build_cmd() 404 cmd->keep_alive_seconds = iwl_mvm_power_build_cmd() 408 cmd->flags |= iwl_mvm_power_build_cmd() 411 cmd->flags &= iwl_mvm_power_build_cmd() 415 cmd->rx_data_timeout = iwl_mvm_power_build_cmd() 418 cmd->tx_data_timeout = iwl_mvm_power_build_cmd() 421 cmd->skip_dtim_periods = mvmvif->dbgfs_pm.skip_dtim_periods; iwl_mvm_power_build_cmd() 424 cmd->flags |= cpu_to_le16(POWER_FLAGS_LPRX_ENA_MSK); iwl_mvm_power_build_cmd() 426 cmd->flags &= cpu_to_le16(~POWER_FLAGS_LPRX_ENA_MSK); iwl_mvm_power_build_cmd() 429 cmd->lprx_rssi_threshold = mvmvif->dbgfs_pm.lprx_rssi_threshold; iwl_mvm_power_build_cmd() 432 cmd->flags |= iwl_mvm_power_build_cmd() 435 cmd->flags &= iwl_mvm_power_build_cmd() 441 cmd->flags |= cpu_to_le16(flag); iwl_mvm_power_build_cmd() 443 cmd->flags &= cpu_to_le16(flag); iwl_mvm_power_build_cmd() 451 struct iwl_mac_power_cmd cmd = {}; iwl_mvm_power_send_cmd() local 453 iwl_mvm_power_build_cmd(mvm, vif, &cmd); iwl_mvm_power_send_cmd() 454 iwl_mvm_power_log(mvm, &cmd); iwl_mvm_power_send_cmd() 456 memcpy(&iwl_mvm_vif_from_mac80211(vif)->mac_pwr_cmd, &cmd, sizeof(cmd)); iwl_mvm_power_send_cmd() 460 sizeof(cmd), &cmd); iwl_mvm_power_send_cmd() 465 struct iwl_device_power_cmd cmd = { iwl_mvm_power_update_device() local 473 cmd.flags |= cpu_to_le16(DEVICE_POWER_FLAGS_CAM_MSK); iwl_mvm_power_update_device() 478 cmd.flags &= iwl_mvm_power_update_device() 483 cmd.flags); iwl_mvm_power_update_device() 485 return iwl_mvm_send_cmd_pdu(mvm, POWER_TABLE_CMD, 0, sizeof(cmd), iwl_mvm_power_update_device() 486 &cmd); iwl_mvm_power_update_device() 514 struct iwl_device_cmd *cmd) iwl_mvm_power_uapsd_misbehaving_ap_notif() 696 struct iwl_mac_power_cmd cmd = {}; iwl_mvm_power_mac_dbgfs_read() local 700 memcpy(&cmd, &mvmvif->mac_pwr_cmd, sizeof(cmd)); iwl_mvm_power_mac_dbgfs_read() 706 le16_to_cpu(cmd.flags)); iwl_mvm_power_mac_dbgfs_read() 708 le16_to_cpu(cmd.keep_alive_seconds)); iwl_mvm_power_mac_dbgfs_read() 710 if (!(cmd.flags & cpu_to_le16(POWER_FLAGS_POWER_MANAGEMENT_ENA_MSK))) iwl_mvm_power_mac_dbgfs_read() 714 (cmd.flags & iwl_mvm_power_mac_dbgfs_read() 717 cmd.skip_dtim_periods); iwl_mvm_power_mac_dbgfs_read() 718 if (!(cmd.flags & cpu_to_le16(POWER_FLAGS_ADVANCE_PM_ENA_MSK))) { iwl_mvm_power_mac_dbgfs_read() 720 le32_to_cpu(cmd.rx_data_timeout)); iwl_mvm_power_mac_dbgfs_read() 722 le32_to_cpu(cmd.tx_data_timeout)); iwl_mvm_power_mac_dbgfs_read() 724 if (cmd.flags & cpu_to_le16(POWER_FLAGS_LPRX_ENA_MSK)) iwl_mvm_power_mac_dbgfs_read() 727 cmd.lprx_rssi_threshold); iwl_mvm_power_mac_dbgfs_read() 729 if (!(cmd.flags & cpu_to_le16(POWER_FLAGS_ADVANCE_PM_ENA_MSK))) iwl_mvm_power_mac_dbgfs_read() 733 le32_to_cpu(cmd.rx_data_timeout_uapsd)); iwl_mvm_power_mac_dbgfs_read() 735 le32_to_cpu(cmd.tx_data_timeout_uapsd)); iwl_mvm_power_mac_dbgfs_read() 736 pos += scnprintf(buf+pos, bufsz-pos, "qndp_tid = %d\n", cmd.qndp_tid); iwl_mvm_power_mac_dbgfs_read() 738 cmd.uapsd_ac_flags); iwl_mvm_power_mac_dbgfs_read() 740 cmd.uapsd_max_sp); iwl_mvm_power_mac_dbgfs_read() 742 cmd.heavy_tx_thld_packets); iwl_mvm_power_mac_dbgfs_read() 744 cmd.heavy_rx_thld_packets); iwl_mvm_power_mac_dbgfs_read() 746 cmd.heavy_tx_thld_percentage); iwl_mvm_power_mac_dbgfs_read() 748 cmd.heavy_rx_thld_percentage); iwl_mvm_power_mac_dbgfs_read() 750 (cmd.flags & iwl_mvm_power_mac_dbgfs_read() 754 if (!(cmd.flags & cpu_to_le16(POWER_FLAGS_SNOOZE_ENA_MSK))) iwl_mvm_power_mac_dbgfs_read() 758 cmd.snooze_interval); iwl_mvm_power_mac_dbgfs_read() 760 cmd.snooze_window); iwl_mvm_power_mac_dbgfs_read() 767 struct iwl_beacon_filter_cmd *cmd) iwl_mvm_beacon_filter_debugfs_parameters() 773 cmd->bf_energy_delta = cpu_to_le32(dbgfs_bf->bf_energy_delta); iwl_mvm_beacon_filter_debugfs_parameters() 775 cmd->bf_roaming_energy_delta = iwl_mvm_beacon_filter_debugfs_parameters() 778 cmd->bf_roaming_state = cpu_to_le32(dbgfs_bf->bf_roaming_state); iwl_mvm_beacon_filter_debugfs_parameters() 780 cmd->bf_temp_threshold = iwl_mvm_beacon_filter_debugfs_parameters() 783 cmd->bf_temp_fast_filter = iwl_mvm_beacon_filter_debugfs_parameters() 786 cmd->bf_temp_slow_filter = iwl_mvm_beacon_filter_debugfs_parameters() 789 cmd->bf_debug_flag = cpu_to_le32(dbgfs_bf->bf_debug_flag); iwl_mvm_beacon_filter_debugfs_parameters() 791 cmd->bf_escape_timer = cpu_to_le32(dbgfs_bf->bf_escape_timer); iwl_mvm_beacon_filter_debugfs_parameters() 793 cmd->ba_escape_timer = cpu_to_le32(dbgfs_bf->ba_escape_timer); iwl_mvm_beacon_filter_debugfs_parameters() 795 cmd->ba_enable_beacon_abort = iwl_mvm_beacon_filter_debugfs_parameters() 802 struct iwl_beacon_filter_cmd *cmd, _iwl_mvm_enable_beacon_filter() 813 iwl_mvm_beacon_filter_set_cqm_params(mvm, vif, cmd); _iwl_mvm_enable_beacon_filter() 815 iwl_mvm_beacon_filter_debugfs_parameters(vif, cmd); _iwl_mvm_enable_beacon_filter() 816 ret = iwl_mvm_beacon_filter_send_cmd(mvm, cmd, cmd_flags); _iwl_mvm_enable_beacon_filter() 829 struct iwl_beacon_filter_cmd cmd = { iwl_mvm_enable_beacon_filter() local 834 return _iwl_mvm_enable_beacon_filter(mvm, vif, &cmd, flags, false); iwl_mvm_enable_beacon_filter() 842 struct iwl_beacon_filter_cmd cmd = { iwl_mvm_update_beacon_abort() local 851 cmd.ba_escape_timer = cpu_to_le32(IWL_BA_ESCAPE_TIMER_D3); iwl_mvm_update_beacon_abort() 854 return _iwl_mvm_enable_beacon_filter(mvm, vif, &cmd, 0, false); iwl_mvm_update_beacon_abort() 861 struct iwl_beacon_filter_cmd cmd = {}; iwl_mvm_disable_beacon_filter() local 868 ret = iwl_mvm_beacon_filter_send_cmd(mvm, &cmd, flags); iwl_mvm_disable_beacon_filter() 984 struct iwl_mac_power_cmd cmd = {}; iwl_mvm_update_d0i3_power_mode() local 992 iwl_mvm_power_build_cmd(mvm, vif, &cmd); iwl_mvm_update_d0i3_power_mode() 1005 cmd.skip_dtim_periods = 306 / dtimper_tu; iwl_mvm_update_d0i3_power_mode() 1006 if (cmd.skip_dtim_periods) iwl_mvm_update_d0i3_power_mode() 1007 cmd.flags |= cpu_to_le16( iwl_mvm_update_d0i3_power_mode() 1011 iwl_mvm_power_log(mvm, &cmd); iwl_mvm_update_d0i3_power_mode() 1013 memcpy(&mvmvif->mac_pwr_cmd, &cmd, sizeof(cmd)); iwl_mvm_update_d0i3_power_mode() 1016 sizeof(cmd), &cmd); iwl_mvm_update_d0i3_power_mode() 81 iwl_mvm_beacon_filter_send_cmd(struct iwl_mvm *mvm, struct iwl_beacon_filter_cmd *cmd, u32 flags) iwl_mvm_beacon_filter_send_cmd() argument 113 iwl_mvm_beacon_filter_set_cqm_params(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_beacon_filter_cmd *cmd) iwl_mvm_beacon_filter_set_cqm_params() argument 129 iwl_mvm_power_log(struct iwl_mvm *mvm, struct iwl_mac_power_cmd *cmd) iwl_mvm_power_log() argument 166 iwl_mvm_power_configure_uapsd(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_mac_power_cmd *cmd) iwl_mvm_power_configure_uapsd() argument 329 iwl_mvm_power_build_cmd(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_mac_power_cmd *cmd) iwl_mvm_power_build_cmd() argument 512 iwl_mvm_power_uapsd_misbehaving_ap_notif(struct iwl_mvm *mvm, struct iwl_rx_cmd_buffer *rxb, struct iwl_device_cmd *cmd) iwl_mvm_power_uapsd_misbehaving_ap_notif() argument 766 iwl_mvm_beacon_filter_debugfs_parameters(struct ieee80211_vif *vif, struct iwl_beacon_filter_cmd *cmd) iwl_mvm_beacon_filter_debugfs_parameters() argument 800 _iwl_mvm_enable_beacon_filter(struct iwl_mvm *mvm, struct ieee80211_vif *vif, struct iwl_beacon_filter_cmd *cmd, u32 cmd_flags, bool d0i3) _iwl_mvm_enable_beacon_filter() argument
|
H A D | offloading.c | 70 struct iwl_wowlan_config_cmd *cmd) iwl_mvm_set_wowlan_qos_seq() 82 cmd->qos_seq[i] = cpu_to_le16(seq); iwl_mvm_set_wowlan_qos_seq() 96 } cmd = {}; iwl_mvm_send_proto_offload() local 100 .data[0] = &cmd, iwl_mvm_send_proto_offload() 118 nsc = cmd.v3s.ns_config; iwl_mvm_send_proto_offload() 120 addrs = cmd.v3s.targ_addrs; iwl_mvm_send_proto_offload() 123 nsc = cmd.v3l.ns_config; iwl_mvm_send_proto_offload() 125 addrs = cmd.v3l.targ_addrs; iwl_mvm_send_proto_offload() 158 cmd.v3s.num_valid_ipv6_addrs = cpu_to_le32(i); iwl_mvm_send_proto_offload() 160 cmd.v3l.num_valid_ipv6_addrs = cpu_to_le32(i); iwl_mvm_send_proto_offload() 164 memcpy(cmd.v2.ndp_mac_addr, vif->addr, ETH_ALEN); iwl_mvm_send_proto_offload() 167 BUILD_BUG_ON(sizeof(cmd.v2.target_ipv6_addr[0]) != iwl_mvm_send_proto_offload() 172 memcpy(cmd.v2.target_ipv6_addr[i], iwl_mvm_send_proto_offload() 174 sizeof(cmd.v2.target_ipv6_addr[i])); iwl_mvm_send_proto_offload() 178 memcpy(cmd.v1.ndp_mac_addr, vif->addr, ETH_ALEN); iwl_mvm_send_proto_offload() 181 BUILD_BUG_ON(sizeof(cmd.v1.target_ipv6_addr[0]) != iwl_mvm_send_proto_offload() 186 memcpy(cmd.v1.target_ipv6_addr[i], iwl_mvm_send_proto_offload() 188 sizeof(cmd.v1.target_ipv6_addr[i])); iwl_mvm_send_proto_offload() 193 common = &cmd.v3s.common; iwl_mvm_send_proto_offload() 194 size = sizeof(cmd.v3s); iwl_mvm_send_proto_offload() 196 common = &cmd.v3l.common; iwl_mvm_send_proto_offload() 197 size = sizeof(cmd.v3l); iwl_mvm_send_proto_offload() 199 common = &cmd.v2.common; iwl_mvm_send_proto_offload() 200 size = sizeof(cmd.v2); iwl_mvm_send_proto_offload() 202 common = &cmd.v1.common; iwl_mvm_send_proto_offload() 203 size = sizeof(cmd.v1); iwl_mvm_send_proto_offload() 69 iwl_mvm_set_wowlan_qos_seq(struct iwl_mvm_sta *mvm_ap_sta, struct iwl_wowlan_config_cmd *cmd) iwl_mvm_set_wowlan_qos_seq() argument
|
/linux-4.1.27/drivers/misc/cxl/ |
H A D | trace.h | 308 TP_PROTO(struct cxl_context *ctx, u64 cmd), 310 TP_ARGS(ctx, cmd), 316 __field(u64, cmd) 323 __entry->cmd = cmd; 326 TP_printk("afu%i.%i pe=%i cmd=%s", 330 __print_symbolic_u64(__entry->cmd, LLCMD_NAMES) 335 TP_PROTO(struct cxl_context *ctx, u64 cmd, int rc), 337 TP_ARGS(ctx, cmd, rc), 343 __field(u64, cmd) 352 __entry->cmd = cmd; 355 TP_printk("afu%i.%i pe=%i cmd=%s rc=%i", 359 __print_symbolic_u64(__entry->cmd, LLCMD_NAMES), 365 TP_PROTO(struct cxl_afu *afu, u64 cmd), 367 TP_ARGS(afu, cmd), 372 __field(u64, cmd) 378 __entry->cmd = cmd; 381 TP_printk("afu%i.%i cmd=%s", 384 __print_symbolic_u64(__entry->cmd, AFU_COMMANDS) 389 TP_PROTO(struct cxl_afu *afu, u64 cmd, int rc), 391 TP_ARGS(afu, cmd, rc), 396 __field(u64, cmd) 404 __entry->cmd = cmd; 407 TP_printk("afu%i.%i cmd=%s rc=%i", 410 __print_symbolic_u64(__entry->cmd, AFU_COMMANDS), 416 TP_PROTO(struct cxl_afu *afu, u64 cmd), 417 TP_ARGS(afu, cmd) 421 TP_PROTO(struct cxl_afu *afu, u64 cmd, int rc), 422 TP_ARGS(afu, cmd, rc) 426 TP_PROTO(struct cxl_afu *afu, u64 cmd), 427 TP_ARGS(afu, cmd), 429 TP_printk("psl%i.%i cmd=%s", 432 __print_symbolic_u64(__entry->cmd, PSL_COMMANDS) 437 TP_PROTO(struct cxl_afu *afu, u64 cmd, int rc), 438 TP_ARGS(afu, cmd, rc), 440 TP_printk("psl%i.%i cmd=%s rc=%i", 443 __print_symbolic_u64(__entry->cmd, PSL_COMMANDS),
|
/linux-4.1.27/tools/perf/ |
H A D | builtin-data.c | 18 #define for_each_cmd(cmd) \ 19 for (cmd = data_cmds; cmd && cmd->name; cmd++) 34 struct data_cmd *cmd; print_usage() local 40 for_each_cmd(cmd) { for_each_cmd() 41 printf("\t %s\t- %s\n", cmd->name, cmd->summary); for_each_cmd() 98 struct data_cmd *cmd; cmd_data() local 112 for_each_cmd(cmd) { for_each_cmd() 113 if (strcmp(cmd->name, cmdstr)) for_each_cmd() 116 return cmd->fn(argc, argv, prefix); for_each_cmd()
|
H A D | perf.c | 32 const char *cmd; member in struct:cmd_struct 70 const char *cmd; member in struct:pager_config 77 if (!prefixcmp(var, "pager.") && !strcmp(var + 6, c->cmd)) pager_command_config() 83 int check_pager_config(const char *cmd) check_pager_config() argument 86 c.cmd = cmd; check_pager_config() 95 if (!prefixcmp(var, "tui.") && !strcmp(var + 4, c->cmd)) browser_command_config() 97 if (!prefixcmp(var, "gtk.") && !strcmp(var + 4, c->cmd)) browser_command_config() 106 static int check_browser_config(const char *cmd) check_browser_config() argument 109 c.cmd = cmd; check_browser_config() 151 const char *cmd = (*argv)[0]; handle_options() local 152 if (cmd[0] != '-') handle_options() 160 if (!strcmp(cmd, "--help") || !strcmp(cmd, "--version")) handle_options() 166 if (!prefixcmp(cmd, CMD_EXEC_PATH)) { handle_options() 167 cmd += strlen(CMD_EXEC_PATH); handle_options() 168 if (*cmd == '=') handle_options() 169 perf_set_argv_exec_path(cmd + 1); handle_options() 174 } else if (!strcmp(cmd, "--html-path")) { handle_options() 177 } else if (!strcmp(cmd, "-p") || !strcmp(cmd, "--paginate")) { handle_options() 179 } else if (!strcmp(cmd, "--no-pager")) { handle_options() 183 } else if (!strcmp(cmd, "--perf-dir")) { handle_options() 194 } else if (!prefixcmp(cmd, CMD_PERF_DIR)) { handle_options() 195 setenv(PERF_DIR_ENVIRONMENT, cmd + strlen(CMD_PERF_DIR), 1); handle_options() 198 } else if (!strcmp(cmd, "--work-tree")) { handle_options() 208 } else if (!prefixcmp(cmd, CMD_WORK_TREE)) { handle_options() 209 setenv(PERF_WORK_TREE_ENVIRONMENT, cmd + strlen(CMD_WORK_TREE), 1); handle_options() 212 } else if (!strcmp(cmd, "--debugfs-dir")) { handle_options() 222 } else if (!strcmp(cmd, "--buildid-dir")) { handle_options() 232 } else if (!prefixcmp(cmd, CMD_DEBUGFS_DIR)) { handle_options() 233 perf_debugfs_set_path(cmd + strlen(CMD_DEBUGFS_DIR)); handle_options() 237 } else if (!strcmp(cmd, "--list-cmds")) { handle_options() 242 printf("%s ", p->cmd); handle_options() 246 } else if (!strcmp(cmd, "--list-opts")) { handle_options() 255 } else if (!strcmp(cmd, "--debug")) { handle_options() 266 fprintf(stderr, "Unknown option: %s\n", cmd); handle_options() 362 use_browser = check_browser_config(p->cmd); run_builtin() 365 use_pager = check_pager_config(p->cmd); run_builtin() 406 const char *cmd = argv[0]; handle_internal_command() local 414 argv[0] = cmd = argv0; handle_internal_command() 419 /* Turn "perf cmd --help" into "perf help cmd" */ handle_internal_command() 422 argv[0] = cmd = "help"; handle_internal_command() 427 if (strcmp(p->cmd, cmd)) handle_internal_command() 435 struct strbuf cmd = STRBUF_INIT; execv_dashed_external() local 439 strbuf_addf(&cmd, "perf-%s", argv[0]); execv_dashed_external() 448 argv[0] = cmd.buf; execv_dashed_external() 464 strbuf_release(&cmd); execv_dashed_external() 510 const char *cmd; main() local 517 cmd = perf_extract_argv0_path(argv[0]); main() 518 if (!cmd) main() 519 cmd = "perf-help"; main() 532 if (!prefixcmp(cmd, "perf-")) { main() 533 cmd += 5; main() 534 argv[0] = cmd; main() 536 fprintf(stderr, "cannot handle %s internally", cmd); main() 539 if (!prefixcmp(cmd, "trace")) { main() 568 cmd = argv[0]; main() 596 cmd, argv[0]); main() 600 cmd = argv[0] = help_unknown_cmd(cmd); main() 607 cmd, strerror_r(errno, sbuf, sizeof(sbuf))); main()
|
/linux-4.1.27/drivers/block/rsxx/ |
H A D | cregs.c | 33 struct creg_cmd *cmd, 112 static void creg_issue_cmd(struct rsxx_cardinfo *card, struct creg_cmd *cmd) creg_issue_cmd() argument 119 iowrite32(cmd->addr, card->regmap + CREG_ADD); creg_issue_cmd() 120 iowrite32(cmd->cnt8, card->regmap + CREG_CNT); creg_issue_cmd() 122 if (cmd->op == CREG_OP_WRITE) { creg_issue_cmd() 123 if (cmd->buf) { creg_issue_cmd() 124 st = copy_to_creg_data(card, cmd->cnt8, creg_issue_cmd() 125 cmd->buf, cmd->stream); creg_issue_cmd() 135 iowrite32(cmd->op, card->regmap + CREG_CMD); creg_issue_cmd() 170 struct creg_cmd *cmd; creg_queue_cmd() local 182 cmd = kmem_cache_alloc(creg_cmd_pool, GFP_KERNEL); creg_queue_cmd() 183 if (!cmd) creg_queue_cmd() 186 INIT_LIST_HEAD(&cmd->list); creg_queue_cmd() 188 cmd->op = op; creg_queue_cmd() 189 cmd->addr = addr; creg_queue_cmd() 190 cmd->cnt8 = cnt8; creg_queue_cmd() 191 cmd->buf = buf; creg_queue_cmd() 192 cmd->stream = stream; creg_queue_cmd() 193 cmd->cb = callback; creg_queue_cmd() 194 cmd->cb_private = cb_private; creg_queue_cmd() 195 cmd->status = 0; creg_queue_cmd() 198 list_add_tail(&cmd->list, &card->creg_ctrl.queue); creg_queue_cmd() 209 struct creg_cmd *cmd; creg_cmd_timed_out() local 212 cmd = card->creg_ctrl.active_cmd; creg_cmd_timed_out() 216 if (cmd == NULL) { creg_cmd_timed_out() 223 if (cmd->cb) creg_cmd_timed_out() 224 cmd->cb(card, cmd, -ETIMEDOUT); creg_cmd_timed_out() 226 kmem_cache_free(creg_cmd_pool, cmd); creg_cmd_timed_out() 239 struct creg_cmd *cmd; creg_cmd_done() local 253 cmd = card->creg_ctrl.active_cmd; creg_cmd_done() 257 if (cmd == NULL) { creg_cmd_done() 264 cmd->status = card->creg_ctrl.creg_stats.stat; creg_cmd_done() 265 if ((cmd->status & CREG_STAT_STATUS_MASK) == 0) { creg_cmd_done() 275 } else if (cmd->status & CREG_STAT_ERROR) { creg_cmd_done() 279 if ((cmd->op == CREG_OP_READ)) { creg_cmd_done() 283 if (!cmd->buf) { creg_cmd_done() 289 if (cnt8 != cmd->cnt8) { creg_cmd_done() 296 st = copy_from_creg_data(card, cnt8, cmd->buf, cmd->stream); creg_cmd_done() 300 if (cmd->cb) creg_cmd_done() 301 cmd->cb(card, cmd, st); creg_cmd_done() 303 kmem_cache_free(creg_cmd_pool, cmd); creg_cmd_done() 313 struct creg_cmd *cmd = NULL; creg_reset() local 334 list_for_each_entry_safe(cmd, tmp, &card->creg_ctrl.queue, list) { creg_reset() 335 list_del(&cmd->list); creg_reset() 337 if (cmd->cb) creg_reset() 338 cmd->cb(card, cmd, -ECANCELED); creg_reset() 339 kmem_cache_free(creg_cmd_pool, cmd); creg_reset() 342 cmd = card->creg_ctrl.active_cmd; creg_reset() 344 if (cmd) { creg_reset() 348 if (cmd->cb) creg_reset() 349 cmd->cb(card, cmd, -ECANCELED); creg_reset() 350 kmem_cache_free(creg_cmd_pool, cmd); creg_reset() 372 struct creg_cmd *cmd, creg_cmd_done_cb() 377 cmd_completion = cmd->cb_private; creg_cmd_done_cb() 381 cmd_completion->creg_status = cmd->status; creg_cmd_done_cb() 535 int rsxx_issue_card_cmd(struct rsxx_cardinfo *card, u32 cmd) rsxx_issue_card_cmd() argument 538 sizeof(cmd), &cmd, 0); rsxx_issue_card_cmd() 610 struct creg_cmd *cmd, read_hw_log_done() 619 buf = cmd->buf; read_hw_log_done() 626 while (off < cmd->cnt8) { read_hw_log_done() 628 cnt = min(cmd->cnt8 - off, LOG_BUF_SIZE8 - card->log.buf_len); read_hw_log_done() 648 if (cmd->status & CREG_STAT_LOG_PENDING) read_hw_log_done() 668 struct rsxx_reg_access *cmd, issue_reg_cmd() 673 return __issue_creg_rw(card, op, cmd->addr, cmd->cnt, cmd->data, issue_reg_cmd() 674 cmd->stream, &cmd->stat); issue_reg_cmd() 681 struct rsxx_reg_access cmd; rsxx_reg_access() local 684 st = copy_from_user(&cmd, ucmd, sizeof(cmd)); rsxx_reg_access() 688 if (cmd.cnt > RSXX_MAX_REG_CNT) rsxx_reg_access() 691 st = issue_reg_cmd(card, &cmd, read); rsxx_reg_access() 695 st = put_user(cmd.stat, &ucmd->stat); rsxx_reg_access() 700 st = copy_to_user(ucmd->data, cmd.data, cmd.cnt); rsxx_reg_access() 710 struct creg_cmd *cmd = NULL; rsxx_eeh_save_issued_creg() local 712 cmd = card->creg_ctrl.active_cmd; rsxx_eeh_save_issued_creg() 715 if (cmd) { rsxx_eeh_save_issued_creg() 719 list_add(&cmd->list, &card->creg_ctrl.queue); rsxx_eeh_save_issued_creg() 756 struct creg_cmd *cmd; rsxx_creg_destroy() local 762 list_for_each_entry_safe(cmd, tmp, &card->creg_ctrl.queue, list) { rsxx_creg_destroy() 763 list_del(&cmd->list); rsxx_creg_destroy() 764 if (cmd->cb) rsxx_creg_destroy() 765 cmd->cb(card, cmd, -ECANCELED); rsxx_creg_destroy() 766 kmem_cache_free(creg_cmd_pool, cmd); rsxx_creg_destroy() 774 cmd = card->creg_ctrl.active_cmd; rsxx_creg_destroy() 776 if (cmd) { rsxx_creg_destroy() 780 if (cmd->cb) rsxx_creg_destroy() 781 cmd->cb(card, cmd, -ECANCELED); rsxx_creg_destroy() 784 kmem_cache_free(creg_cmd_pool, cmd); rsxx_creg_destroy() 371 creg_cmd_done_cb(struct rsxx_cardinfo *card, struct creg_cmd *cmd, int st) creg_cmd_done_cb() argument 609 read_hw_log_done(struct rsxx_cardinfo *card, struct creg_cmd *cmd, int st) read_hw_log_done() argument 667 issue_reg_cmd(struct rsxx_cardinfo *card, struct rsxx_reg_access *cmd, int read) issue_reg_cmd() argument
|
/linux-4.1.27/drivers/gpu/drm/vmwgfx/ |
H A D | vmwgfx_gmr.c | 45 uint32_t *cmd; vmw_gmr2_bind() local 47 uint32_t define_size = sizeof(define_cmd) + sizeof(*cmd); vmw_gmr2_bind() 49 uint32_t remap_size = VMW_PPN_SIZE * num_pages + (sizeof(remap_cmd) + sizeof(*cmd)) * remap_num; vmw_gmr2_bind() 54 cmd_orig = cmd = vmw_fifo_reserve(dev_priv, cmd_size); vmw_gmr2_bind() 55 if (unlikely(cmd == NULL)) vmw_gmr2_bind() 61 *cmd++ = SVGA_CMD_DEFINE_GMR2; vmw_gmr2_bind() 62 memcpy(cmd, &define_cmd, sizeof(define_cmd)); vmw_gmr2_bind() 63 cmd += sizeof(define_cmd) / sizeof(*cmd); vmw_gmr2_bind() 71 remap_cmd.flags = (VMW_PPN_SIZE > sizeof(*cmd)) ? vmw_gmr2_bind() 80 *cmd++ = SVGA_CMD_REMAP_GMR2; vmw_gmr2_bind() 81 memcpy(cmd, &remap_cmd, sizeof(remap_cmd)); vmw_gmr2_bind() 82 cmd += sizeof(remap_cmd) / sizeof(*cmd); vmw_gmr2_bind() 86 *cmd = vmw_piter_dma_addr(iter) >> PAGE_SHIFT; vmw_gmr2_bind() 88 *((uint64_t *)cmd) = vmw_piter_dma_addr(iter) >> vmw_gmr2_bind() 91 cmd += VMW_PPN_SIZE / sizeof(*cmd); vmw_gmr2_bind() 99 BUG_ON(cmd != cmd_orig + cmd_size / sizeof(*cmd)); vmw_gmr2_bind() 111 uint32_t *cmd; vmw_gmr2_unbind() local 113 cmd = vmw_fifo_reserve(dev_priv, define_size); vmw_gmr2_unbind() 114 if (unlikely(cmd == NULL)) { vmw_gmr2_unbind() 121 *cmd++ = SVGA_CMD_DEFINE_GMR2; vmw_gmr2_unbind() 122 memcpy(cmd, &define_cmd, sizeof(define_cmd)); vmw_gmr2_unbind()
|
H A D | vmwgfx_context.c | 113 } *cmd; vmw_hw_context_destroy() local 131 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); vmw_hw_context_destroy() 132 if (unlikely(cmd == NULL)) { vmw_hw_context_destroy() 138 cmd->header.id = cpu_to_le32(SVGA_3D_CMD_CONTEXT_DESTROY); vmw_hw_context_destroy() 139 cmd->header.size = cpu_to_le32(sizeof(cmd->body)); vmw_hw_context_destroy() 140 cmd->body.cid = cpu_to_le32(res->id); vmw_hw_context_destroy() 142 vmw_fifo_commit(dev_priv, sizeof(*cmd)); vmw_hw_context_destroy() 192 } *cmd; vmw_context_init() local 211 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); vmw_context_init() 212 if (unlikely(cmd == NULL)) { vmw_context_init() 218 cmd->header.id = cpu_to_le32(SVGA_3D_CMD_CONTEXT_DEFINE); vmw_context_init() 219 cmd->header.size = cpu_to_le32(sizeof(cmd->body)); vmw_context_init() 220 cmd->body.cid = cpu_to_le32(res->id); vmw_context_init() 222 vmw_fifo_commit(dev_priv, sizeof(*cmd)); vmw_context_init() 256 } *cmd; vmw_gb_context_create() local 272 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); vmw_gb_context_create() 273 if (unlikely(cmd == NULL)) { vmw_gb_context_create() 280 cmd->header.id = SVGA_3D_CMD_DEFINE_GB_CONTEXT; vmw_gb_context_create() 281 cmd->header.size = sizeof(cmd->body); vmw_gb_context_create() 282 cmd->body.cid = res->id; vmw_gb_context_create() 283 vmw_fifo_commit(dev_priv, sizeof(*cmd)); vmw_gb_context_create() 301 } *cmd; vmw_gb_context_bind() local 306 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); vmw_gb_context_bind() 307 if (unlikely(cmd == NULL)) { vmw_gb_context_bind() 313 cmd->header.id = SVGA_3D_CMD_BIND_GB_CONTEXT; vmw_gb_context_bind() 314 cmd->header.size = sizeof(cmd->body); vmw_gb_context_bind() 315 cmd->body.cid = res->id; vmw_gb_context_bind() 316 cmd->body.mobid = bo->mem.start; vmw_gb_context_bind() 317 cmd->body.validContents = res->backup_dirty; vmw_gb_context_bind() 319 vmw_fifo_commit(dev_priv, sizeof(*cmd)); vmw_gb_context_bind() 343 uint8_t *cmd; vmw_gb_context_unbind() local 353 cmd = vmw_fifo_reserve(dev_priv, submit_size); vmw_gb_context_unbind() 354 if (unlikely(cmd == NULL)) { vmw_gb_context_unbind() 361 cmd2 = (void *) cmd; vmw_gb_context_unbind() 363 cmd1 = (void *) cmd; vmw_gb_context_unbind() 398 } *cmd; vmw_gb_context_destroy() local 403 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); vmw_gb_context_destroy() 404 if (unlikely(cmd == NULL)) { vmw_gb_context_destroy() 410 cmd->header.id = SVGA_3D_CMD_DESTROY_GB_CONTEXT; vmw_gb_context_destroy() 411 cmd->header.size = sizeof(cmd->body); vmw_gb_context_destroy() 412 cmd->body.cid = res->id; vmw_gb_context_destroy() 413 vmw_fifo_commit(dev_priv, sizeof(*cmd)); vmw_gb_context_destroy() 553 } *cmd; vmw_context_scrub_shader() local 555 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); vmw_context_scrub_shader() 556 if (unlikely(cmd == NULL)) { vmw_context_scrub_shader() 562 cmd->header.id = SVGA_3D_CMD_SET_SHADER; vmw_context_scrub_shader() 563 cmd->header.size = sizeof(cmd->body); vmw_context_scrub_shader() 564 cmd->body.cid = bi->ctx->id; vmw_context_scrub_shader() 565 cmd->body.type = bi->i1.shader_type; vmw_context_scrub_shader() 566 cmd->body.shid = ((rebind) ? bi->res->id : SVGA3D_INVALID_ID); vmw_context_scrub_shader() 567 vmw_fifo_commit(dev_priv, sizeof(*cmd)); vmw_context_scrub_shader() 586 } *cmd; vmw_context_scrub_render_target() local 588 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); vmw_context_scrub_render_target() 589 if (unlikely(cmd == NULL)) { vmw_context_scrub_render_target() 595 cmd->header.id = SVGA_3D_CMD_SETRENDERTARGET; vmw_context_scrub_render_target() 596 cmd->header.size = sizeof(cmd->body); vmw_context_scrub_render_target() 597 cmd->body.cid = bi->ctx->id; vmw_context_scrub_render_target() 598 cmd->body.type = bi->i1.rt_type; vmw_context_scrub_render_target() 599 cmd->body.target.sid = ((rebind) ? bi->res->id : SVGA3D_INVALID_ID); vmw_context_scrub_render_target() 600 cmd->body.target.face = 0; vmw_context_scrub_render_target() 601 cmd->body.target.mipmap = 0; vmw_context_scrub_render_target() 602 vmw_fifo_commit(dev_priv, sizeof(*cmd)); vmw_context_scrub_render_target() 626 } *cmd; vmw_context_scrub_texture() local 628 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); vmw_context_scrub_texture() 629 if (unlikely(cmd == NULL)) { vmw_context_scrub_texture() 636 cmd->header.id = SVGA_3D_CMD_SETTEXTURESTATE; vmw_context_scrub_texture() 637 cmd->header.size = sizeof(cmd->body); vmw_context_scrub_texture() 638 cmd->body.c.cid = bi->ctx->id; vmw_context_scrub_texture() 639 cmd->body.s1.stage = bi->i1.texture_stage; vmw_context_scrub_texture() 640 cmd->body.s1.name = SVGA3D_TS_BIND_TEXTURE; vmw_context_scrub_texture() 641 cmd->body.s1.value = ((rebind) ? bi->res->id : SVGA3D_INVALID_ID); vmw_context_scrub_texture() 642 vmw_fifo_commit(dev_priv, sizeof(*cmd)); vmw_context_scrub_texture()
|
H A D | vmwgfx_shader.c | 138 } *cmd; vmw_gb_shader_create() local 154 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); vmw_gb_shader_create() 155 if (unlikely(cmd == NULL)) { vmw_gb_shader_create() 162 cmd->header.id = SVGA_3D_CMD_DEFINE_GB_SHADER; vmw_gb_shader_create() 163 cmd->header.size = sizeof(cmd->body); vmw_gb_shader_create() 164 cmd->body.shid = res->id; vmw_gb_shader_create() 165 cmd->body.type = shader->type; vmw_gb_shader_create() 166 cmd->body.sizeInBytes = shader->size; vmw_gb_shader_create() 167 vmw_fifo_commit(dev_priv, sizeof(*cmd)); vmw_gb_shader_create() 185 } *cmd; vmw_gb_shader_bind() local 190 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); vmw_gb_shader_bind() 191 if (unlikely(cmd == NULL)) { vmw_gb_shader_bind() 197 cmd->header.id = SVGA_3D_CMD_BIND_GB_SHADER; vmw_gb_shader_bind() 198 cmd->header.size = sizeof(cmd->body); vmw_gb_shader_bind() 199 cmd->body.shid = res->id; vmw_gb_shader_bind() 200 cmd->body.mobid = bo->mem.start; vmw_gb_shader_bind() 201 cmd->body.offsetInBytes = res->backup_offset; vmw_gb_shader_bind() 203 vmw_fifo_commit(dev_priv, sizeof(*cmd)); vmw_gb_shader_bind() 216 } *cmd; vmw_gb_shader_unbind() local 221 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); vmw_gb_shader_unbind() 222 if (unlikely(cmd == NULL)) { vmw_gb_shader_unbind() 228 cmd->header.id = SVGA_3D_CMD_BIND_GB_SHADER; vmw_gb_shader_unbind() 229 cmd->header.size = sizeof(cmd->body); vmw_gb_shader_unbind() 230 cmd->body.shid = res->id; vmw_gb_shader_unbind() 231 cmd->body.mobid = SVGA3D_INVALID_ID; vmw_gb_shader_unbind() 232 cmd->body.offsetInBytes = 0; vmw_gb_shader_unbind() 233 vmw_fifo_commit(dev_priv, sizeof(*cmd)); vmw_gb_shader_unbind() 256 } *cmd; vmw_gb_shader_destroy() local 264 cmd = vmw_fifo_reserve(dev_priv, sizeof(*cmd)); vmw_gb_shader_destroy() 265 if (unlikely(cmd == NULL)) { vmw_gb_shader_destroy() 272 cmd->header.id = SVGA_3D_CMD_DESTROY_GB_SHADER; vmw_gb_shader_destroy() 273 cmd->header.size = sizeof(cmd->body); vmw_gb_shader_destroy() 274 cmd->body.shid = res->id; vmw_gb_shader_destroy() 275 vmw_fifo_commit(dev_priv, sizeof(*cmd)); vmw_gb_shader_destroy()
|
/linux-4.1.27/drivers/s390/char/ |
H A D | hmcdrv_ftp.c | 28 * @cmd: FTP transfer function 37 static enum hmcdrv_ftp_cmdid hmcdrv_ftp_cmd_getid(const char *cmd, int len); 38 static int hmcdrv_ftp_parse(char *cmd, struct hmcdrv_ftp_cmdspec *ftp); 46 * @cmd: FTP command string (NOT zero-terminated) 47 * @len: length of FTP command string in @cmd 49 static enum hmcdrv_ftp_cmdid hmcdrv_ftp_cmd_getid(const char *cmd, int len) hmcdrv_ftp_cmd_getid() argument 54 enum hmcdrv_ftp_cmdid cmd; /* associated command as enum */ hmcdrv_ftp_cmd_getid() member in struct:hmcdrv_ftp_cmd_desc 69 .cmd = HMCDRV_FTP_GET}, hmcdrv_ftp_cmd_getid() 71 .cmd = HMCDRV_FTP_DIR}, hmcdrv_ftp_cmd_getid() 73 .cmd = HMCDRV_FTP_DELETE}, hmcdrv_ftp_cmd_getid() 75 .cmd = HMCDRV_FTP_NLIST}, hmcdrv_ftp_cmd_getid() 77 .cmd = HMCDRV_FTP_PUT}, hmcdrv_ftp_cmd_getid() 79 .cmd = HMCDRV_FTP_APPEND}, hmcdrv_ftp_cmd_getid() 90 crc = crc16(crc, cmd, len); hmcdrv_ftp_cmd_getid() 93 cmd, crc, (crc % ARRAY_SIZE(ftpcmds))); hmcdrv_ftp_cmd_getid() 95 if (!pdesc->str || strncmp(pdesc->str, cmd, len)) hmcdrv_ftp_cmd_getid() 99 pdesc->str, pdesc->cmd); hmcdrv_ftp_cmd_getid() 101 return pdesc->cmd; hmcdrv_ftp_cmd_getid() 106 * @cmd: FTP command string "<cmd> <filename>" 111 static int hmcdrv_ftp_parse(char *cmd, struct hmcdrv_ftp_cmdspec *ftp) hmcdrv_ftp_parse() argument 119 while (*cmd != '\0') { hmcdrv_ftp_parse() 121 while (isspace(*cmd)) hmcdrv_ftp_parse() 122 ++cmd; hmcdrv_ftp_parse() 124 if (*cmd == '\0') hmcdrv_ftp_parse() 127 start = cmd; hmcdrv_ftp_parse() 131 while ((*cmd != '\0') && !isspace(*cmd)) hmcdrv_ftp_parse() 132 ++cmd; hmcdrv_ftp_parse() 133 ftp->id = hmcdrv_ftp_cmd_getid(start, cmd - start); hmcdrv_ftp_parse() 136 while ((*cmd != '\0') && !iscntrl(*cmd)) hmcdrv_ftp_parse() 137 ++cmd; hmcdrv_ftp_parse() 141 *cmd = '\0'; hmcdrv_ftp_parse() 167 pr_debug("starting transfer, cmd %d for '%s' at %lld with %zd bytes\n", hmcdrv_ftp_do() 227 * @cmd: FTP command string "<cmd> <filename>" 236 ssize_t hmcdrv_ftp_cmd(char __kernel *cmd, loff_t offset, hmcdrv_ftp_cmd() argument 242 ssize_t retlen = hmcdrv_ftp_parse(cmd, &ftp); hmcdrv_ftp_cmd()
|
/linux-4.1.27/drivers/usb/gadget/legacy/ |
H A D | tcm_usb_gadget.c | 41 static inline void usbg_cleanup_cmd(struct usbg_cmd *cmd) usbg_cleanup_cmd() argument 43 kref_put(&cmd->ref, usbg_cmd_release); usbg_cleanup_cmd() 55 ret = usb_ep_queue(fu->ep_out, fu->cmd.req, GFP_ATOMIC); bot_enqueue_cmd_cbw() 63 struct usbg_cmd *cmd = req->context; bot_status_complete() local 64 struct f_uas *fu = cmd->fu; bot_status_complete() 66 usbg_cleanup_cmd(cmd); bot_status_complete() 76 static void bot_enqueue_sense_code(struct f_uas *fu, struct usbg_cmd *cmd) bot_enqueue_sense_code() argument 83 csw_stat = cmd->csw_code; bot_enqueue_sense_code() 90 sense = cmd->sense_iu.sense; bot_enqueue_sense_code() 92 csw->Tag = cmd->bot_tag; bot_enqueue_sense_code() 94 fu->bot_status.req->context = cmd; bot_enqueue_sense_code() 102 struct usbg_cmd *cmd = req->context; bot_err_compl() local 103 struct f_uas *fu = cmd->fu; bot_err_compl() 108 if (cmd->data_len) { bot_err_compl() 109 if (cmd->data_len > ep->maxpacket) { bot_err_compl() 111 cmd->data_len -= ep->maxpacket; bot_err_compl() 113 req->length = cmd->data_len; bot_err_compl() 114 cmd->data_len = 0; bot_err_compl() 120 bot_enqueue_sense_code(fu, cmd); bot_err_compl() 123 static void bot_send_bad_status(struct usbg_cmd *cmd) bot_send_bad_status() argument 125 struct f_uas *fu = cmd->fu; bot_send_bad_status() 130 csw->Residue = cpu_to_le32(cmd->data_len); bot_send_bad_status() 132 if (cmd->data_len) { bot_send_bad_status() 133 if (cmd->is_read) { bot_send_bad_status() 141 if (cmd->data_len > fu->ep_in->maxpacket) { bot_send_bad_status() 143 cmd->data_len -= ep->maxpacket; bot_send_bad_status() 145 req->length = cmd->data_len; bot_send_bad_status() 146 cmd->data_len = 0; bot_send_bad_status() 149 req->context = cmd; bot_send_bad_status() 150 req->buf = fu->cmd.buf; bot_send_bad_status() 153 bot_enqueue_sense_code(fu, cmd); bot_send_bad_status() 157 static int bot_send_status(struct usbg_cmd *cmd, bool moved_data) bot_send_status() argument 159 struct f_uas *fu = cmd->fu; bot_send_status() 163 if (cmd->se_cmd.scsi_status == SAM_STAT_GOOD) { bot_send_status() 164 if (!moved_data && cmd->data_len) { bot_send_status() 169 cmd->csw_code = US_BULK_STAT_OK; bot_send_status() 170 bot_send_bad_status(cmd); bot_send_status() 174 csw->Tag = cmd->bot_tag; bot_send_status() 177 fu->bot_status.req->context = cmd; bot_send_status() 183 cmd->csw_code = US_BULK_STAT_FAIL; bot_send_status() 184 bot_send_bad_status(cmd); bot_send_status() 193 static int bot_send_status_response(struct usbg_cmd *cmd) bot_send_status_response() argument 197 if (!cmd->is_read) bot_send_status_response() 199 return bot_send_status(cmd, moved_data); bot_send_status_response() 205 struct usbg_cmd *cmd = req->context; bot_read_compl() local 210 bot_send_status(cmd, true); bot_read_compl() 213 static int bot_send_read_response(struct usbg_cmd *cmd) bot_send_read_response() argument 215 struct f_uas *fu = cmd->fu; bot_send_read_response() 216 struct se_cmd *se_cmd = &cmd->se_cmd; bot_send_read_response() 220 if (!cmd->data_len) { bot_send_read_response() 221 cmd->csw_code = US_BULK_STAT_PHASE; bot_send_read_response() 222 bot_send_bad_status(cmd); bot_send_read_response() 227 cmd->data_buf = kmalloc(se_cmd->data_length, GFP_ATOMIC); bot_send_read_response() 228 if (!cmd->data_buf) bot_send_read_response() 233 cmd->data_buf, bot_send_read_response() 236 fu->bot_req_in->buf = cmd->data_buf; bot_send_read_response() 245 fu->bot_req_in->context = cmd; bot_send_read_response() 255 static int bot_send_write_request(struct usbg_cmd *cmd) bot_send_write_request() argument 257 struct f_uas *fu = cmd->fu; bot_send_write_request() 258 struct se_cmd *se_cmd = &cmd->se_cmd; bot_send_write_request() 262 init_completion(&cmd->write_complete); bot_send_write_request() 263 cmd->fu = fu; bot_send_write_request() 265 if (!cmd->data_len) { bot_send_write_request() 266 cmd->csw_code = US_BULK_STAT_PHASE; bot_send_write_request() 271 cmd->data_buf = kmalloc(se_cmd->data_length, GFP_KERNEL); bot_send_write_request() 272 if (!cmd->data_buf) bot_send_write_request() 275 fu->bot_req_out->buf = cmd->data_buf; bot_send_write_request() 284 fu->bot_req_out->context = cmd; bot_send_write_request() 286 ret = usbg_prepare_w_request(cmd, fu->bot_req_out); bot_send_write_request() 293 wait_for_completion(&cmd->write_complete); bot_send_write_request() 328 fu->cmd.req = usb_ep_alloc_request(fu->ep_out, GFP_KERNEL); bot_prepare_reqs() 329 if (!fu->cmd.req) bot_prepare_reqs() 341 fu->cmd.buf = kmalloc(fu->ep_out->maxpacket, GFP_KERNEL); bot_prepare_reqs() 342 if (!fu->cmd.buf) bot_prepare_reqs() 345 fu->cmd.req->complete = bot_cmd_complete; bot_prepare_reqs() 346 fu->cmd.req->buf = fu->cmd.buf; bot_prepare_reqs() 347 fu->cmd.req->length = fu->ep_out->maxpacket; bot_prepare_reqs() 348 fu->cmd.req->context = fu; bot_prepare_reqs() 355 kfree(fu->cmd.buf); bot_prepare_reqs() 356 fu->cmd.buf = NULL; bot_prepare_reqs() 360 usb_ep_free_request(fu->ep_out, fu->cmd.req); bot_prepare_reqs() 361 fu->cmd.req = NULL; bot_prepare_reqs() 386 usb_ep_free_request(fu->ep_out, fu->cmd.req); bot_cleanup_old_alt() 389 kfree(fu->cmd.buf); bot_cleanup_old_alt() 393 fu->cmd.req = NULL; bot_cleanup_old_alt() 395 fu->cmd.buf = NULL; bot_cleanup_old_alt() 498 usb_ep_free_request(fu->ep_cmd, fu->cmd.req); uasp_free_cmdreq() 499 kfree(fu->cmd.buf); uasp_free_cmdreq() 500 fu->cmd.req = NULL; uasp_free_cmdreq() 501 fu->cmd.buf = NULL; uasp_free_cmdreq() 523 static int uasp_prepare_r_request(struct usbg_cmd *cmd) uasp_prepare_r_request() argument 525 struct se_cmd *se_cmd = &cmd->se_cmd; uasp_prepare_r_request() 526 struct f_uas *fu = cmd->fu; uasp_prepare_r_request() 528 struct uas_stream *stream = cmd->stream; uasp_prepare_r_request() 531 cmd->data_buf = kmalloc(se_cmd->data_length, GFP_ATOMIC); uasp_prepare_r_request() 532 if (!cmd->data_buf) uasp_prepare_r_request() 537 cmd->data_buf, uasp_prepare_r_request() 540 stream->req_in->buf = cmd->data_buf; uasp_prepare_r_request() 549 stream->req_in->context = cmd; uasp_prepare_r_request() 551 cmd->state = UASP_SEND_STATUS; uasp_prepare_r_request() 555 static void uasp_prepare_status(struct usbg_cmd *cmd) uasp_prepare_status() argument 557 struct se_cmd *se_cmd = &cmd->se_cmd; uasp_prepare_status() 558 struct sense_iu *iu = &cmd->sense_iu; uasp_prepare_status() 559 struct uas_stream *stream = cmd->stream; uasp_prepare_status() 561 cmd->state = UASP_QUEUE_COMMAND; uasp_prepare_status() 563 iu->tag = cpu_to_be16(cmd->tag); uasp_prepare_status() 570 stream->req_status->context = cmd; uasp_prepare_status() 578 struct usbg_cmd *cmd = req->context; uasp_status_data_cmpl() local 579 struct uas_stream *stream = cmd->stream; uasp_status_data_cmpl() 580 struct f_uas *fu = cmd->fu; uasp_status_data_cmpl() 586 switch (cmd->state) { uasp_status_data_cmpl() 588 ret = uasp_prepare_r_request(cmd); uasp_status_data_cmpl() 597 ret = usbg_prepare_w_request(cmd, stream->req_out); uasp_status_data_cmpl() 606 uasp_prepare_status(cmd); uasp_status_data_cmpl() 614 usbg_cleanup_cmd(cmd); uasp_status_data_cmpl() 615 usb_ep_queue(fu->ep_cmd, fu->cmd.req, GFP_ATOMIC); uasp_status_data_cmpl() 624 usbg_cleanup_cmd(cmd); uasp_status_data_cmpl() 627 static int uasp_send_status_response(struct usbg_cmd *cmd) uasp_send_status_response() argument 629 struct f_uas *fu = cmd->fu; uasp_send_status_response() 630 struct uas_stream *stream = cmd->stream; uasp_send_status_response() 631 struct sense_iu *iu = &cmd->sense_iu; uasp_send_status_response() 633 iu->tag = cpu_to_be16(cmd->tag); uasp_send_status_response() 635 stream->req_status->context = cmd; uasp_send_status_response() 636 cmd->fu = fu; uasp_send_status_response() 637 uasp_prepare_status(cmd); uasp_send_status_response() 641 static int uasp_send_read_response(struct usbg_cmd *cmd) uasp_send_read_response() argument 643 struct f_uas *fu = cmd->fu; uasp_send_read_response() 644 struct uas_stream *stream = cmd->stream; uasp_send_read_response() 645 struct sense_iu *iu = &cmd->sense_iu; uasp_send_read_response() 648 cmd->fu = fu; uasp_send_read_response() 650 iu->tag = cpu_to_be16(cmd->tag); uasp_send_read_response() 653 ret = uasp_prepare_r_request(cmd); uasp_send_read_response() 659 kfree(cmd->data_buf); uasp_send_read_response() 660 cmd->data_buf = NULL; uasp_send_read_response() 666 iu->tag = cpu_to_be16(cmd->tag); uasp_send_read_response() 669 stream->req_status->context = cmd; uasp_send_read_response() 671 cmd->state = UASP_SEND_DATA; uasp_send_read_response() 684 static int uasp_send_write_request(struct usbg_cmd *cmd) uasp_send_write_request() argument 686 struct f_uas *fu = cmd->fu; uasp_send_write_request() 687 struct se_cmd *se_cmd = &cmd->se_cmd; uasp_send_write_request() 688 struct uas_stream *stream = cmd->stream; uasp_send_write_request() 689 struct sense_iu *iu = &cmd->sense_iu; uasp_send_write_request() 692 init_completion(&cmd->write_complete); uasp_send_write_request() 693 cmd->fu = fu; uasp_send_write_request() 695 iu->tag = cpu_to_be16(cmd->tag); uasp_send_write_request() 699 ret = usbg_prepare_w_request(cmd, stream->req_out); uasp_send_write_request() 709 iu->tag = cpu_to_be16(cmd->tag); uasp_send_write_request() 712 stream->req_status->context = cmd; uasp_send_write_request() 714 cmd->state = UASP_RECEIVE_DATA; uasp_send_write_request() 724 wait_for_completion(&cmd->write_complete); uasp_send_write_request() 749 usb_ep_queue(fu->ep_cmd, fu->cmd.req, GFP_ATOMIC); uasp_cmd_complete() 779 fu->cmd.req = usb_ep_alloc_request(fu->ep_cmd, GFP_KERNEL); uasp_alloc_cmd() 780 if (!fu->cmd.req) uasp_alloc_cmd() 783 fu->cmd.buf = kmalloc(fu->ep_cmd->maxpacket, GFP_KERNEL); uasp_alloc_cmd() 784 if (!fu->cmd.buf) uasp_alloc_cmd() 787 fu->cmd.req->complete = uasp_cmd_complete; uasp_alloc_cmd() 788 fu->cmd.req->buf = fu->cmd.buf; uasp_alloc_cmd() 789 fu->cmd.req->length = fu->ep_cmd->maxpacket; uasp_alloc_cmd() 790 fu->cmd.req->context = fu; uasp_alloc_cmd() 794 usb_ep_free_request(fu->ep_cmd, fu->cmd.req); uasp_alloc_cmd() 834 ret = usb_ep_queue(fu->ep_cmd, fu->cmd.req, GFP_ATOMIC); uasp_prepare_reqs() 966 struct usbg_cmd *cmd = req->context; usbg_data_write_cmpl() local 967 struct se_cmd *se_cmd = &cmd->se_cmd; usbg_data_write_cmpl() 970 pr_err("%s() state %d transfer failed\n", __func__, cmd->state); usbg_data_write_cmpl() 977 cmd->data_buf, usbg_data_write_cmpl() 981 complete(&cmd->write_complete); usbg_data_write_cmpl() 985 usbg_cleanup_cmd(cmd); usbg_data_write_cmpl() 988 static int usbg_prepare_w_request(struct usbg_cmd *cmd, struct usb_request *req) usbg_prepare_w_request() argument 990 struct se_cmd *se_cmd = &cmd->se_cmd; usbg_prepare_w_request() 991 struct f_uas *fu = cmd->fu; usbg_prepare_w_request() 995 cmd->data_buf = kmalloc(se_cmd->data_length, GFP_ATOMIC); usbg_prepare_w_request() 996 if (!cmd->data_buf) usbg_prepare_w_request() 999 req->buf = cmd->data_buf; usbg_prepare_w_request() 1008 req->context = cmd; usbg_prepare_w_request() 1014 struct usbg_cmd *cmd = container_of(se_cmd, struct usbg_cmd, usbg_send_status_response() local 1016 struct f_uas *fu = cmd->fu; usbg_send_status_response() 1019 return bot_send_status_response(cmd); usbg_send_status_response() 1021 return uasp_send_status_response(cmd); usbg_send_status_response() 1026 struct usbg_cmd *cmd = container_of(se_cmd, struct usbg_cmd, usbg_send_write_request() local 1028 struct f_uas *fu = cmd->fu; usbg_send_write_request() 1031 return bot_send_write_request(cmd); usbg_send_write_request() 1033 return uasp_send_write_request(cmd); usbg_send_write_request() 1038 struct usbg_cmd *cmd = container_of(se_cmd, struct usbg_cmd, usbg_send_read_response() local 1040 struct f_uas *fu = cmd->fu; usbg_send_read_response() 1043 return bot_send_read_response(cmd); usbg_send_read_response() 1045 return uasp_send_read_response(cmd); usbg_send_read_response() 1050 struct usbg_cmd *cmd = container_of(work, struct usbg_cmd, work); usbg_cmd_work() local 1056 se_cmd = &cmd->se_cmd; usbg_cmd_work() 1057 tpg = cmd->fu->tpg; usbg_cmd_work() 1059 dir = get_cmd_dir(cmd->cmd_buf); usbg_cmd_work() 1063 tv_nexus->tvn_se_sess, cmd->data_len, DMA_NONE, usbg_cmd_work() 1064 cmd->prio_attr, cmd->sense_iu.sense); usbg_cmd_work() 1069 cmd->cmd_buf, cmd->sense_iu.sense, cmd->unpacked_lun, usbg_cmd_work() 1070 0, cmd->prio_attr, dir, TARGET_SCF_UNKNOWN_SIZE) < 0) usbg_cmd_work() 1078 usbg_cleanup_cmd(cmd); usbg_cmd_work() 1085 struct usbg_cmd *cmd; usbg_submit_command() local 1097 cmd = kzalloc(sizeof *cmd, GFP_ATOMIC); usbg_submit_command() 1098 if (!cmd) usbg_submit_command() 1101 cmd->fu = fu; usbg_submit_command() 1104 kref_init(&cmd->ref); usbg_submit_command() 1105 kref_get(&cmd->ref); usbg_submit_command() 1112 memcpy(cmd->cmd_buf, cmd_iu->cdb, cmd_len); usbg_submit_command() 1114 cmd->tag = be16_to_cpup(&cmd_iu->tag); usbg_submit_command() 1116 if (cmd->tag > UASP_SS_EP_COMP_NUM_STREAMS) usbg_submit_command() 1118 if (!cmd->tag) usbg_submit_command() 1119 cmd->stream = &fu->stream[0]; usbg_submit_command() 1121 cmd->stream = &fu->stream[cmd->tag - 1]; usbg_submit_command() 1123 cmd->stream = &fu->stream[0]; usbg_submit_command() 1134 cmd->prio_attr = TCM_HEAD_TAG; usbg_submit_command() 1137 cmd->prio_attr = TCM_ORDERED_TAG; usbg_submit_command() 1140 cmd->prio_attr = TCM_ACA_TAG; usbg_submit_command() 1146 cmd->prio_attr = TCM_SIMPLE_TAG; usbg_submit_command() 1150 se_cmd = &cmd->se_cmd; usbg_submit_command() 1151 cmd->unpacked_lun = scsilun_to_int(&cmd_iu->lun); usbg_submit_command() 1153 INIT_WORK(&cmd->work, usbg_cmd_work); usbg_submit_command() 1154 ret = queue_work(tpg->workqueue, &cmd->work); usbg_submit_command() 1160 kfree(cmd); usbg_submit_command() 1166 struct usbg_cmd *cmd = container_of(work, struct usbg_cmd, work); bot_cmd_work() local 1172 se_cmd = &cmd->se_cmd; bot_cmd_work() 1173 tpg = cmd->fu->tpg; bot_cmd_work() 1175 dir = get_cmd_dir(cmd->cmd_buf); bot_cmd_work() 1179 tv_nexus->tvn_se_sess, cmd->data_len, DMA_NONE, bot_cmd_work() 1180 cmd->prio_attr, cmd->sense_iu.sense); bot_cmd_work() 1185 cmd->cmd_buf, cmd->sense_iu.sense, cmd->unpacked_lun, bot_cmd_work() 1186 cmd->data_len, cmd->prio_attr, dir, 0) < 0) bot_cmd_work() 1194 usbg_cleanup_cmd(cmd); bot_cmd_work() 1201 struct usbg_cmd *cmd; bot_submit_command() local 1221 cmd = kzalloc(sizeof *cmd, GFP_ATOMIC); bot_submit_command() 1222 if (!cmd) bot_submit_command() 1225 cmd->fu = fu; bot_submit_command() 1228 kref_init(&cmd->ref); bot_submit_command() 1229 kref_get(&cmd->ref); bot_submit_command() 1233 memcpy(cmd->cmd_buf, cbw->CDB, cmd_len); bot_submit_command() 1235 cmd->bot_tag = cbw->Tag; bot_submit_command() 1243 cmd->prio_attr = TCM_SIMPLE_TAG; bot_submit_command() 1244 se_cmd = &cmd->se_cmd; bot_submit_command() 1245 cmd->unpacked_lun = cbw->Lun; bot_submit_command() 1246 cmd->is_read = cbw->Flags & US_BULK_FLAG_IN ? 1 : 0; bot_submit_command() 1247 cmd->data_len = le32_to_cpu(cbw->DataTransferLength); bot_submit_command() 1249 INIT_WORK(&cmd->work, bot_cmd_work); bot_submit_command() 1250 ret = queue_work(tpg->workqueue, &cmd->work); bot_submit_command() 1256 kfree(cmd); bot_submit_command() 1408 struct usbg_cmd *cmd = container_of(ref, struct usbg_cmd, usbg_cmd_release() local 1411 transport_generic_free_cmd(&cmd->se_cmd, 0); usbg_cmd_release() 1416 struct usbg_cmd *cmd = container_of(se_cmd, struct usbg_cmd, usbg_release_cmd() local 1418 kfree(cmd->data_buf); usbg_release_cmd() 1419 kfree(cmd); usbg_release_cmd() 1453 struct usbg_cmd *cmd = container_of(se_cmd, struct usbg_cmd, usbg_get_task_tag() local 1455 struct f_uas *fu = cmd->fu; usbg_get_task_tag() 1458 return le32_to_cpu(cmd->bot_tag); usbg_get_task_tag() 1460 return cmd->tag; usbg_get_task_tag() 1859 struct usbg_cmd *cmd = container_of(se_cmd, struct usbg_cmd, usbg_check_stop_free() local 1862 kref_put(&cmd->ref, usbg_cmd_release); usbg_check_stop_free()
|
/linux-4.1.27/drivers/media/usb/dvb-usb/ |
H A D | vp702x-fe.c | 147 u8 *cmd; vp702x_fe_set_frontend() local 151 cmd = dst->buf; vp702x_fe_set_frontend() 152 memset(cmd, 0, 10); vp702x_fe_set_frontend() 154 cmd[0] = (freq >> 8) & 0x7f; vp702x_fe_set_frontend() 155 cmd[1] = freq & 0xff; vp702x_fe_set_frontend() 156 cmd[2] = 1; /* divrate == 4 -> frequencyRef[1] -> 1 here */ vp702x_fe_set_frontend() 160 cmd[3] = (sr >> 12) & 0xff; vp702x_fe_set_frontend() 161 cmd[4] = (sr >> 4) & 0xff; vp702x_fe_set_frontend() 162 cmd[5] = (sr << 4) & 0xf0; vp702x_fe_set_frontend() 169 cmd[6] |= 0x80; */ vp702x_fe_set_frontend() 172 cmd[6] |= 0x40; vp702x_fe_set_frontend() 175 cmd[6] |= 0x20; vp702x_fe_set_frontend() 178 cmd[6] |= 0x04; vp702x_fe_set_frontend() 181 cmd[6] |= 0x01;*/ vp702x_fe_set_frontend() 183 cmd[7] = vp702x_chksum(cmd,0,7); vp702x_fe_set_frontend() 188 vp702x_usb_inout_op(st->d, cmd, 8, cmd, 10, 100); vp702x_fe_set_frontend() 190 if (cmd[2] == 0 && cmd[3] == 0) vp702x_fe_set_frontend() 217 u8 *cmd; vp702x_fe_send_diseqc_msg() local 228 cmd = dst->buf; vp702x_fe_send_diseqc_msg() 229 cmd[1] = SET_DISEQC_CMD; vp702x_fe_send_diseqc_msg() 230 cmd[2] = m->msg_len; vp702x_fe_send_diseqc_msg() 231 memcpy(&cmd[3], m->msg, m->msg_len); vp702x_fe_send_diseqc_msg() 232 cmd[7] = vp702x_chksum(cmd, 0, 7); vp702x_fe_send_diseqc_msg() 234 vp702x_usb_inout_op(st->d, cmd, 8, cmd, 10, 100); vp702x_fe_send_diseqc_msg() 236 if (cmd[2] == 0 && cmd[3] == 0) vp702x_fe_send_diseqc_msg() 237 deb_fe("diseqc cmd failed.\n"); vp702x_fe_send_diseqc_msg() 239 deb_fe("diseqc cmd succeeded.\n"); vp702x_fe_send_diseqc_msg() 276 deb_fe("set_tone cmd failed.\n"); vp702x_fe_set_tone() 278 deb_fe("set_tone cmd succeeded.\n"); vp702x_fe_set_tone() 309 deb_fe("set_voltage cmd failed.\n"); vp702x_fe_set_voltage() 311 deb_fe("set_voltage cmd succeeded.\n"); vp702x_fe_set_voltage()
|
H A D | gp8psk-fe.c | 120 u8 cmd[10]; gp8psk_fe_set_frontend() local 126 cmd[4] = freq & 0xff; gp8psk_fe_set_frontend() 127 cmd[5] = (freq >> 8) & 0xff; gp8psk_fe_set_frontend() 128 cmd[6] = (freq >> 16) & 0xff; gp8psk_fe_set_frontend() 129 cmd[7] = (freq >> 24) & 0xff; gp8psk_fe_set_frontend() 157 cmd[0] = c->symbol_rate & 0xff; gp8psk_fe_set_frontend() 158 cmd[1] = (c->symbol_rate >> 8) & 0xff; gp8psk_fe_set_frontend() 159 cmd[2] = (c->symbol_rate >> 16) & 0xff; gp8psk_fe_set_frontend() 160 cmd[3] = (c->symbol_rate >> 24) & 0xff; gp8psk_fe_set_frontend() 168 cmd[9] = 0; break; gp8psk_fe_set_frontend() 170 cmd[9] = 1; break; gp8psk_fe_set_frontend() 172 cmd[9] = 2; break; gp8psk_fe_set_frontend() 174 cmd[9] = 3; break; gp8psk_fe_set_frontend() 176 cmd[9] = 4; break; gp8psk_fe_set_frontend() 178 cmd[9] = 5; break; gp8psk_fe_set_frontend() 180 cmd[9] = 5; break; gp8psk_fe_set_frontend() 183 cmd[8] = ADV_MOD_TURBO_QPSK; gp8psk_fe_set_frontend() 185 cmd[8] = ADV_MOD_DVB_QPSK; gp8psk_fe_set_frontend() 188 cmd[8] = ADV_MOD_TURBO_8PSK; gp8psk_fe_set_frontend() 191 cmd[9] = 0; break; gp8psk_fe_set_frontend() 193 cmd[9] = 1; break; gp8psk_fe_set_frontend() 195 cmd[9] = 2; break; gp8psk_fe_set_frontend() 197 cmd[9] = 3; break; gp8psk_fe_set_frontend() 199 cmd[9] = 4; break; gp8psk_fe_set_frontend() 201 cmd[9] = 0; break; gp8psk_fe_set_frontend() 205 cmd[8] = ADV_MOD_TURBO_16QAM; gp8psk_fe_set_frontend() 206 cmd[9] = 0; gp8psk_fe_set_frontend() 216 gp8psk_usb_out_op(state->d, TUNE_8PSK, 0, 0, cmd, 10); gp8psk_fe_set_frontend() 243 u8 cmd; gp8psk_fe_send_diseqc_burst() local 248 cmd = (burst == SEC_MINI_A) ? 0x00 : 0x01; gp8psk_fe_send_diseqc_burst() 250 if (gp8psk_usb_out_op(st->d,SEND_DISEQC_COMMAND, cmd, 0, gp8psk_fe_send_diseqc_burst() 251 &cmd, 0)) { gp8psk_fe_send_diseqc_burst() 288 u8 cmd = sw_cmd & 0x7f; gp8psk_fe_send_legacy_dish_cmd() local 290 if (gp8psk_usb_out_op(state->d,SET_DN_SWITCH, cmd, 0, gp8psk_fe_send_legacy_dish_cmd()
|
/linux-4.1.27/include/linux/input/ |
H A D | lm8333.h | 20 extern int lm8333_read8(struct lm8333 *lm8333, u8 cmd); 21 extern int lm8333_write8(struct lm8333 *lm8333, u8 cmd, u8 val); 22 extern int lm8333_read_block(struct lm8333 *lm8333, u8 cmd, u8 len, u8 *buf);
|
/linux-4.1.27/drivers/net/wireless/ |
H A D | mwl8k.c | 439 static const char *mwl8k_cmd_name(__le16 cmd, char *buf, int bufsize) mwl8k_cmd_name() argument 441 u16 command = le16_to_cpu(cmd); mwl8k_cmd_name() 480 snprintf(buf, bufsize, "0x%x", cmd); mwl8k_cmd_name() 638 struct mwl8k_cmd_pkt *cmd; mwl8k_load_fw_image() local 642 cmd = kmalloc(sizeof(*cmd) + 256, GFP_KERNEL); mwl8k_load_fw_image() 643 if (cmd == NULL) mwl8k_load_fw_image() 646 cmd->code = cpu_to_le16(MWL8K_CMD_CODE_DNLD); mwl8k_load_fw_image() 647 cmd->seq_num = 0; mwl8k_load_fw_image() 648 cmd->macid = 0; mwl8k_load_fw_image() 649 cmd->result = 0; mwl8k_load_fw_image() 655 memcpy(cmd->payload, data + done, block_size); mwl8k_load_fw_image() 656 cmd->length = cpu_to_le16(block_size); mwl8k_load_fw_image() 658 rc = mwl8k_send_fw_load_cmd(priv, cmd, mwl8k_load_fw_image() 659 sizeof(*cmd) + block_size); mwl8k_load_fw_image() 668 cmd->length = 0; mwl8k_load_fw_image() 669 rc = mwl8k_send_fw_load_cmd(priv, cmd, sizeof(*cmd)); mwl8k_load_fw_image() 672 kfree(cmd); mwl8k_load_fw_image() 2189 static int mwl8k_post_cmd(struct ieee80211_hw *hw, struct mwl8k_cmd_pkt *cmd) mwl8k_post_cmd() argument 2202 mwl8k_cmd_name(cmd->code, buf, sizeof(buf)), cmd->macid); mwl8k_post_cmd() 2214 switch (le16_to_cpu(cmd->code)) { mwl8k_post_cmd() 2228 cmd->result = (__force __le16) 0xffff; mwl8k_post_cmd() 2229 dma_size = le16_to_cpu(cmd->length); mwl8k_post_cmd() 2230 dma_addr = pci_map_single(priv->pdev, cmd, dma_size, mwl8k_post_cmd() 2253 mwl8k_cmd_name(cmd->code, buf, sizeof(buf)), mwl8k_post_cmd() 2261 rc = cmd->result ? -EINVAL : 0; mwl8k_post_cmd() 2264 mwl8k_cmd_name(cmd->code, buf, sizeof(buf)), mwl8k_post_cmd() 2265 le16_to_cpu(cmd->result)); mwl8k_post_cmd() 2268 mwl8k_cmd_name(cmd->code, mwl8k_post_cmd() 2283 struct mwl8k_cmd_pkt *cmd) mwl8k_post_pervif_cmd() 2286 cmd->macid = MWL8K_VIF(vif)->macid; mwl8k_post_pervif_cmd() 2287 return mwl8k_post_cmd(hw, cmd); mwl8k_post_pervif_cmd() 2444 struct mwl8k_cmd_get_hw_spec_sta *cmd; mwl8k_cmd_get_hw_spec_sta() local 2448 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_get_hw_spec_sta() 2449 if (cmd == NULL) mwl8k_cmd_get_hw_spec_sta() 2452 cmd->header.code = cpu_to_le16(MWL8K_CMD_GET_HW_SPEC); mwl8k_cmd_get_hw_spec_sta() 2453 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_get_hw_spec_sta() 2455 memset(cmd->perm_addr, 0xff, sizeof(cmd->perm_addr)); mwl8k_cmd_get_hw_spec_sta() 2456 cmd->ps_cookie = cpu_to_le32(priv->cookie_dma); mwl8k_cmd_get_hw_spec_sta() 2457 cmd->rx_queue_ptr = cpu_to_le32(priv->rxq[0].rxd_dma); mwl8k_cmd_get_hw_spec_sta() 2458 cmd->num_tx_queues = cpu_to_le32(mwl8k_tx_queues(priv)); mwl8k_cmd_get_hw_spec_sta() 2460 cmd->tx_queue_ptrs[i] = cpu_to_le32(priv->txq[i].txd_dma); mwl8k_cmd_get_hw_spec_sta() 2461 cmd->num_tx_desc_per_queue = cpu_to_le32(MWL8K_TX_DESCS); mwl8k_cmd_get_hw_spec_sta() 2462 cmd->total_rxd = cpu_to_le32(MWL8K_RX_DESCS); mwl8k_cmd_get_hw_spec_sta() 2464 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_get_hw_spec_sta() 2467 SET_IEEE80211_PERM_ADDR(hw, cmd->perm_addr); mwl8k_cmd_get_hw_spec_sta() 2468 priv->num_mcaddrs = le16_to_cpu(cmd->num_mcaddrs); mwl8k_cmd_get_hw_spec_sta() 2469 priv->fw_rev = le32_to_cpu(cmd->fw_rev); mwl8k_cmd_get_hw_spec_sta() 2470 priv->hw_rev = cmd->hw_rev; mwl8k_cmd_get_hw_spec_sta() 2471 mwl8k_set_caps(hw, le32_to_cpu(cmd->caps)); mwl8k_cmd_get_hw_spec_sta() 2476 kfree(cmd); mwl8k_cmd_get_hw_spec_sta() 2509 struct mwl8k_cmd_get_hw_spec_ap *cmd; mwl8k_cmd_get_hw_spec_ap() local 2513 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_get_hw_spec_ap() 2514 if (cmd == NULL) mwl8k_cmd_get_hw_spec_ap() 2517 cmd->header.code = cpu_to_le16(MWL8K_CMD_GET_HW_SPEC); mwl8k_cmd_get_hw_spec_ap() 2518 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_get_hw_spec_ap() 2520 memset(cmd->perm_addr, 0xff, sizeof(cmd->perm_addr)); mwl8k_cmd_get_hw_spec_ap() 2521 cmd->ps_cookie = cpu_to_le32(priv->cookie_dma); mwl8k_cmd_get_hw_spec_ap() 2523 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_get_hw_spec_ap() 2528 api_version = le32_to_cpu(cmd->fw_api_version); mwl8k_cmd_get_hw_spec_ap() 2538 SET_IEEE80211_PERM_ADDR(hw, cmd->perm_addr); mwl8k_cmd_get_hw_spec_ap() 2539 priv->num_mcaddrs = le16_to_cpu(cmd->num_mcaddrs); mwl8k_cmd_get_hw_spec_ap() 2540 priv->fw_rev = le32_to_cpu(cmd->fw_rev); mwl8k_cmd_get_hw_spec_ap() 2541 priv->hw_rev = cmd->hw_rev; mwl8k_cmd_get_hw_spec_ap() 2542 mwl8k_set_caps(hw, le32_to_cpu(cmd->caps)); mwl8k_cmd_get_hw_spec_ap() 2545 priv->num_ampdu_queues = le32_to_cpu(cmd->num_of_ampdu_queues); mwl8k_cmd_get_hw_spec_ap() 2553 off = le32_to_cpu(cmd->rxwrptr) & 0xffff; mwl8k_cmd_get_hw_spec_ap() 2556 off = le32_to_cpu(cmd->rxrdptr) & 0xffff; mwl8k_cmd_get_hw_spec_ap() 2559 priv->txq_offset[0] = le32_to_cpu(cmd->wcbbase0) & 0xffff; mwl8k_cmd_get_hw_spec_ap() 2560 priv->txq_offset[1] = le32_to_cpu(cmd->wcbbase1) & 0xffff; mwl8k_cmd_get_hw_spec_ap() 2561 priv->txq_offset[2] = le32_to_cpu(cmd->wcbbase2) & 0xffff; mwl8k_cmd_get_hw_spec_ap() 2562 priv->txq_offset[3] = le32_to_cpu(cmd->wcbbase3) & 0xffff; mwl8k_cmd_get_hw_spec_ap() 2566 le32_to_cpu(cmd->wcbbase_ampdu[i]) & 0xffff; mwl8k_cmd_get_hw_spec_ap() 2570 kfree(cmd); mwl8k_cmd_get_hw_spec_ap() 2611 struct mwl8k_cmd_set_hw_spec *cmd; mwl8k_cmd_set_hw_spec() local 2615 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_hw_spec() 2616 if (cmd == NULL) mwl8k_cmd_set_hw_spec() 2619 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_HW_SPEC); mwl8k_cmd_set_hw_spec() 2620 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_hw_spec() 2622 cmd->ps_cookie = cpu_to_le32(priv->cookie_dma); mwl8k_cmd_set_hw_spec() 2623 cmd->rx_queue_ptr = cpu_to_le32(priv->rxq[0].rxd_dma); mwl8k_cmd_set_hw_spec() 2624 cmd->num_tx_queues = cpu_to_le32(mwl8k_tx_queues(priv)); mwl8k_cmd_set_hw_spec() 2634 cmd->tx_queue_ptrs[i] = cpu_to_le32(priv->txq[j].txd_dma); mwl8k_cmd_set_hw_spec() 2637 cmd->flags = cpu_to_le32(MWL8K_SET_HW_SPEC_FLAG_HOST_DECR_MGMT | mwl8k_cmd_set_hw_spec() 2642 cmd->num_tx_desc_per_queue = cpu_to_le32(MWL8K_TX_DESCS); mwl8k_cmd_set_hw_spec() 2643 cmd->total_rxd = cpu_to_le32(MWL8K_RX_DESCS); mwl8k_cmd_set_hw_spec() 2645 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_set_hw_spec() 2646 kfree(cmd); mwl8k_cmd_set_hw_spec() 2671 struct mwl8k_cmd_mac_multicast_adr *cmd; __mwl8k_cmd_mac_multicast_adr() local 2683 size = sizeof(*cmd) + mc_count * ETH_ALEN; __mwl8k_cmd_mac_multicast_adr() 2685 cmd = kzalloc(size, GFP_ATOMIC); __mwl8k_cmd_mac_multicast_adr() 2686 if (cmd == NULL) __mwl8k_cmd_mac_multicast_adr() 2689 cmd->header.code = cpu_to_le16(MWL8K_CMD_MAC_MULTICAST_ADR); __mwl8k_cmd_mac_multicast_adr() 2690 cmd->header.length = cpu_to_le16(size); __mwl8k_cmd_mac_multicast_adr() 2691 cmd->action = cpu_to_le16(MWL8K_ENABLE_RX_DIRECTED | __mwl8k_cmd_mac_multicast_adr() 2695 cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_ALL_MULTICAST); __mwl8k_cmd_mac_multicast_adr() 2700 cmd->action |= cpu_to_le16(MWL8K_ENABLE_RX_MULTICAST); __mwl8k_cmd_mac_multicast_adr() 2701 cmd->numaddr = cpu_to_le16(mc_count); netdev_hw_addr_list_for_each() 2703 memcpy(cmd->addr[i], ha->addr, ETH_ALEN); netdev_hw_addr_list_for_each() 2707 return &cmd->header; 2726 struct mwl8k_cmd_get_stat *cmd; mwl8k_cmd_get_stat() local 2729 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_get_stat() 2730 if (cmd == NULL) mwl8k_cmd_get_stat() 2733 cmd->header.code = cpu_to_le16(MWL8K_CMD_GET_STAT); mwl8k_cmd_get_stat() 2734 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_get_stat() 2736 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_get_stat() 2739 le32_to_cpu(cmd->stats[MWL8K_STAT_ACK_FAILURE]); mwl8k_cmd_get_stat() 2741 le32_to_cpu(cmd->stats[MWL8K_STAT_RTS_FAILURE]); mwl8k_cmd_get_stat() 2743 le32_to_cpu(cmd->stats[MWL8K_STAT_FCS_ERROR]); mwl8k_cmd_get_stat() 2745 le32_to_cpu(cmd->stats[MWL8K_STAT_RTS_SUCCESS]); mwl8k_cmd_get_stat() 2747 kfree(cmd); mwl8k_cmd_get_stat() 2766 struct mwl8k_cmd_radio_control *cmd; mwl8k_cmd_radio_control() local 2772 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_radio_control() 2773 if (cmd == NULL) mwl8k_cmd_radio_control() 2776 cmd->header.code = cpu_to_le16(MWL8K_CMD_RADIO_CONTROL); mwl8k_cmd_radio_control() 2777 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_radio_control() 2778 cmd->action = cpu_to_le16(MWL8K_CMD_SET); mwl8k_cmd_radio_control() 2779 cmd->control = cpu_to_le16(priv->radio_short_preamble ? 3 : 1); mwl8k_cmd_radio_control() 2780 cmd->radio_on = cpu_to_le16(enable ? 0x0001 : 0x0000); mwl8k_cmd_radio_control() 2782 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_radio_control() 2783 kfree(cmd); mwl8k_cmd_radio_control() 2827 struct mwl8k_cmd_rf_tx_power *cmd; mwl8k_cmd_rf_tx_power() local 2830 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_rf_tx_power() 2831 if (cmd == NULL) mwl8k_cmd_rf_tx_power() 2834 cmd->header.code = cpu_to_le16(MWL8K_CMD_RF_TX_POWER); mwl8k_cmd_rf_tx_power() 2835 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_rf_tx_power() 2836 cmd->action = cpu_to_le16(MWL8K_CMD_SET); mwl8k_cmd_rf_tx_power() 2837 cmd->support_level = cpu_to_le16(dBm); mwl8k_cmd_rf_tx_power() 2839 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_rf_tx_power() 2840 kfree(cmd); mwl8k_cmd_rf_tx_power() 2867 struct mwl8k_cmd_tx_power *cmd; mwl8k_cmd_tx_power() local 2871 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_tx_power() 2872 if (cmd == NULL) mwl8k_cmd_tx_power() 2875 cmd->header.code = cpu_to_le16(MWL8K_CMD_TX_POWER); mwl8k_cmd_tx_power() 2876 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_tx_power() 2877 cmd->action = cpu_to_le16(MWL8K_CMD_SET_LIST); mwl8k_cmd_tx_power() 2880 cmd->band = cpu_to_le16(0x1); mwl8k_cmd_tx_power() 2882 cmd->band = cpu_to_le16(0x4); mwl8k_cmd_tx_power() 2884 cmd->channel = cpu_to_le16(channel->hw_value); mwl8k_cmd_tx_power() 2888 cmd->bw = cpu_to_le16(0x2); mwl8k_cmd_tx_power() 2890 cmd->bw = cpu_to_le16(0x4); mwl8k_cmd_tx_power() 2892 cmd->sub_ch = cpu_to_le16(0x3); mwl8k_cmd_tx_power() 2894 cmd->sub_ch = cpu_to_le16(0x1); mwl8k_cmd_tx_power() 2898 cmd->power_level_list[i] = cpu_to_le16(pwr); mwl8k_cmd_tx_power() 2900 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_tx_power() 2901 kfree(cmd); mwl8k_cmd_tx_power() 2921 struct mwl8k_cmd_rf_antenna *cmd; mwl8k_cmd_rf_antenna() local 2924 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_rf_antenna() 2925 if (cmd == NULL) mwl8k_cmd_rf_antenna() 2928 cmd->header.code = cpu_to_le16(MWL8K_CMD_RF_ANTENNA); mwl8k_cmd_rf_antenna() 2929 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_rf_antenna() 2930 cmd->antenna = cpu_to_le16(antenna); mwl8k_cmd_rf_antenna() 2931 cmd->mode = cpu_to_le16(mask); mwl8k_cmd_rf_antenna() 2933 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_rf_antenna() 2934 kfree(cmd); mwl8k_cmd_rf_antenna() 2951 struct mwl8k_cmd_set_beacon *cmd; mwl8k_cmd_set_beacon() local 2954 cmd = kzalloc(sizeof(*cmd) + len, GFP_KERNEL); mwl8k_cmd_set_beacon() 2955 if (cmd == NULL) mwl8k_cmd_set_beacon() 2958 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_BEACON); mwl8k_cmd_set_beacon() 2959 cmd->header.length = cpu_to_le16(sizeof(*cmd) + len); mwl8k_cmd_set_beacon() 2960 cmd->beacon_len = cpu_to_le16(len); mwl8k_cmd_set_beacon() 2961 memcpy(cmd->beacon, beacon, len); mwl8k_cmd_set_beacon() 2963 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_set_beacon() 2964 kfree(cmd); mwl8k_cmd_set_beacon() 2978 struct mwl8k_cmd_set_pre_scan *cmd; mwl8k_cmd_set_pre_scan() local 2981 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_pre_scan() 2982 if (cmd == NULL) mwl8k_cmd_set_pre_scan() 2985 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_PRE_SCAN); mwl8k_cmd_set_pre_scan() 2986 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_pre_scan() 2988 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_set_pre_scan() 2989 kfree(cmd); mwl8k_cmd_set_pre_scan() 3011 struct mwl8k_cmd_bbp_reg_access *cmd; mwl8k_cmd_bbp_reg_access() local 3014 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_bbp_reg_access() 3015 if (cmd == NULL) mwl8k_cmd_bbp_reg_access() 3018 cmd->header.code = cpu_to_le16(MWL8K_CMD_BBP_REG_ACCESS); mwl8k_cmd_bbp_reg_access() 3019 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_bbp_reg_access() 3020 cmd->action = cpu_to_le16(action); mwl8k_cmd_bbp_reg_access() 3021 cmd->offset = cpu_to_le16(offset); mwl8k_cmd_bbp_reg_access() 3023 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_bbp_reg_access() 3026 *value = cmd->value; mwl8k_cmd_bbp_reg_access() 3030 kfree(cmd); mwl8k_cmd_bbp_reg_access() 3047 struct mwl8k_cmd_set_post_scan *cmd; mwl8k_cmd_set_post_scan() local 3050 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_post_scan() 3051 if (cmd == NULL) mwl8k_cmd_set_post_scan() 3054 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_POST_SCAN); mwl8k_cmd_set_post_scan() 3055 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_post_scan() 3056 cmd->isibss = 0; mwl8k_cmd_set_post_scan() 3057 memcpy(cmd->bssid, mac, ETH_ALEN); mwl8k_cmd_set_post_scan() 3059 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_set_post_scan() 3060 kfree(cmd); mwl8k_cmd_set_post_scan() 3139 struct mwl8k_cmd_set_rf_channel *cmd; mwl8k_cmd_set_rf_channel() local 3143 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_rf_channel() 3144 if (cmd == NULL) mwl8k_cmd_set_rf_channel() 3147 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_RF_CHANNEL); mwl8k_cmd_set_rf_channel() 3148 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_rf_channel() 3149 cmd->action = cpu_to_le16(MWL8K_CMD_SET); mwl8k_cmd_set_rf_channel() 3150 cmd->current_channel = channel->hw_value; mwl8k_cmd_set_rf_channel() 3153 cmd->channel_flags |= cpu_to_le32(0x00000001); mwl8k_cmd_set_rf_channel() 3155 cmd->channel_flags |= cpu_to_le32(0x00000004); mwl8k_cmd_set_rf_channel() 3160 cmd->channel_flags |= cpu_to_le32(0x00000080); mwl8k_cmd_set_rf_channel() 3162 cmd->channel_flags |= cpu_to_le32(0x000001900); mwl8k_cmd_set_rf_channel() 3164 cmd->channel_flags |= cpu_to_le32(0x000000900); mwl8k_cmd_set_rf_channel() 3166 cmd->channel_flags |= cpu_to_le32(0x00000080); mwl8k_cmd_set_rf_channel() 3181 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_set_rf_channel() 3182 kfree(cmd); mwl8k_cmd_set_rf_channel() 3225 struct mwl8k_cmd_update_set_aid *cmd; mwl8k_cmd_set_aid() local 3229 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_aid() 3230 if (cmd == NULL) mwl8k_cmd_set_aid() 3233 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_AID); mwl8k_cmd_set_aid() 3234 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_aid() 3235 cmd->aid = cpu_to_le16(vif->bss_conf.aid); mwl8k_cmd_set_aid() 3236 memcpy(cmd->bssid, vif->bss_conf.bssid, ETH_ALEN); mwl8k_cmd_set_aid() 3254 cmd->protection_mode = cpu_to_le16(prot_mode); mwl8k_cmd_set_aid() 3256 legacy_rate_mask_to_array(cmd->supp_rates, legacy_rate_mask); mwl8k_cmd_set_aid() 3258 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_set_aid() 3259 kfree(cmd); mwl8k_cmd_set_aid() 3280 struct mwl8k_cmd_set_rate *cmd; mwl8k_cmd_set_rate() local 3283 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_rate() 3284 if (cmd == NULL) mwl8k_cmd_set_rate() 3287 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_RATE); mwl8k_cmd_set_rate() 3288 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_rate() 3289 legacy_rate_mask_to_array(cmd->legacy_rates, legacy_rate_mask); mwl8k_cmd_set_rate() 3290 memcpy(cmd->mcs_set, mcs_rates, 16); mwl8k_cmd_set_rate() 3292 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_set_rate() 3293 kfree(cmd); mwl8k_cmd_set_rate() 3312 struct mwl8k_cmd_finalize_join *cmd; mwl8k_cmd_finalize_join() local 3317 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_finalize_join() 3318 if (cmd == NULL) mwl8k_cmd_finalize_join() 3321 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_FINALIZE_JOIN); mwl8k_cmd_finalize_join() 3322 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_finalize_join() 3323 cmd->sleep_interval = cpu_to_le32(dtim ? dtim : 1); mwl8k_cmd_finalize_join() 3331 memcpy(cmd->beacon_data, &payload->u.beacon, payload_len); mwl8k_cmd_finalize_join() 3333 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_finalize_join() 3334 kfree(cmd); mwl8k_cmd_finalize_join() 3351 struct mwl8k_cmd_set_rts_threshold *cmd; mwl8k_cmd_set_rts_threshold() local 3354 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_rts_threshold() 3355 if (cmd == NULL) mwl8k_cmd_set_rts_threshold() 3358 cmd->header.code = cpu_to_le16(MWL8K_CMD_RTS_THRESHOLD); mwl8k_cmd_set_rts_threshold() 3359 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_rts_threshold() 3360 cmd->action = cpu_to_le16(MWL8K_CMD_SET); mwl8k_cmd_set_rts_threshold() 3361 cmd->threshold = cpu_to_le16(rts_thresh); mwl8k_cmd_set_rts_threshold() 3363 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_set_rts_threshold() 3364 kfree(cmd); mwl8k_cmd_set_rts_threshold() 3380 struct mwl8k_cmd_set_slot *cmd; mwl8k_cmd_set_slot() local 3383 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_slot() 3384 if (cmd == NULL) mwl8k_cmd_set_slot() 3387 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_SLOT); mwl8k_cmd_set_slot() 3388 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_slot() 3389 cmd->action = cpu_to_le16(MWL8K_CMD_SET); mwl8k_cmd_set_slot() 3390 cmd->short_slot = short_slot_time; mwl8k_cmd_set_slot() 3392 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_set_slot() 3393 kfree(cmd); mwl8k_cmd_set_slot() 3454 struct mwl8k_cmd_set_edca_params *cmd; mwl8k_cmd_set_edca_params() local 3457 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_edca_params() 3458 if (cmd == NULL) mwl8k_cmd_set_edca_params() 3461 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_EDCA_PARAMS); mwl8k_cmd_set_edca_params() 3462 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_edca_params() 3463 cmd->action = cpu_to_le16(MWL8K_SET_EDCA_ALL); mwl8k_cmd_set_edca_params() 3464 cmd->txop = cpu_to_le16(txop); mwl8k_cmd_set_edca_params() 3466 cmd->ap.log_cw_max = cpu_to_le32(ilog2(cw_max + 1)); mwl8k_cmd_set_edca_params() 3467 cmd->ap.log_cw_min = cpu_to_le32(ilog2(cw_min + 1)); mwl8k_cmd_set_edca_params() 3468 cmd->ap.aifs = aifs; mwl8k_cmd_set_edca_params() 3469 cmd->ap.txq = qnum; mwl8k_cmd_set_edca_params() 3471 cmd->sta.log_cw_max = (u8)ilog2(cw_max + 1); mwl8k_cmd_set_edca_params() 3472 cmd->sta.log_cw_min = (u8)ilog2(cw_min + 1); mwl8k_cmd_set_edca_params() 3473 cmd->sta.aifs = aifs; mwl8k_cmd_set_edca_params() 3474 cmd->sta.txq = qnum; mwl8k_cmd_set_edca_params() 3477 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_set_edca_params() 3478 kfree(cmd); mwl8k_cmd_set_edca_params() 3494 struct mwl8k_cmd_set_wmm_mode *cmd; mwl8k_cmd_set_wmm_mode() local 3497 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_wmm_mode() 3498 if (cmd == NULL) mwl8k_cmd_set_wmm_mode() 3501 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_WMM_MODE); mwl8k_cmd_set_wmm_mode() 3502 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_wmm_mode() 3503 cmd->action = cpu_to_le16(!!enable); mwl8k_cmd_set_wmm_mode() 3505 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_set_wmm_mode() 3506 kfree(cmd); mwl8k_cmd_set_wmm_mode() 3526 struct mwl8k_cmd_mimo_config *cmd; mwl8k_cmd_mimo_config() local 3529 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_mimo_config() 3530 if (cmd == NULL) mwl8k_cmd_mimo_config() 3533 cmd->header.code = cpu_to_le16(MWL8K_CMD_MIMO_CONFIG); mwl8k_cmd_mimo_config() 3534 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_mimo_config() 3535 cmd->action = cpu_to_le32((u32)MWL8K_CMD_SET); mwl8k_cmd_mimo_config() 3536 cmd->rx_antenna_map = rx; mwl8k_cmd_mimo_config() 3537 cmd->tx_antenna_map = tx; mwl8k_cmd_mimo_config() 3539 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_mimo_config() 3540 kfree(cmd); mwl8k_cmd_mimo_config() 3569 struct mwl8k_cmd_use_fixed_rate_sta *cmd; mwl8k_cmd_use_fixed_rate_sta() local 3572 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_use_fixed_rate_sta() 3573 if (cmd == NULL) mwl8k_cmd_use_fixed_rate_sta() 3576 cmd->header.code = cpu_to_le16(MWL8K_CMD_USE_FIXED_RATE); mwl8k_cmd_use_fixed_rate_sta() 3577 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_use_fixed_rate_sta() 3578 cmd->action = cpu_to_le32(MWL8K_USE_AUTO_RATE); mwl8k_cmd_use_fixed_rate_sta() 3579 cmd->rate_type = cpu_to_le32(MWL8K_UCAST_RATE); mwl8k_cmd_use_fixed_rate_sta() 3581 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_use_fixed_rate_sta() 3582 kfree(cmd); mwl8k_cmd_use_fixed_rate_sta() 3609 struct mwl8k_cmd_use_fixed_rate_ap *cmd; mwl8k_cmd_use_fixed_rate_ap() local 3612 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_use_fixed_rate_ap() 3613 if (cmd == NULL) mwl8k_cmd_use_fixed_rate_ap() 3616 cmd->header.code = cpu_to_le16(MWL8K_CMD_USE_FIXED_RATE); mwl8k_cmd_use_fixed_rate_ap() 3617 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_use_fixed_rate_ap() 3618 cmd->action = cpu_to_le32(MWL8K_USE_AUTO_RATE); mwl8k_cmd_use_fixed_rate_ap() 3619 cmd->multicast_rate = mcast; mwl8k_cmd_use_fixed_rate_ap() 3620 cmd->management_rate = mgmt; mwl8k_cmd_use_fixed_rate_ap() 3622 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_use_fixed_rate_ap() 3623 kfree(cmd); mwl8k_cmd_use_fixed_rate_ap() 3638 struct mwl8k_cmd_enable_sniffer *cmd; mwl8k_cmd_enable_sniffer() local 3641 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_enable_sniffer() 3642 if (cmd == NULL) mwl8k_cmd_enable_sniffer() 3645 cmd->header.code = cpu_to_le16(MWL8K_CMD_ENABLE_SNIFFER); mwl8k_cmd_enable_sniffer() 3646 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_enable_sniffer() 3647 cmd->action = cpu_to_le32(!!enable); mwl8k_cmd_enable_sniffer() 3649 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_enable_sniffer() 3650 kfree(cmd); mwl8k_cmd_enable_sniffer() 3676 struct mwl8k_cmd_update_mac_addr *cmd; mwl8k_cmd_update_mac_addr() local 3696 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_update_mac_addr() 3697 if (cmd == NULL) mwl8k_cmd_update_mac_addr() 3701 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_MAC_ADDR); mwl8k_cmd_update_mac_addr() 3703 cmd->header.code = cpu_to_le16(MWL8K_CMD_DEL_MAC_ADDR); mwl8k_cmd_update_mac_addr() 3705 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_update_mac_addr() 3707 cmd->mbss.mac_type = cpu_to_le16(mac_type); mwl8k_cmd_update_mac_addr() 3708 memcpy(cmd->mbss.mac_addr, mac, ETH_ALEN); mwl8k_cmd_update_mac_addr() 3710 memcpy(cmd->mac_addr, mac, ETH_ALEN); mwl8k_cmd_update_mac_addr() 3713 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_update_mac_addr() 3714 kfree(cmd); mwl8k_cmd_update_mac_addr() 3748 struct mwl8k_cmd_set_rate_adapt_mode *cmd; mwl8k_cmd_set_rateadapt_mode() local 3751 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_rateadapt_mode() 3752 if (cmd == NULL) mwl8k_cmd_set_rateadapt_mode() 3755 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_RATEADAPT_MODE); mwl8k_cmd_set_rateadapt_mode() 3756 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_rateadapt_mode() 3757 cmd->action = cpu_to_le16(MWL8K_CMD_SET); mwl8k_cmd_set_rateadapt_mode() 3758 cmd->mode = cpu_to_le16(mode); mwl8k_cmd_set_rateadapt_mode() 3760 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_set_rateadapt_mode() 3761 kfree(cmd); mwl8k_cmd_set_rateadapt_mode() 3776 struct mwl8k_cmd_get_watchdog_bitmap *cmd; mwl8k_cmd_get_watchdog_bitmap() local 3779 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_get_watchdog_bitmap() 3780 if (cmd == NULL) mwl8k_cmd_get_watchdog_bitmap() 3783 cmd->header.code = cpu_to_le16(MWL8K_CMD_GET_WATCHDOG_BITMAP); mwl8k_cmd_get_watchdog_bitmap() 3784 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_get_watchdog_bitmap() 3786 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_get_watchdog_bitmap() 3788 *bitmap = cmd->bitmap; mwl8k_cmd_get_watchdog_bitmap() 3790 kfree(cmd); mwl8k_cmd_get_watchdog_bitmap() 3857 struct mwl8k_cmd_bss_start *cmd; mwl8k_cmd_bss_start() local 3868 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_bss_start() 3869 if (cmd == NULL) mwl8k_cmd_bss_start() 3872 cmd->header.code = cpu_to_le16(MWL8K_CMD_BSS_START); mwl8k_cmd_bss_start() 3873 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_bss_start() 3874 cmd->enable = cpu_to_le32(enable); mwl8k_cmd_bss_start() 3876 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_bss_start() 3877 kfree(cmd); mwl8k_cmd_bss_start() 3957 struct mwl8k_cmd_bastream *cmd; mwl8k_check_ba() local 3960 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_check_ba() 3961 if (cmd == NULL) mwl8k_check_ba() 3964 cmd->header.code = cpu_to_le16(MWL8K_CMD_BASTREAM); mwl8k_check_ba() 3965 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_check_ba() 3967 cmd->action = cpu_to_le32(MWL8K_BA_CHECK); mwl8k_check_ba() 3969 cmd->create_params.queue_id = stream->idx; mwl8k_check_ba() 3970 memcpy(&cmd->create_params.peer_mac_addr[0], stream->sta->addr, mwl8k_check_ba() 3972 cmd->create_params.tid = stream->tid; mwl8k_check_ba() 3974 cmd->create_params.flags = mwl8k_check_ba() 3978 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_check_ba() 3980 kfree(cmd); mwl8k_check_ba() 3989 struct mwl8k_cmd_bastream *cmd; mwl8k_create_ba() local 3992 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_create_ba() 3993 if (cmd == NULL) mwl8k_create_ba() 3997 cmd->header.code = cpu_to_le16(MWL8K_CMD_BASTREAM); mwl8k_create_ba() 3998 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_create_ba() 4000 cmd->action = cpu_to_le32(MWL8K_BA_CREATE); mwl8k_create_ba() 4002 cmd->create_params.bar_thrs = cpu_to_le32((u32)buf_size); mwl8k_create_ba() 4003 cmd->create_params.window_size = cpu_to_le32((u32)buf_size); mwl8k_create_ba() 4004 cmd->create_params.queue_id = stream->idx; mwl8k_create_ba() 4006 memcpy(cmd->create_params.peer_mac_addr, stream->sta->addr, ETH_ALEN); mwl8k_create_ba() 4007 cmd->create_params.tid = stream->tid; mwl8k_create_ba() 4008 cmd->create_params.curr_seq_no = cpu_to_le16(0); mwl8k_create_ba() 4009 cmd->create_params.reset_seq_no_flag = 1; mwl8k_create_ba() 4011 cmd->create_params.param_info = mwl8k_create_ba() 4017 cmd->create_params.flags = mwl8k_create_ba() 4021 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_create_ba() 4025 kfree(cmd); mwl8k_create_ba() 4033 struct mwl8k_cmd_bastream *cmd; mwl8k_destroy_ba() local 4035 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_destroy_ba() 4036 if (cmd == NULL) mwl8k_destroy_ba() 4039 cmd->header.code = cpu_to_le16(MWL8K_CMD_BASTREAM); mwl8k_destroy_ba() 4040 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_destroy_ba() 4041 cmd->action = cpu_to_le32(MWL8K_BA_DESTROY); mwl8k_destroy_ba() 4043 cmd->destroy_params.ba_context = cpu_to_le32(idx); mwl8k_destroy_ba() 4044 mwl8k_post_cmd(hw, &cmd->header); mwl8k_destroy_ba() 4048 kfree(cmd); mwl8k_destroy_ba() 4083 struct mwl8k_cmd_set_new_stn *cmd; mwl8k_cmd_set_new_stn_add() local 4087 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_new_stn_add() 4088 if (cmd == NULL) mwl8k_cmd_set_new_stn_add() 4091 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_NEW_STN); mwl8k_cmd_set_new_stn_add() 4092 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_new_stn_add() 4093 cmd->aid = cpu_to_le16(sta->aid); mwl8k_cmd_set_new_stn_add() 4094 memcpy(cmd->mac_addr, sta->addr, ETH_ALEN); mwl8k_cmd_set_new_stn_add() 4095 cmd->stn_id = cpu_to_le16(sta->aid); mwl8k_cmd_set_new_stn_add() 4096 cmd->action = cpu_to_le16(MWL8K_STA_ACTION_ADD); mwl8k_cmd_set_new_stn_add() 4101 cmd->legacy_rates = cpu_to_le32(rates); mwl8k_cmd_set_new_stn_add() 4103 cmd->ht_rates[0] = sta->ht_cap.mcs.rx_mask[0]; mwl8k_cmd_set_new_stn_add() 4104 cmd->ht_rates[1] = sta->ht_cap.mcs.rx_mask[1]; mwl8k_cmd_set_new_stn_add() 4105 cmd->ht_rates[2] = sta->ht_cap.mcs.rx_mask[2]; mwl8k_cmd_set_new_stn_add() 4106 cmd->ht_rates[3] = sta->ht_cap.mcs.rx_mask[3]; mwl8k_cmd_set_new_stn_add() 4107 cmd->ht_capabilities_info = cpu_to_le16(sta->ht_cap.cap); mwl8k_cmd_set_new_stn_add() 4108 cmd->mac_ht_param_info = (sta->ht_cap.ampdu_factor & 3) | mwl8k_cmd_set_new_stn_add() 4110 cmd->is_qos_sta = 1; mwl8k_cmd_set_new_stn_add() 4113 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_set_new_stn_add() 4114 kfree(cmd); mwl8k_cmd_set_new_stn_add() 4122 struct mwl8k_cmd_set_new_stn *cmd; mwl8k_cmd_set_new_stn_add_self() local 4125 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_new_stn_add_self() 4126 if (cmd == NULL) mwl8k_cmd_set_new_stn_add_self() 4129 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_NEW_STN); mwl8k_cmd_set_new_stn_add_self() 4130 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_new_stn_add_self() 4131 memcpy(cmd->mac_addr, vif->addr, ETH_ALEN); mwl8k_cmd_set_new_stn_add_self() 4133 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_set_new_stn_add_self() 4134 kfree(cmd); mwl8k_cmd_set_new_stn_add_self() 4142 struct mwl8k_cmd_set_new_stn *cmd; mwl8k_cmd_set_new_stn_del() local 4168 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_set_new_stn_del() 4169 if (cmd == NULL) mwl8k_cmd_set_new_stn_del() 4172 cmd->header.code = cpu_to_le16(MWL8K_CMD_SET_NEW_STN); mwl8k_cmd_set_new_stn_del() 4173 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_set_new_stn_del() 4174 memcpy(cmd->mac_addr, addr, ETH_ALEN); mwl8k_cmd_set_new_stn_del() 4175 cmd->action = cpu_to_le16(MWL8K_STA_ACTION_REMOVE); mwl8k_cmd_set_new_stn_del() 4177 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_set_new_stn_del() 4178 kfree(cmd); mwl8k_cmd_set_new_stn_del() 4250 struct mwl8k_cmd_update_encryption *cmd; mwl8k_cmd_update_encryption_enable() local 4253 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_update_encryption_enable() 4254 if (cmd == NULL) mwl8k_cmd_update_encryption_enable() 4257 cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_ENCRYPTION); mwl8k_cmd_update_encryption_enable() 4258 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_update_encryption_enable() 4259 cmd->action = cpu_to_le32(MWL8K_ENCR_ENABLE); mwl8k_cmd_update_encryption_enable() 4260 memcpy(cmd->mac_addr, addr, ETH_ALEN); mwl8k_cmd_update_encryption_enable() 4261 cmd->encr_type = encr_type; mwl8k_cmd_update_encryption_enable() 4263 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_update_encryption_enable() 4264 kfree(cmd); mwl8k_cmd_update_encryption_enable() 4269 static int mwl8k_encryption_set_cmd_info(struct mwl8k_cmd_set_key *cmd, mwl8k_encryption_set_cmd_info() argument 4273 cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_ENCRYPTION); mwl8k_encryption_set_cmd_info() 4274 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_encryption_set_cmd_info() 4275 cmd->length = cpu_to_le16(sizeof(*cmd) - mwl8k_encryption_set_cmd_info() 4277 cmd->key_id = cpu_to_le32(key->keyidx); mwl8k_encryption_set_cmd_info() 4278 cmd->key_len = cpu_to_le16(key->keylen); mwl8k_encryption_set_cmd_info() 4279 memcpy(cmd->mac_addr, addr, ETH_ALEN); mwl8k_encryption_set_cmd_info() 4284 cmd->key_type_id = cpu_to_le16(MWL8K_ALG_WEP); mwl8k_encryption_set_cmd_info() 4286 cmd->key_info = cpu_to_le32(MWL8K_KEY_FLAG_WEP_TXKEY); mwl8k_encryption_set_cmd_info() 4290 cmd->key_type_id = cpu_to_le16(MWL8K_ALG_TKIP); mwl8k_encryption_set_cmd_info() 4291 cmd->key_info = (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) mwl8k_encryption_set_cmd_info() 4294 cmd->key_info |= cpu_to_le32(MWL8K_KEY_FLAG_MICKEY_VALID mwl8k_encryption_set_cmd_info() 4298 cmd->key_type_id = cpu_to_le16(MWL8K_ALG_CCMP); mwl8k_encryption_set_cmd_info() 4299 cmd->key_info = (key->flags & IEEE80211_KEY_FLAG_PAIRWISE) mwl8k_encryption_set_cmd_info() 4315 struct mwl8k_cmd_set_key *cmd; mwl8k_cmd_encryption_set_key() local 4322 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_encryption_set_key() 4323 if (cmd == NULL) mwl8k_cmd_encryption_set_key() 4326 rc = mwl8k_encryption_set_cmd_info(cmd, addr, key); mwl8k_cmd_encryption_set_key() 4360 memcpy(cmd->key_material, key->key, keymlen); mwl8k_cmd_encryption_set_key() 4361 cmd->action = cpu_to_le32(action); mwl8k_cmd_encryption_set_key() 4363 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_encryption_set_key() 4365 kfree(cmd); mwl8k_cmd_encryption_set_key() 4375 struct mwl8k_cmd_set_key *cmd; mwl8k_cmd_encryption_remove_key() local 4379 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_encryption_remove_key() 4380 if (cmd == NULL) mwl8k_cmd_encryption_remove_key() 4383 rc = mwl8k_encryption_set_cmd_info(cmd, addr, key); mwl8k_cmd_encryption_remove_key() 4391 cmd->action = cpu_to_le32(MWL8K_ENCR_REMOVE_KEY); mwl8k_cmd_encryption_remove_key() 4393 rc = mwl8k_post_pervif_cmd(hw, vif, &cmd->header); mwl8k_cmd_encryption_remove_key() 4395 kfree(cmd); mwl8k_cmd_encryption_remove_key() 4511 struct mwl8k_cmd_update_stadb *cmd; mwl8k_cmd_update_stadb_add() local 4516 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_update_stadb_add() 4517 if (cmd == NULL) mwl8k_cmd_update_stadb_add() 4520 cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_STADB); mwl8k_cmd_update_stadb_add() 4521 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_update_stadb_add() 4522 cmd->action = cpu_to_le32(MWL8K_STA_DB_MODIFY_ENTRY); mwl8k_cmd_update_stadb_add() 4523 memcpy(cmd->peer_addr, sta->addr, ETH_ALEN); mwl8k_cmd_update_stadb_add() 4525 p = &cmd->peer_info; mwl8k_cmd_update_stadb_add() 4541 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_update_stadb_add() 4544 kfree(cmd); mwl8k_cmd_update_stadb_add() 4552 struct mwl8k_cmd_update_stadb *cmd; mwl8k_cmd_update_stadb_del() local 4555 cmd = kzalloc(sizeof(*cmd), GFP_KERNEL); mwl8k_cmd_update_stadb_del() 4556 if (cmd == NULL) mwl8k_cmd_update_stadb_del() 4559 cmd->header.code = cpu_to_le16(MWL8K_CMD_UPDATE_STADB); mwl8k_cmd_update_stadb_del() 4560 cmd->header.length = cpu_to_le16(sizeof(*cmd)); mwl8k_cmd_update_stadb_del() 4561 cmd->action = cpu_to_le32(MWL8K_STA_DB_DEL_ENTRY); mwl8k_cmd_update_stadb_del() 4562 memcpy(cmd->peer_addr, addr, ETH_ALEN); mwl8k_cmd_update_stadb_del() 4564 rc = mwl8k_post_cmd(hw, &cmd->header); mwl8k_cmd_update_stadb_del() 4565 kfree(cmd); mwl8k_cmd_update_stadb_del() 5156 struct mwl8k_cmd_pkt *cmd; mwl8k_prepare_multicast() local 5165 cmd = __mwl8k_cmd_mac_multicast_adr(hw, 0, mc_list); mwl8k_prepare_multicast() 5167 return (unsigned long)cmd; mwl8k_prepare_multicast() 5216 struct mwl8k_cmd_pkt *cmd = (void *)(unsigned long)multicast; mwl8k_configure_filter() local 5224 kfree(cmd); mwl8k_configure_filter() 5234 kfree(cmd); mwl8k_configure_filter() 5242 kfree(cmd); mwl8k_configure_filter() 5286 kfree(cmd); mwl8k_configure_filter() 5287 cmd = __mwl8k_cmd_mac_multicast_adr(hw, 1, NULL); mwl8k_configure_filter() 5290 if (cmd != NULL) { mwl8k_configure_filter() 5291 mwl8k_post_cmd(hw, cmd); mwl8k_configure_filter() 5292 kfree(cmd); mwl8k_configure_filter() 2281 mwl8k_post_pervif_cmd(struct ieee80211_hw *hw, struct ieee80211_vif *vif, struct mwl8k_cmd_pkt *cmd) mwl8k_post_pervif_cmd() argument
|
/linux-4.1.27/arch/arm/mach-omap2/ |
H A D | omap4-restart.c | 17 * @cmd: passed from the userspace program rebooting the system (if provided) 19 * Resets the SoC. For @cmd, see the 'reboot' syscall in 22 void omap44xx_restart(enum reboot_mode mode, const char *cmd) omap44xx_restart() argument 24 /* XXX Should save 'cmd' into scratchpad for use after reboot */ omap44xx_restart()
|
H A D | am33xx-restart.c | 17 * @cmd: passed from the userspace program rebooting the system (if provided) 19 * Resets the SoC. For @cmd, see the 'reboot' syscall in 22 void am33xx_restart(enum reboot_mode mode, const char *cmd) am33xx_restart() argument 24 /* TODO: Handle mode and cmd if necessary */ am33xx_restart()
|
H A D | omap3-restart.c | 25 * @cmd: passed from the userspace program rebooting the system (if provided) 27 * Resets the SoC. For @cmd, see the 'reboot' syscall in 30 void omap3xxx_restart(enum reboot_mode mode, const char *cmd) omap3xxx_restart() argument 32 omap3_ctrl_write_boot_mode((cmd ? (u8)*cmd : 0)); omap3xxx_restart()
|
/linux-4.1.27/drivers/staging/comedi/ |
H A D | comedi_compat32.c | 90 static int translated_ioctl(struct file *file, unsigned int cmd, translated_ioctl() argument 94 return file->f_op->unlocked_ioctl(file, cmd, arg); translated_ioctl() 164 /* Copy 32-bit cmd structure to native cmd structure. */ get_compat_cmd() 165 static int get_compat_cmd(struct comedi_cmd __user *cmd, get_compat_cmd() argument 174 /* Copy cmd structure. */ get_compat_cmd() 176 !access_ok(VERIFY_WRITE, cmd, sizeof(*cmd))) get_compat_cmd() 181 err |= __put_user(temp.uint, &cmd->subdev); get_compat_cmd() 183 err |= __put_user(temp.uint, &cmd->flags); get_compat_cmd() 185 err |= __put_user(temp.uint, &cmd->start_src); get_compat_cmd() 187 err |= __put_user(temp.uint, &cmd->start_arg); get_compat_cmd() 189 err |= __put_user(temp.uint, &cmd->scan_begin_src); get_compat_cmd() 191 err |= __put_user(temp.uint, &cmd->scan_begin_arg); get_compat_cmd() 193 err |= __put_user(temp.uint, &cmd->convert_src); get_compat_cmd() 195 err |= __put_user(temp.uint, &cmd->convert_arg); get_compat_cmd() 197 err |= __put_user(temp.uint, &cmd->scan_end_src); get_compat_cmd() 199 err |= __put_user(temp.uint, &cmd->scan_end_arg); get_compat_cmd() 201 err |= __put_user(temp.uint, &cmd->stop_src); get_compat_cmd() 203 err |= __put_user(temp.uint, &cmd->stop_arg); get_compat_cmd() 205 err |= __put_user(compat_ptr(temp.uptr), &cmd->chanlist); get_compat_cmd() 207 err |= __put_user(temp.uint, &cmd->chanlist_len); get_compat_cmd() 209 err |= __put_user(compat_ptr(temp.uptr), &cmd->data); get_compat_cmd() 211 err |= __put_user(temp.uint, &cmd->data_len); get_compat_cmd() 215 /* Copy native cmd structure to 32-bit cmd structure. */ put_compat_cmd() 217 struct comedi_cmd __user *cmd) put_compat_cmd() 223 * Copy back most of cmd structure. put_compat_cmd() 228 if (!access_ok(VERIFY_READ, cmd, sizeof(*cmd)) || put_compat_cmd() 233 err |= __get_user(temp, &cmd->subdev); put_compat_cmd() 235 err |= __get_user(temp, &cmd->flags); put_compat_cmd() 237 err |= __get_user(temp, &cmd->start_src); put_compat_cmd() 239 err |= __get_user(temp, &cmd->start_arg); put_compat_cmd() 241 err |= __get_user(temp, &cmd->scan_begin_src); put_compat_cmd() 243 err |= __get_user(temp, &cmd->scan_begin_arg); put_compat_cmd() 245 err |= __get_user(temp, &cmd->convert_src); put_compat_cmd() 247 err |= __get_user(temp, &cmd->convert_arg); put_compat_cmd() 249 err |= __get_user(temp, &cmd->scan_end_src); put_compat_cmd() 251 err |= __get_user(temp, &cmd->scan_end_arg); put_compat_cmd() 253 err |= __get_user(temp, &cmd->stop_src); put_compat_cmd() 255 err |= __get_user(temp, &cmd->stop_arg); put_compat_cmd() 258 err |= __get_user(temp, &cmd->chanlist_len); put_compat_cmd() 261 err |= __get_user(temp, &cmd->data_len); put_compat_cmd() 269 struct comedi_cmd __user *cmd; compat_cmd() local 274 cmd = compat_alloc_user_space(sizeof(*cmd)); compat_cmd() 276 rc = get_compat_cmd(cmd, cmd32); compat_cmd() 280 rc = translated_ioctl(file, COMEDI_CMD, (unsigned long)cmd); compat_cmd() 282 /* Special case: copy cmd back to user. */ compat_cmd() 283 err = put_compat_cmd(cmd32, cmd); compat_cmd() 294 struct comedi_cmd __user *cmd; compat_cmdtest() local 299 cmd = compat_alloc_user_space(sizeof(*cmd)); compat_cmdtest() 301 rc = get_compat_cmd(cmd, cmd32); compat_cmdtest() 305 rc = translated_ioctl(file, COMEDI_CMDTEST, (unsigned long)cmd); compat_cmdtest() 309 err = put_compat_cmd(cmd32, cmd); compat_cmdtest() 417 long comedi_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) comedi_compat_ioctl() argument 421 switch (cmd) { comedi_compat_ioctl() 429 rc = translated_ioctl(file, cmd, arg); comedi_compat_ioctl() 438 rc = translated_ioctl(file, cmd, arg); comedi_compat_ioctl() 216 put_compat_cmd(struct comedi32_cmd_struct __user *cmd32, struct comedi_cmd __user *cmd) put_compat_cmd() argument
|
/linux-4.1.27/net/nfc/hci/ |
H A D | hcp.c | 31 * counted from the moment the cmd is sent to the transport. 40 struct hci_msg *cmd; nfc_hci_hcp_message_tx() local 45 cmd = kzalloc(sizeof(struct hci_msg), GFP_KERNEL); nfc_hci_hcp_message_tx() 46 if (cmd == NULL) nfc_hci_hcp_message_tx() 49 INIT_LIST_HEAD(&cmd->msg_l); nfc_hci_hcp_message_tx() 50 skb_queue_head_init(&cmd->msg_frags); nfc_hci_hcp_message_tx() 51 cmd->wait_response = (type == NFC_HCI_HCP_COMMAND) ? true : false; nfc_hci_hcp_message_tx() 52 cmd->cb = cb; nfc_hci_hcp_message_tx() 53 cmd->cb_context = cb_context; nfc_hci_hcp_message_tx() 54 cmd->completion_delay = completion_delay; nfc_hci_hcp_message_tx() 102 skb_queue_tail(&cmd->msg_frags, skb); nfc_hci_hcp_message_tx() 113 list_add_tail(&cmd->msg_l, &hdev->msg_tx_queue); nfc_hci_hcp_message_tx() 121 skb_queue_purge(&cmd->msg_frags); nfc_hci_hcp_message_tx() 122 kfree(cmd); nfc_hci_hcp_message_tx() 128 * Receive hcp message for pipe, with type and cmd.
|
/linux-4.1.27/drivers/s390/cio/ |
H A D | device_status.c | 80 cdev->private->irb.scsw.cmd.ectl = 0; ccw_device_accumulate_ecw() 81 if ((irb->scsw.cmd.stctl & SCSW_STCTL_ALERT_STATUS) && ccw_device_accumulate_ecw() 82 !(irb->scsw.cmd.stctl & SCSW_STCTL_INTER_STATUS)) ccw_device_accumulate_ecw() 83 cdev->private->irb.scsw.cmd.ectl = irb->scsw.cmd.ectl; ccw_device_accumulate_ecw() 85 if (!cdev->private->irb.scsw.cmd.ectl) ccw_device_accumulate_ecw() 97 if (!irb->scsw.cmd.eswf && ccw_device_accumulate_esw_valid() 98 (irb->scsw.cmd.stctl == SCSW_STCTL_STATUS_PEND)) ccw_device_accumulate_esw_valid() 100 if (irb->scsw.cmd.stctl == ccw_device_accumulate_esw_valid() 102 !(irb->scsw.cmd.actl & SCSW_ACTL_SUSPENDED)) ccw_device_accumulate_esw_valid() 125 if (irb->scsw.cmd.eswf) { ccw_device_accumulate_esw() 134 if (irb->scsw.cmd.cstat & (SCHN_STAT_CHN_DATA_CHK | ccw_device_accumulate_esw() 155 if (irb->scsw.cmd.cstat & SCHN_STAT_INTF_CTRL_CHK) ccw_device_accumulate_esw() 227 if (irb->scsw.cmd.fctl & SCSW_FCTL_CLEAR_FUNC) ccw_device_accumulate_irb() 231 if (irb->scsw.cmd.fctl & SCSW_FCTL_START_FUNC) { ccw_device_accumulate_irb() 233 cdev_irb->scsw.cmd.key = irb->scsw.cmd.key; ccw_device_accumulate_irb() 235 cdev_irb->scsw.cmd.sctl = irb->scsw.cmd.sctl; ccw_device_accumulate_irb() 237 cdev_irb->scsw.cmd.cc |= irb->scsw.cmd.cc; ccw_device_accumulate_irb() 239 cdev_irb->scsw.cmd.fmt = irb->scsw.cmd.fmt; ccw_device_accumulate_irb() 241 cdev_irb->scsw.cmd.pfch = irb->scsw.cmd.pfch; ccw_device_accumulate_irb() 243 cdev_irb->scsw.cmd.isic = irb->scsw.cmd.isic; ccw_device_accumulate_irb() 245 cdev_irb->scsw.cmd.alcc = irb->scsw.cmd.alcc; ccw_device_accumulate_irb() 247 cdev_irb->scsw.cmd.ssi = irb->scsw.cmd.ssi; ccw_device_accumulate_irb() 254 cdev_irb->scsw.cmd.fctl |= irb->scsw.cmd.fctl; ccw_device_accumulate_irb() 256 cdev_irb->scsw.cmd.actl = irb->scsw.cmd.actl; ccw_device_accumulate_irb() 258 cdev_irb->scsw.cmd.stctl |= irb->scsw.cmd.stctl; ccw_device_accumulate_irb() 263 if ((irb->scsw.cmd.stctl & SCSW_STCTL_PRIM_STATUS) || ccw_device_accumulate_irb() 264 ((irb->scsw.cmd.stctl == ccw_device_accumulate_irb() 266 (irb->scsw.cmd.actl & SCSW_ACTL_DEVACT) && ccw_device_accumulate_irb() 267 (irb->scsw.cmd.actl & SCSW_ACTL_SCHACT)) || ccw_device_accumulate_irb() 268 (irb->scsw.cmd.actl & SCSW_ACTL_SUSPENDED)) ccw_device_accumulate_irb() 269 cdev_irb->scsw.cmd.cpa = irb->scsw.cmd.cpa; ccw_device_accumulate_irb() 271 cdev_irb->scsw.cmd.dstat &= ~DEV_STAT_BUSY; ccw_device_accumulate_irb() 273 if (irb->scsw.cmd.stctl & ccw_device_accumulate_irb() 276 cdev_irb->scsw.cmd.dstat |= irb->scsw.cmd.dstat; ccw_device_accumulate_irb() 278 cdev_irb->scsw.cmd.cstat |= irb->scsw.cmd.cstat; ccw_device_accumulate_irb() 280 if ((irb->scsw.cmd.stctl & SCSW_STCTL_PRIM_STATUS) && ccw_device_accumulate_irb() 281 (irb->scsw.cmd.cstat & ~(SCHN_STAT_PCI | SCHN_STAT_INCORR_LEN)) ccw_device_accumulate_irb() 283 cdev_irb->scsw.cmd.count = irb->scsw.cmd.count; ccw_device_accumulate_irb() 300 if ((cdev_irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) && ccw_device_accumulate_irb() 363 if (!(irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK) && ccw_device_accumulate_basic_sense() 364 (irb->scsw.cmd.dstat & DEV_STAT_CHN_END)) { ccw_device_accumulate_basic_sense() 382 if ((irb->scsw.cmd.actl & (SCSW_ACTL_DEVACT | SCSW_ACTL_SCHACT)) != 0) ccw_device_accumulate_and_sense() 386 !(irb->scsw.cmd.dstat & DEV_STAT_UNIT_CHECK)) { ccw_device_accumulate_and_sense()
|
/linux-4.1.27/drivers/staging/comedi/drivers/ |
H A D | me4000.c | 582 struct comedi_cmd *cmd) me4000_ai_check_chanlist() 586 unsigned int aref0 = CR_AREF(cmd->chanlist[0]); me4000_ai_check_chanlist() 589 for (i = 0; i < cmd->chanlist_len; i++) { me4000_ai_check_chanlist() 590 unsigned int chan = CR_CHAN(cmd->chanlist[i]); me4000_ai_check_chanlist() 591 unsigned int range = CR_RANGE(cmd->chanlist[i]); me4000_ai_check_chanlist() 592 unsigned int aref = CR_AREF(cmd->chanlist[i]); me4000_ai_check_chanlist() 620 struct comedi_cmd *cmd, ai_round_cmd_args() 630 if (cmd->start_arg) { ai_round_cmd_args() 631 *init_ticks = (cmd->start_arg * 33) / 1000; ai_round_cmd_args() 632 rest = (cmd->start_arg * 33) % 1000; ai_round_cmd_args() 634 if ((cmd->flags & CMDF_ROUND_MASK) == CMDF_ROUND_NEAREST) { ai_round_cmd_args() 637 } else if ((cmd->flags & CMDF_ROUND_MASK) == CMDF_ROUND_UP) { ai_round_cmd_args() 643 if (cmd->scan_begin_arg) { ai_round_cmd_args() 644 *scan_ticks = (cmd->scan_begin_arg * 33) / 1000; ai_round_cmd_args() 645 rest = (cmd->scan_begin_arg * 33) % 1000; ai_round_cmd_args() 647 if ((cmd->flags & CMDF_ROUND_MASK) == CMDF_ROUND_NEAREST) { ai_round_cmd_args() 650 } else if ((cmd->flags & CMDF_ROUND_MASK) == CMDF_ROUND_UP) { ai_round_cmd_args() 656 if (cmd->convert_arg) { ai_round_cmd_args() 657 *chan_ticks = (cmd->convert_arg * 33) / 1000; ai_round_cmd_args() 658 rest = (cmd->convert_arg * 33) % 1000; ai_round_cmd_args() 660 if ((cmd->flags & CMDF_ROUND_MASK) == CMDF_ROUND_NEAREST) { ai_round_cmd_args() 663 } else if ((cmd->flags & CMDF_ROUND_MASK) == CMDF_ROUND_UP) { ai_round_cmd_args() 689 struct comedi_subdevice *s, struct comedi_cmd *cmd) ai_write_chanlist() 697 for (i = 0; i < cmd->chanlist_len; i++) { ai_write_chanlist() 698 chan = CR_CHAN(cmd->chanlist[i]); ai_write_chanlist() 699 rang = CR_RANGE(cmd->chanlist[i]); ai_write_chanlist() 700 aref = CR_AREF(cmd->chanlist[i]); ai_write_chanlist() 726 struct comedi_cmd *cmd, ai_prepare() 739 if ((cmd->start_src == TRIG_EXT && ai_prepare() 740 cmd->scan_begin_src == TRIG_TIMER && ai_prepare() 741 cmd->convert_src == TRIG_TIMER) || ai_prepare() 742 (cmd->start_src == TRIG_EXT && ai_prepare() 743 cmd->scan_begin_src == TRIG_FOLLOW && ai_prepare() 744 cmd->convert_src == TRIG_TIMER)) { ai_prepare() 748 } else if (cmd->start_src == TRIG_EXT && ai_prepare() 749 cmd->scan_begin_src == TRIG_EXT && ai_prepare() 750 cmd->convert_src == TRIG_TIMER) { ai_prepare() 754 } else if (cmd->start_src == TRIG_EXT && ai_prepare() 755 cmd->scan_begin_src == TRIG_EXT && ai_prepare() 756 cmd->convert_src == TRIG_EXT) { ai_prepare() 768 if (cmd->stop_src == TRIG_COUNT) { ai_prepare() 769 outl(cmd->chanlist_len * cmd->stop_arg, ai_prepare() 772 } else if (cmd->stop_src == TRIG_NONE && ai_prepare() 773 cmd->scan_end_src == TRIG_COUNT) { ai_prepare() 774 outl(cmd->scan_end_arg, ai_prepare() 785 ai_write_chanlist(dev, s, cmd); ai_prepare() 797 struct comedi_cmd *cmd = &s->async->cmd; me4000_ai_do_cmd() local 806 s, cmd, &init_ticks, &scan_ticks, &chan_ticks); me4000_ai_do_cmd() 811 err = ai_prepare(dev, s, cmd, init_ticks, scan_ticks, chan_ticks); me4000_ai_do_cmd() 823 struct comedi_cmd *cmd) me4000_ai_do_cmd_test() 831 ai_round_cmd_args(dev, s, cmd, &init_ticks, &scan_ticks, &chan_ticks); me4000_ai_do_cmd_test() 835 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW | TRIG_EXT); me4000_ai_do_cmd_test() 836 err |= comedi_check_trigger_src(&cmd->scan_begin_src, me4000_ai_do_cmd_test() 838 err |= comedi_check_trigger_src(&cmd->convert_src, me4000_ai_do_cmd_test() 840 err |= comedi_check_trigger_src(&cmd->scan_end_src, me4000_ai_do_cmd_test() 842 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_NONE | TRIG_COUNT); me4000_ai_do_cmd_test() 849 err |= comedi_check_trigger_is_unique(cmd->start_src); me4000_ai_do_cmd_test() 850 err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); me4000_ai_do_cmd_test() 851 err |= comedi_check_trigger_is_unique(cmd->convert_src); me4000_ai_do_cmd_test() 852 err |= comedi_check_trigger_is_unique(cmd->scan_end_src); me4000_ai_do_cmd_test() 853 err |= comedi_check_trigger_is_unique(cmd->stop_src); me4000_ai_do_cmd_test() 857 if (cmd->start_src == TRIG_NOW && me4000_ai_do_cmd_test() 858 cmd->scan_begin_src == TRIG_TIMER && me4000_ai_do_cmd_test() 859 cmd->convert_src == TRIG_TIMER) { me4000_ai_do_cmd_test() 860 } else if (cmd->start_src == TRIG_NOW && me4000_ai_do_cmd_test() 861 cmd->scan_begin_src == TRIG_FOLLOW && me4000_ai_do_cmd_test() 862 cmd->convert_src == TRIG_TIMER) { me4000_ai_do_cmd_test() 863 } else if (cmd->start_src == TRIG_EXT && me4000_ai_do_cmd_test() 864 cmd->scan_begin_src == TRIG_TIMER && me4000_ai_do_cmd_test() 865 cmd->convert_src == TRIG_TIMER) { me4000_ai_do_cmd_test() 866 } else if (cmd->start_src == TRIG_EXT && me4000_ai_do_cmd_test() 867 cmd->scan_begin_src == TRIG_FOLLOW && me4000_ai_do_cmd_test() 868 cmd->convert_src == TRIG_TIMER) { me4000_ai_do_cmd_test() 869 } else if (cmd->start_src == TRIG_EXT && me4000_ai_do_cmd_test() 870 cmd->scan_begin_src == TRIG_EXT && me4000_ai_do_cmd_test() 871 cmd->convert_src == TRIG_TIMER) { me4000_ai_do_cmd_test() 872 } else if (cmd->start_src == TRIG_EXT && me4000_ai_do_cmd_test() 873 cmd->scan_begin_src == TRIG_EXT && me4000_ai_do_cmd_test() 874 cmd->convert_src == TRIG_EXT) { me4000_ai_do_cmd_test() 884 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); me4000_ai_do_cmd_test() 886 if (cmd->chanlist_len < 1) { me4000_ai_do_cmd_test() 887 cmd->chanlist_len = 1; me4000_ai_do_cmd_test() 891 cmd->start_arg = 2000; me4000_ai_do_cmd_test() 895 cmd->scan_begin_arg = 2031; me4000_ai_do_cmd_test() 899 cmd->convert_arg = 2000; me4000_ai_do_cmd_test() 903 if (cmd->stop_src == TRIG_COUNT) me4000_ai_do_cmd_test() 904 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); me4000_ai_do_cmd_test() 906 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); me4000_ai_do_cmd_test() 914 if (cmd->start_src == TRIG_NOW && me4000_ai_do_cmd_test() 915 cmd->scan_begin_src == TRIG_TIMER && me4000_ai_do_cmd_test() 916 cmd->convert_src == TRIG_TIMER) { me4000_ai_do_cmd_test() 920 cmd->start_arg = 2000; /* 66 ticks at least */ me4000_ai_do_cmd_test() 925 cmd->convert_arg = 2000; /* 66 ticks at least */ me4000_ai_do_cmd_test() 928 if (scan_ticks <= cmd->chanlist_len * chan_ticks) { me4000_ai_do_cmd_test() 932 cmd->scan_end_arg = 2000 * cmd->chanlist_len + 31; me4000_ai_do_cmd_test() 935 } else if (cmd->start_src == TRIG_NOW && me4000_ai_do_cmd_test() 936 cmd->scan_begin_src == TRIG_FOLLOW && me4000_ai_do_cmd_test() 937 cmd->convert_src == TRIG_TIMER) { me4000_ai_do_cmd_test() 941 cmd->start_arg = 2000; /* 66 ticks at least */ me4000_ai_do_cmd_test() 946 cmd->convert_arg = 2000; /* 66 ticks at least */ me4000_ai_do_cmd_test() 949 } else if (cmd->start_src == TRIG_EXT && me4000_ai_do_cmd_test() 950 cmd->scan_begin_src == TRIG_TIMER && me4000_ai_do_cmd_test() 951 cmd->convert_src == TRIG_TIMER) { me4000_ai_do_cmd_test() 955 cmd->start_arg = 2000; /* 66 ticks at least */ me4000_ai_do_cmd_test() 960 cmd->convert_arg = 2000; /* 66 ticks at least */ me4000_ai_do_cmd_test() 963 if (scan_ticks <= cmd->chanlist_len * chan_ticks) { me4000_ai_do_cmd_test() 967 cmd->scan_end_arg = 2000 * cmd->chanlist_len + 31; me4000_ai_do_cmd_test() 970 } else if (cmd->start_src == TRIG_EXT && me4000_ai_do_cmd_test() 971 cmd->scan_begin_src == TRIG_FOLLOW && me4000_ai_do_cmd_test() 972 cmd->convert_src == TRIG_TIMER) { me4000_ai_do_cmd_test() 976 cmd->start_arg = 2000; /* 66 ticks at least */ me4000_ai_do_cmd_test() 981 cmd->convert_arg = 2000; /* 66 ticks at least */ me4000_ai_do_cmd_test() 984 } else if (cmd->start_src == TRIG_EXT && me4000_ai_do_cmd_test() 985 cmd->scan_begin_src == TRIG_EXT && me4000_ai_do_cmd_test() 986 cmd->convert_src == TRIG_TIMER) { me4000_ai_do_cmd_test() 990 cmd->start_arg = 2000; /* 66 ticks at least */ me4000_ai_do_cmd_test() 995 cmd->convert_arg = 2000; /* 66 ticks at least */ me4000_ai_do_cmd_test() 998 } else if (cmd->start_src == TRIG_EXT && me4000_ai_do_cmd_test() 999 cmd->scan_begin_src == TRIG_EXT && me4000_ai_do_cmd_test() 1000 cmd->convert_src == TRIG_EXT) { me4000_ai_do_cmd_test() 1004 cmd->start_arg = 2000; /* 66 ticks at least */ me4000_ai_do_cmd_test() 1008 if (cmd->scan_end_src == TRIG_COUNT) { me4000_ai_do_cmd_test() 1009 if (cmd->scan_end_arg == 0) { me4000_ai_do_cmd_test() 1011 cmd->scan_end_arg = 1; me4000_ai_do_cmd_test() 1020 if (cmd->chanlist && cmd->chanlist_len > 0) me4000_ai_do_cmd_test() 1021 err |= me4000_ai_check_chanlist(dev, s, cmd); me4000_ai_do_cmd_test() 580 me4000_ai_check_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) me4000_ai_check_chanlist() argument 618 ai_round_cmd_args(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd, unsigned int *init_ticks, unsigned int *scan_ticks, unsigned int *chan_ticks) ai_round_cmd_args() argument 688 ai_write_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) ai_write_chanlist() argument 724 ai_prepare(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd, unsigned int init_ticks, unsigned int scan_ticks, unsigned int chan_ticks) ai_prepare() argument 821 me4000_ai_do_cmd_test(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) me4000_ai_do_cmd_test() argument
|
H A D | comedi_test.c | 173 struct comedi_cmd *cmd = &async->cmd; waveform_ai_interrupt() local 195 for (j = 0; j < cmd->chanlist_len; j++) { waveform_ai_interrupt() 198 sample = fake_waveform(dev, CR_CHAN(cmd->chanlist[j]), waveform_ai_interrupt() 199 CR_RANGE(cmd->chanlist[j]), waveform_ai_interrupt() 210 if (cmd->stop_src == TRIG_COUNT && async->scans_done >= cmd->stop_arg) waveform_ai_interrupt() 220 struct comedi_cmd *cmd) waveform_ai_cmdtest() 227 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW); waveform_ai_cmdtest() 228 err |= comedi_check_trigger_src(&cmd->scan_begin_src, TRIG_TIMER); waveform_ai_cmdtest() 229 err |= comedi_check_trigger_src(&cmd->convert_src, waveform_ai_cmdtest() 231 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); waveform_ai_cmdtest() 232 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_COUNT | TRIG_NONE); waveform_ai_cmdtest() 239 err |= comedi_check_trigger_is_unique(cmd->convert_src); waveform_ai_cmdtest() 240 err |= comedi_check_trigger_is_unique(cmd->stop_src); waveform_ai_cmdtest() 249 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); waveform_ai_cmdtest() 251 if (cmd->convert_src == TRIG_NOW) waveform_ai_cmdtest() 252 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, 0); waveform_ai_cmdtest() 254 if (cmd->scan_begin_src == TRIG_TIMER) { waveform_ai_cmdtest() 255 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, waveform_ai_cmdtest() 257 if (cmd->convert_src == TRIG_TIMER) { waveform_ai_cmdtest() 258 err |= comedi_check_trigger_arg_min(&cmd-> waveform_ai_cmdtest() 260 cmd->convert_arg * waveform_ai_cmdtest() 261 cmd->chanlist_len); waveform_ai_cmdtest() 265 err |= comedi_check_trigger_arg_min(&cmd->chanlist_len, 1); waveform_ai_cmdtest() 266 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, waveform_ai_cmdtest() 267 cmd->chanlist_len); waveform_ai_cmdtest() 269 if (cmd->stop_src == TRIG_COUNT) waveform_ai_cmdtest() 270 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); waveform_ai_cmdtest() 272 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); waveform_ai_cmdtest() 279 if (cmd->scan_begin_src == TRIG_TIMER) { waveform_ai_cmdtest() 280 arg = cmd->scan_begin_arg; waveform_ai_cmdtest() 284 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); waveform_ai_cmdtest() 286 if (cmd->convert_src == TRIG_TIMER) { waveform_ai_cmdtest() 287 arg = cmd->convert_arg; waveform_ai_cmdtest() 291 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg); waveform_ai_cmdtest() 304 struct comedi_cmd *cmd = &s->async->cmd; waveform_ai_cmd() local 306 if (cmd->flags & CMDF_PRIORITY) { waveform_ai_cmd() 312 devpriv->scan_period = cmd->scan_begin_arg / nano_per_micro; waveform_ai_cmd() 314 if (cmd->convert_src == TRIG_NOW) waveform_ai_cmd() 317 devpriv->convert_period = cmd->convert_arg / nano_per_micro; waveform_ai_cmd() 218 waveform_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) waveform_ai_cmdtest() argument
|
H A D | ni_tiocmd.c | 91 struct comedi_cmd *cmd = &s->async->cmd; ni_tio_input_inttrig() local 95 if (trig_num != cmd->start_arg) ni_tio_input_inttrig() 118 struct comedi_cmd *cmd = &async->cmd; ni_tio_input_cmd() local 139 if (cmd->start_src == TRIG_INT) { ni_tio_input_cmd() 145 if (cmd->start_src == TRIG_NOW) ni_tio_input_cmd() 147 else if (cmd->start_src == TRIG_EXT) ni_tio_input_cmd() 148 ret = ni_tio_arm(counter, 1, cmd->start_arg); ni_tio_input_cmd() 170 struct comedi_cmd *cmd = &s->async->cmd; ni_tio_cmd_setup() local 177 if (cmd->scan_begin_src == TRIG_EXT) { ni_tio_cmd_setup() 179 gate_source = cmd->scan_begin_arg; ni_tio_cmd_setup() 180 } else if (cmd->convert_src == TRIG_EXT) { ni_tio_cmd_setup() 182 gate_source = cmd->convert_arg; ni_tio_cmd_setup() 186 if (cmd->flags & CMDF_WAKE_EOS) { ni_tio_cmd_setup() 198 struct comedi_cmd *cmd = &async->cmd; ni_tio_cmd() local 212 if (cmd->flags & CMDF_WRITE) ni_tio_cmd() 225 struct comedi_cmd *cmd) ni_tio_cmdtest() 236 err |= comedi_check_trigger_src(&cmd->start_src, sources); ni_tio_cmdtest() 238 err |= comedi_check_trigger_src(&cmd->scan_begin_src, ni_tio_cmdtest() 240 err |= comedi_check_trigger_src(&cmd->convert_src, ni_tio_cmdtest() 242 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); ni_tio_cmdtest() 243 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_NONE); ni_tio_cmdtest() 250 err |= comedi_check_trigger_is_unique(cmd->start_src); ni_tio_cmdtest() 251 err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); ni_tio_cmdtest() 252 err |= comedi_check_trigger_is_unique(cmd->convert_src); ni_tio_cmdtest() 256 if (cmd->convert_src != TRIG_NOW && cmd->scan_begin_src != TRIG_FOLLOW) ni_tio_cmdtest() 264 switch (cmd->start_src) { ni_tio_cmdtest() 268 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); ni_tio_cmdtest() 275 if (cmd->scan_begin_src != TRIG_EXT) ni_tio_cmdtest() 276 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, 0); ni_tio_cmdtest() 278 if (cmd->convert_src != TRIG_EXT) ni_tio_cmdtest() 279 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, 0); ni_tio_cmdtest() 281 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, ni_tio_cmdtest() 282 cmd->chanlist_len); ni_tio_cmdtest() 283 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); ni_tio_cmdtest() 223 ni_tio_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) ni_tio_cmdtest() argument
|
H A D | ni_labpc_common.c | 279 static bool labpc_use_continuous_mode(const struct comedi_cmd *cmd, labpc_use_continuous_mode() argument 282 if (mode == MODE_SINGLE_CHAN || cmd->scan_begin_src == TRIG_FOLLOW) labpc_use_continuous_mode() 288 static unsigned int labpc_ai_convert_period(const struct comedi_cmd *cmd, labpc_ai_convert_period() argument 291 if (cmd->convert_src != TRIG_TIMER) labpc_ai_convert_period() 294 if (mode == MODE_SINGLE_CHAN && cmd->scan_begin_src == TRIG_TIMER) labpc_ai_convert_period() 295 return cmd->scan_begin_arg; labpc_ai_convert_period() 297 return cmd->convert_arg; labpc_ai_convert_period() 300 static void labpc_set_ai_convert_period(struct comedi_cmd *cmd, labpc_set_ai_convert_period() argument 303 if (cmd->convert_src != TRIG_TIMER) labpc_set_ai_convert_period() 307 cmd->scan_begin_src == TRIG_TIMER) { labpc_set_ai_convert_period() 308 cmd->scan_begin_arg = ns; labpc_set_ai_convert_period() 309 if (cmd->convert_arg > cmd->scan_begin_arg) labpc_set_ai_convert_period() 310 cmd->convert_arg = cmd->scan_begin_arg; labpc_set_ai_convert_period() 312 cmd->convert_arg = ns; labpc_set_ai_convert_period() 316 static unsigned int labpc_ai_scan_period(const struct comedi_cmd *cmd, labpc_ai_scan_period() argument 319 if (cmd->scan_begin_src != TRIG_TIMER) labpc_ai_scan_period() 322 if (mode == MODE_SINGLE_CHAN && cmd->convert_src == TRIG_TIMER) labpc_ai_scan_period() 325 return cmd->scan_begin_arg; labpc_ai_scan_period() 328 static void labpc_set_ai_scan_period(struct comedi_cmd *cmd, labpc_set_ai_scan_period() argument 331 if (cmd->scan_begin_src != TRIG_TIMER) labpc_set_ai_scan_period() 334 if (mode == MODE_SINGLE_CHAN && cmd->convert_src == TRIG_TIMER) labpc_set_ai_scan_period() 337 cmd->scan_begin_arg = ns; labpc_set_ai_scan_period() 341 static void labpc_adc_timing(struct comedi_device *dev, struct comedi_cmd *cmd, labpc_adc_timing() argument 345 unsigned int convert_period = labpc_ai_convert_period(cmd, mode); labpc_adc_timing() 346 unsigned int scan_period = labpc_ai_scan_period(cmd, mode); labpc_adc_timing() 369 switch (cmd->flags & CMDF_ROUND_MASK) { labpc_adc_timing() 396 labpc_set_ai_convert_period(cmd, mode, labpc_adc_timing() 398 labpc_set_ai_scan_period(cmd, mode, labpc_adc_timing() 407 cmd->flags); labpc_adc_timing() 408 labpc_set_ai_scan_period(cmd, mode, scan_period); labpc_adc_timing() 416 cmd->flags); labpc_adc_timing() 419 labpc_set_ai_convert_period(cmd, mode, convert_period); labpc_adc_timing() 423 static enum scan_mode labpc_ai_scan_mode(const struct comedi_cmd *cmd) labpc_ai_scan_mode() argument 428 if (cmd->chanlist_len == 1) labpc_ai_scan_mode() 432 if (!cmd->chanlist) labpc_ai_scan_mode() 435 chan0 = CR_CHAN(cmd->chanlist[0]); labpc_ai_scan_mode() 436 chan1 = CR_CHAN(cmd->chanlist[1]); labpc_ai_scan_mode() 449 struct comedi_cmd *cmd) labpc_ai_check_chanlist() 451 enum scan_mode mode = labpc_ai_scan_mode(cmd); labpc_ai_check_chanlist() 452 unsigned int chan0 = CR_CHAN(cmd->chanlist[0]); labpc_ai_check_chanlist() 453 unsigned int range0 = CR_RANGE(cmd->chanlist[0]); labpc_ai_check_chanlist() 454 unsigned int aref0 = CR_AREF(cmd->chanlist[0]); labpc_ai_check_chanlist() 457 for (i = 0; i < cmd->chanlist_len; i++) { labpc_ai_check_chanlist() 458 unsigned int chan = CR_CHAN(cmd->chanlist[i]); labpc_ai_check_chanlist() 459 unsigned int range = CR_RANGE(cmd->chanlist[i]); labpc_ai_check_chanlist() 460 unsigned int aref = CR_AREF(cmd->chanlist[i]); labpc_ai_check_chanlist() 480 if (chan != (cmd->chanlist_len - i - 1)) { labpc_ai_check_chanlist() 505 struct comedi_subdevice *s, struct comedi_cmd *cmd) labpc_ai_cmdtest() 515 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW | TRIG_EXT); labpc_ai_cmdtest() 516 err |= comedi_check_trigger_src(&cmd->scan_begin_src, labpc_ai_cmdtest() 518 err |= comedi_check_trigger_src(&cmd->convert_src, labpc_ai_cmdtest() 520 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); labpc_ai_cmdtest() 525 err |= comedi_check_trigger_src(&cmd->stop_src, stop_mask); labpc_ai_cmdtest() 532 err |= comedi_check_trigger_is_unique(cmd->start_src); labpc_ai_cmdtest() 533 err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); labpc_ai_cmdtest() 534 err |= comedi_check_trigger_is_unique(cmd->convert_src); labpc_ai_cmdtest() 535 err |= comedi_check_trigger_is_unique(cmd->stop_src); labpc_ai_cmdtest() 540 if (cmd->start_src == TRIG_EXT && cmd->stop_src == TRIG_EXT) labpc_ai_cmdtest() 548 switch (cmd->start_src) { labpc_ai_cmdtest() 550 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); labpc_ai_cmdtest() 557 if (!cmd->chanlist_len) labpc_ai_cmdtest() 559 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, labpc_ai_cmdtest() 560 cmd->chanlist_len); labpc_ai_cmdtest() 562 if (cmd->convert_src == TRIG_TIMER) { labpc_ai_cmdtest() 563 err |= comedi_check_trigger_arg_min(&cmd->convert_arg, labpc_ai_cmdtest() 568 if (cmd->scan_begin_src == TRIG_TIMER) { labpc_ai_cmdtest() 569 if (cmd->convert_src == TRIG_TIMER) { labpc_ai_cmdtest() 570 err |= comedi_check_trigger_arg_min(&cmd-> labpc_ai_cmdtest() 572 cmd->convert_arg * labpc_ai_cmdtest() 573 cmd->chanlist_len); labpc_ai_cmdtest() 575 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, labpc_ai_cmdtest() 577 cmd->chanlist_len); labpc_ai_cmdtest() 580 switch (cmd->stop_src) { labpc_ai_cmdtest() 582 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); labpc_ai_cmdtest() 585 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); labpc_ai_cmdtest() 600 tmp = cmd->convert_arg; labpc_ai_cmdtest() 601 tmp2 = cmd->scan_begin_arg; labpc_ai_cmdtest() 602 mode = labpc_ai_scan_mode(cmd); labpc_ai_cmdtest() 603 labpc_adc_timing(dev, cmd, mode); labpc_ai_cmdtest() 604 if (tmp != cmd->convert_arg || tmp2 != cmd->scan_begin_arg) labpc_ai_cmdtest() 611 if (cmd->chanlist && cmd->chanlist_len > 0) labpc_ai_cmdtest() 612 err |= labpc_ai_check_chanlist(dev, s, cmd); labpc_ai_cmdtest() 625 struct comedi_cmd *cmd = &async->cmd; labpc_ai_cmd() local 626 enum scan_mode mode = labpc_ai_scan_mode(cmd); labpc_ai_cmd() 628 cmd->chanlist[cmd->chanlist_len - 1] : labpc_ai_cmd() 629 cmd->chanlist[0]; labpc_ai_cmd() 640 if (cmd->stop_src == TRIG_COUNT) labpc_ai_cmd() 641 devpriv->count = cmd->stop_arg * cmd->chanlist_len; labpc_ai_cmd() 644 if (cmd->stop_src == TRIG_EXT) { labpc_ai_cmd() 661 (cmd->flags & (CMDF_WAKE_EOS | CMDF_PRIORITY)) == 0) labpc_ai_cmd() 666 (cmd->flags & CMDF_WAKE_EOS) == 0 && labpc_ai_cmd() 668 (cmd->stop_src != TRIG_COUNT || devpriv->count > 256)) labpc_ai_cmd() 677 (cmd->stop_src == TRIG_EXT)); labpc_ai_cmd() 689 devpriv->write_byte(dev, cmd->chanlist_len, INTERVAL_COUNT_REG); labpc_ai_cmd() 693 if (cmd->convert_src == TRIG_TIMER || labpc_ai_cmd() 694 cmd->scan_begin_src == TRIG_TIMER) { labpc_ai_cmd() 706 if (labpc_ai_convert_period(cmd, mode)) labpc_ai_cmd() 710 if (labpc_ai_scan_period(cmd, mode)) labpc_ai_cmd() 729 if (cmd->convert_src != TRIG_EXT) labpc_ai_cmd() 733 if (!labpc_use_continuous_mode(cmd, mode)) { labpc_ai_cmd() 735 if (cmd->scan_begin_src == TRIG_EXT) labpc_ai_cmd() 751 if (cmd->start_src == TRIG_EXT) labpc_ai_cmd() 755 if (cmd->stop_src == TRIG_EXT) labpc_ai_cmd() 770 struct comedi_cmd *cmd = &async->cmd; labpc_drain_fifo() local 780 if (cmd->stop_src == TRIG_COUNT) { labpc_drain_fifo() 818 struct comedi_cmd *cmd; labpc_interrupt() local 826 cmd = &async->cmd; labpc_interrupt() 869 if (cmd->stop_src == TRIG_EXT) { labpc_interrupt() 877 if (cmd->stop_src == TRIG_COUNT) { labpc_interrupt() 447 labpc_ai_check_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) labpc_ai_check_chanlist() argument 504 labpc_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) labpc_ai_cmdtest() argument
|
H A D | adl_pci9118.c | 21 * AI subdevice supports cmd and insn interface, 24 * - If cmd->scan_begin_src=TRIG_EXT then trigger input is TGIN (pin 46). 25 * - If cmd->convert_src=TRIG_EXT then trigger input is EXTTRG (pin 44). 26 * - If cmd->start_src/stop_src=TRIG_EXT then trigger input is TGIN (pin 46). 27 * - It is not necessary to have cmd.scan_end_arg=cmd.chanlist_len but 28 * cmd.scan_end_arg modulo cmd.chanlist_len must by 0. 37 * so there is some problems if cmd->chanlist_len is odd. This driver tries 39 * it on output but this can't be used if cmd->scan_begin_src=TRIG_FOLLOW 43 * cmd->scan_begin_src=TRIG_FOLLOW. 429 struct comedi_cmd *cmd = &s->async->cmd; valid_samples_in_act_dma_buf() local 431 unsigned int stop_pos = start_pos + cmd->chanlist_len; valid_samples_in_act_dma_buf() 436 if (span_len == cmd->chanlist_len) valid_samples_in_act_dma_buf() 447 n_samples = whole_spans * cmd->chanlist_len; valid_samples_in_act_dma_buf() 486 struct comedi_cmd *cmd = &s->async->cmd; move_block_from_dma() local 488 unsigned int stop_pos = start_pos + cmd->chanlist_len; move_block_from_dma() 493 if (span_len == cmd->chanlist_len) { move_block_from_dma() 556 struct comedi_cmd *cmd = &s->async->cmd; pci9118_calc_divisors() local 566 if (cmd->convert_src == TRIG_NOW && !chnsshfront) { pci9118_calc_divisors() 641 struct comedi_cmd *cmd = &s->async->cmd; interrupt_pci9118_ai_onesample() local 649 if (s->async->scans_done >= cmd->stop_arg) interrupt_pci9118_ai_onesample() 658 struct comedi_cmd *cmd = &s->async->cmd; interrupt_pci9118_ai_dma() local 682 if (s->async->scans_done >= cmd->stop_arg) interrupt_pci9118_ai_dma() 808 struct comedi_cmd *cmd = &s->async->cmd; pci9118_ai_inttrig() local 810 if (trig_num != cmd->start_arg) pci9118_ai_inttrig() 823 struct comedi_cmd *cmd = &s->async->cmd; Compute_and_setup_dma() local 903 cmd->stop_arg)) { Compute_and_setup_dma() 906 cmd->stop_arg; Compute_and_setup_dma() 914 cmd->stop_arg - dmalen0)) Compute_and_setup_dma() 917 cmd->stop_arg - dmalen0; Compute_and_setup_dma() 946 struct comedi_cmd *cmd = &s->async->cmd; pci9118_ai_cmd() local 950 devpriv->ai_flags = cmd->flags; pci9118_ai_cmd() 955 if (cmd->start_src == TRIG_EXT) pci9118_ai_cmd() 957 if (cmd->stop_src == TRIG_EXT) { pci9118_ai_cmd() 961 if (cmd->stop_src == TRIG_NONE) pci9118_ai_cmd() 963 if (cmd->stop_src == TRIG_COUNT) pci9118_ai_cmd() 974 if ((cmd->flags & CMDF_WAKE_EOS) && pci9118_ai_cmd() 975 (cmd->scan_end_arg == 1)) { pci9118_ai_cmd() 976 if (cmd->convert_src == TRIG_NOW) pci9118_ai_cmd() 978 if (cmd->convert_src == TRIG_TIMER) { pci9118_ai_cmd() 986 if ((cmd->flags & CMDF_WAKE_EOS) && pci9118_ai_cmd() 987 (cmd->scan_end_arg & 1) && pci9118_ai_cmd() 988 (cmd->scan_end_arg > 1)) { pci9118_ai_cmd() 989 if (cmd->scan_begin_src == TRIG_FOLLOW) { pci9118_ai_cmd() 1009 if (cmd->convert_src == TRIG_NOW && devpriv->softsshdelay) { pci9118_ai_cmd() 1016 if (cmd->convert_arg < devpriv->ai_ns_min) pci9118_ai_cmd() 1017 cmd->convert_arg = devpriv->ai_ns_min; pci9118_ai_cmd() 1018 addchans = devpriv->softsshdelay / cmd->convert_arg; pci9118_ai_cmd() 1019 if (devpriv->softsshdelay % cmd->convert_arg) pci9118_ai_cmd() 1026 cmd->chanlist_len + pci9118_ai_cmd() 1035 * to have cmd->scan_end_arg on output? pci9118_ai_cmd() 1037 (devpriv->ai_add_front + cmd->chanlist_len + pci9118_ai_cmd() 1038 devpriv->ai_add_back) * (cmd->scan_end_arg / pci9118_ai_cmd() 1039 cmd->chanlist_len); pci9118_ai_cmd() 1042 if (!check_channel_list(dev, s, cmd->chanlist_len, pci9118_ai_cmd() 1043 cmd->chanlist, devpriv->ai_add_front, pci9118_ai_cmd() 1051 pci9118_set_chanlist(dev, s, cmd->chanlist_len, cmd->chanlist, pci9118_ai_cmd() 1056 if (cmd->scan_begin_src != TRIG_TIMER && pci9118_ai_cmd() 1057 cmd->convert_src == TRIG_TIMER) { pci9118_ai_cmd() 1059 if (cmd->scan_begin_src == TRIG_EXT) pci9118_ai_cmd() 1064 comedi_8254_cascade_ns_to_timer(pacer, &cmd->convert_arg, pci9118_ai_cmd() 1076 if (cmd->scan_begin_src == TRIG_EXT) { pci9118_ai_cmd() 1087 if (cmd->scan_begin_src == TRIG_TIMER && pci9118_ai_cmd() 1088 cmd->convert_src != TRIG_EXT) { pci9118_ai_cmd() 1091 "cmd->scan_begin_src=TRIG_TIMER works only with bus mastering!\n"); pci9118_ai_cmd() 1099 &cmd->scan_begin_arg, &cmd->convert_arg, pci9118_ai_cmd() 1108 if (cmd->convert_src == TRIG_NOW && !devpriv->softsshdelay) pci9118_ai_cmd() 1114 if (cmd->scan_begin_src == TRIG_FOLLOW && pci9118_ai_cmd() 1115 cmd->convert_src == TRIG_EXT) { pci9118_ai_cmd() 1153 if (cmd->start_src == TRIG_NOW) pci9118_ai_cmd() 1155 else if (cmd->start_src == TRIG_INT) pci9118_ai_cmd() 1159 if (cmd->start_src == TRIG_EXT || cmd->stop_src == TRIG_EXT) pci9118_ai_cmd() 1167 struct comedi_cmd *cmd) pci9118_ai_cmdtest() 1176 err |= comedi_check_trigger_src(&cmd->start_src, pci9118_ai_cmdtest() 1182 err |= comedi_check_trigger_src(&cmd->scan_begin_src, flags); pci9118_ai_cmdtest() 1187 err |= comedi_check_trigger_src(&cmd->convert_src, flags); pci9118_ai_cmdtest() 1189 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); pci9118_ai_cmdtest() 1190 err |= comedi_check_trigger_src(&cmd->stop_src, pci9118_ai_cmdtest() 1198 err |= comedi_check_trigger_is_unique(cmd->start_src); pci9118_ai_cmdtest() 1199 err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); pci9118_ai_cmdtest() 1200 err |= comedi_check_trigger_is_unique(cmd->convert_src); pci9118_ai_cmdtest() 1201 err |= comedi_check_trigger_is_unique(cmd->stop_src); pci9118_ai_cmdtest() 1205 if (cmd->start_src == TRIG_EXT && cmd->scan_begin_src == TRIG_EXT) pci9118_ai_cmdtest() 1208 if (cmd->start_src == TRIG_INT && cmd->scan_begin_src == TRIG_INT) pci9118_ai_cmdtest() 1211 if ((cmd->scan_begin_src & (TRIG_TIMER | TRIG_EXT)) && pci9118_ai_cmdtest() 1212 (!(cmd->convert_src & (TRIG_TIMER | TRIG_NOW)))) pci9118_ai_cmdtest() 1215 if ((cmd->scan_begin_src == TRIG_FOLLOW) && pci9118_ai_cmdtest() 1216 (!(cmd->convert_src & (TRIG_TIMER | TRIG_EXT)))) pci9118_ai_cmdtest() 1219 if (cmd->stop_src == TRIG_EXT && cmd->scan_begin_src == TRIG_EXT) pci9118_ai_cmdtest() 1227 switch (cmd->start_src) { pci9118_ai_cmdtest() 1230 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); pci9118_ai_cmdtest() 1237 if (cmd->scan_begin_src & (TRIG_FOLLOW | TRIG_EXT)) pci9118_ai_cmdtest() 1238 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, 0); pci9118_ai_cmdtest() 1240 if ((cmd->scan_begin_src == TRIG_TIMER) && pci9118_ai_cmdtest() 1241 (cmd->convert_src == TRIG_TIMER) && (cmd->scan_end_arg == 1)) { pci9118_ai_cmdtest() 1242 cmd->scan_begin_src = TRIG_FOLLOW; pci9118_ai_cmdtest() 1243 cmd->convert_arg = cmd->scan_begin_arg; pci9118_ai_cmdtest() 1244 cmd->scan_begin_arg = 0; pci9118_ai_cmdtest() 1247 if (cmd->scan_begin_src == TRIG_TIMER) { pci9118_ai_cmdtest() 1248 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, pci9118_ai_cmdtest() 1252 if (cmd->scan_begin_src == TRIG_EXT) { pci9118_ai_cmdtest() 1253 if (cmd->scan_begin_arg) { pci9118_ai_cmdtest() 1254 cmd->scan_begin_arg = 0; pci9118_ai_cmdtest() 1256 err |= comedi_check_trigger_arg_max(&cmd->scan_end_arg, pci9118_ai_cmdtest() 1261 if (cmd->convert_src & (TRIG_TIMER | TRIG_NOW)) { pci9118_ai_cmdtest() 1262 err |= comedi_check_trigger_arg_min(&cmd->convert_arg, pci9118_ai_cmdtest() 1266 if (cmd->convert_src == TRIG_EXT) pci9118_ai_cmdtest() 1267 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, 0); pci9118_ai_cmdtest() 1269 if (cmd->stop_src == TRIG_COUNT) pci9118_ai_cmdtest() 1270 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); pci9118_ai_cmdtest() 1272 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); pci9118_ai_cmdtest() 1274 err |= comedi_check_trigger_arg_min(&cmd->chanlist_len, 1); pci9118_ai_cmdtest() 1276 err |= comedi_check_trigger_arg_min(&cmd->scan_end_arg, pci9118_ai_cmdtest() 1277 cmd->chanlist_len); pci9118_ai_cmdtest() 1279 if ((cmd->scan_end_arg % cmd->chanlist_len)) { pci9118_ai_cmdtest() 1280 cmd->scan_end_arg = pci9118_ai_cmdtest() 1281 cmd->chanlist_len * (cmd->scan_end_arg / cmd->chanlist_len); pci9118_ai_cmdtest() 1290 if (cmd->scan_begin_src == TRIG_TIMER) { pci9118_ai_cmdtest() 1291 arg = cmd->scan_begin_arg; pci9118_ai_cmdtest() 1292 comedi_8254_cascade_ns_to_timer(dev->pacer, &arg, cmd->flags); pci9118_ai_cmdtest() 1293 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); pci9118_ai_cmdtest() 1296 if (cmd->convert_src & (TRIG_TIMER | TRIG_NOW)) { pci9118_ai_cmdtest() 1297 arg = cmd->convert_arg; pci9118_ai_cmdtest() 1298 comedi_8254_cascade_ns_to_timer(dev->pacer, &arg, cmd->flags); pci9118_ai_cmdtest() 1299 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg); pci9118_ai_cmdtest() 1301 if (cmd->scan_begin_src == TRIG_TIMER && pci9118_ai_cmdtest() 1302 cmd->convert_src == TRIG_NOW) { pci9118_ai_cmdtest() 1303 if (cmd->convert_arg == 0) { pci9118_ai_cmdtest() 1305 (cmd->scan_end_arg + 2); pci9118_ai_cmdtest() 1307 arg = cmd->convert_arg * cmd->chanlist_len; pci9118_ai_cmdtest() 1309 err |= comedi_check_trigger_arg_min(&cmd-> pci9118_ai_cmdtest() 1318 if (cmd->chanlist) pci9118_ai_cmdtest() 1319 if (!check_channel_list(dev, s, cmd->chanlist_len, pci9118_ai_cmdtest() 1320 cmd->chanlist, 0, 0)) pci9118_ai_cmdtest() 1165 pci9118_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) pci9118_ai_cmdtest() argument
|
H A D | das16m1.c | 52 irq can be omitted, although the cmd interface will not work without it. 151 struct comedi_cmd *cmd) das16m1_ai_check_chanlist() 155 if (cmd->chanlist_len == 1) das16m1_ai_check_chanlist() 158 if ((cmd->chanlist_len % 2) != 0) { das16m1_ai_check_chanlist() 164 for (i = 0; i < cmd->chanlist_len; i++) { das16m1_ai_check_chanlist() 165 unsigned int chan = CR_CHAN(cmd->chanlist[i]); das16m1_ai_check_chanlist() 178 struct comedi_subdevice *s, struct comedi_cmd *cmd) das16m1_cmd_test() 184 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW | TRIG_EXT); das16m1_cmd_test() 185 err |= comedi_check_trigger_src(&cmd->scan_begin_src, TRIG_FOLLOW); das16m1_cmd_test() 186 err |= comedi_check_trigger_src(&cmd->convert_src, das16m1_cmd_test() 188 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); das16m1_cmd_test() 189 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_COUNT | TRIG_NONE); das16m1_cmd_test() 196 err |= comedi_check_trigger_is_unique(cmd->start_src); das16m1_cmd_test() 197 err |= comedi_check_trigger_is_unique(cmd->convert_src); das16m1_cmd_test() 198 err |= comedi_check_trigger_is_unique(cmd->stop_src); das16m1_cmd_test() 207 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); das16m1_cmd_test() 209 if (cmd->scan_begin_src == TRIG_FOLLOW) /* internal trigger */ das16m1_cmd_test() 210 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, 0); das16m1_cmd_test() 212 if (cmd->convert_src == TRIG_TIMER) das16m1_cmd_test() 213 err |= comedi_check_trigger_arg_min(&cmd->convert_arg, 1000); das16m1_cmd_test() 215 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, das16m1_cmd_test() 216 cmd->chanlist_len); das16m1_cmd_test() 218 if (cmd->stop_src == TRIG_COUNT) das16m1_cmd_test() 219 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); das16m1_cmd_test() 221 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); das16m1_cmd_test() 228 if (cmd->convert_src == TRIG_TIMER) { das16m1_cmd_test() 229 unsigned int arg = cmd->convert_arg; das16m1_cmd_test() 231 comedi_8254_cascade_ns_to_timer(dev->pacer, &arg, cmd->flags); das16m1_cmd_test() 232 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg); das16m1_cmd_test() 239 if (cmd->chanlist && cmd->chanlist_len > 0) das16m1_cmd_test() 240 err |= das16m1_ai_check_chanlist(dev, s, cmd); das16m1_cmd_test() 253 struct comedi_cmd *cmd = &async->cmd; das16m1_cmd_exec() local 278 for (i = 0; i < cmd->chanlist_len; i++) { das16m1_cmd_exec() 281 Q_CHAN(CR_CHAN(cmd->chanlist[i])) | das16m1_cmd_exec() 282 Q_RANGE(CR_RANGE(cmd->chanlist[i])); das16m1_cmd_exec() 288 if (cmd->convert_src == TRIG_TIMER) { das16m1_cmd_exec() 300 if (cmd->start_src == TRIG_EXT && cmd->convert_src != TRIG_EXT) das16m1_cmd_exec() 402 struct comedi_cmd *cmd; das16m1_handler() local 408 cmd = &async->cmd; das16m1_handler() 426 if (cmd->stop_src == TRIG_COUNT) { das16m1_handler() 427 if (num_samples > cmd->stop_arg * cmd->chanlist_len) das16m1_handler() 428 num_samples = cmd->stop_arg * cmd->chanlist_len; das16m1_handler() 438 if (cmd->stop_src == TRIG_COUNT) { das16m1_handler() 439 if (devpriv->adc_count >= cmd->stop_arg * cmd->chanlist_len) { das16m1_handler() 149 das16m1_ai_check_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) das16m1_ai_check_chanlist() argument 177 das16m1_cmd_test(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) das16m1_cmd_test() argument
|
H A D | dmm32at.c | 242 struct comedi_cmd *cmd) dmm32at_ai_check_chanlist() 244 unsigned int chan0 = CR_CHAN(cmd->chanlist[0]); dmm32at_ai_check_chanlist() 245 unsigned int range0 = CR_RANGE(cmd->chanlist[0]); dmm32at_ai_check_chanlist() 248 for (i = 1; i < cmd->chanlist_len; i++) { dmm32at_ai_check_chanlist() 249 unsigned int chan = CR_CHAN(cmd->chanlist[i]); dmm32at_ai_check_chanlist() 250 unsigned int range = CR_RANGE(cmd->chanlist[i]); dmm32at_ai_check_chanlist() 269 struct comedi_cmd *cmd) dmm32at_ai_cmdtest() 276 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW); dmm32at_ai_cmdtest() 277 err |= comedi_check_trigger_src(&cmd->scan_begin_src, TRIG_TIMER); dmm32at_ai_cmdtest() 278 err |= comedi_check_trigger_src(&cmd->convert_src, TRIG_TIMER); dmm32at_ai_cmdtest() 279 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); dmm32at_ai_cmdtest() 280 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_COUNT | TRIG_NONE); dmm32at_ai_cmdtest() 287 err |= comedi_check_trigger_is_unique(cmd->stop_src); dmm32at_ai_cmdtest() 296 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); dmm32at_ai_cmdtest() 298 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, 1000000); dmm32at_ai_cmdtest() 299 err |= comedi_check_trigger_arg_max(&cmd->scan_begin_arg, 1000000000); dmm32at_ai_cmdtest() 301 if (cmd->convert_arg >= 17500) dmm32at_ai_cmdtest() 302 cmd->convert_arg = 20000; dmm32at_ai_cmdtest() 303 else if (cmd->convert_arg >= 12500) dmm32at_ai_cmdtest() 304 cmd->convert_arg = 15000; dmm32at_ai_cmdtest() 305 else if (cmd->convert_arg >= 7500) dmm32at_ai_cmdtest() 306 cmd->convert_arg = 10000; dmm32at_ai_cmdtest() 308 cmd->convert_arg = 5000; dmm32at_ai_cmdtest() 310 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, dmm32at_ai_cmdtest() 311 cmd->chanlist_len); dmm32at_ai_cmdtest() 313 if (cmd->stop_src == TRIG_COUNT) dmm32at_ai_cmdtest() 314 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); dmm32at_ai_cmdtest() 316 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); dmm32at_ai_cmdtest() 323 arg = cmd->convert_arg * cmd->scan_end_arg; dmm32at_ai_cmdtest() 324 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, arg); dmm32at_ai_cmdtest() 330 if (cmd->chanlist && cmd->chanlist_len > 0) dmm32at_ai_cmdtest() 331 err |= dmm32at_ai_check_chanlist(dev, s, cmd); dmm32at_ai_cmdtest() 373 struct comedi_cmd *cmd = &s->async->cmd; dmm32at_ai_cmd() local 376 dmm32at_ai_set_chanspec(dev, s, cmd->chanlist[0], cmd->chanlist_len); dmm32at_ai_cmd() 390 if (cmd->stop_src == TRIG_NONE || cmd->stop_arg > 1) { dmm32at_ai_cmd() 392 dmm32at_setaitimer(dev, cmd->scan_begin_arg); dmm32at_ai_cmd() 426 struct comedi_cmd *cmd = &s->async->cmd; dmm32at_isr() local 428 for (i = 0; i < cmd->chanlist_len; i++) { dmm32at_isr() 433 if (cmd->stop_src == TRIG_COUNT && dmm32at_isr() 434 s->async->scans_done >= cmd->stop_arg) dmm32at_isr() 240 dmm32at_ai_check_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) dmm32at_ai_check_chanlist() argument 267 dmm32at_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) dmm32at_ai_cmdtest() argument
|
H A D | adl_pci9111.c | 227 struct comedi_cmd *cmd) pci9111_ai_check_chanlist() 229 unsigned int range0 = CR_RANGE(cmd->chanlist[0]); pci9111_ai_check_chanlist() 230 unsigned int aref0 = CR_AREF(cmd->chanlist[0]); pci9111_ai_check_chanlist() 233 for (i = 1; i < cmd->chanlist_len; i++) { pci9111_ai_check_chanlist() 234 unsigned int chan = CR_CHAN(cmd->chanlist[i]); pci9111_ai_check_chanlist() 235 unsigned int range = CR_RANGE(cmd->chanlist[i]); pci9111_ai_check_chanlist() 236 unsigned int aref = CR_AREF(cmd->chanlist[i]); pci9111_ai_check_chanlist() 262 struct comedi_cmd *cmd) pci9111_ai_do_cmd_test() 269 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW); pci9111_ai_do_cmd_test() 270 err |= comedi_check_trigger_src(&cmd->scan_begin_src, pci9111_ai_do_cmd_test() 272 err |= comedi_check_trigger_src(&cmd->convert_src, pci9111_ai_do_cmd_test() 274 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); pci9111_ai_do_cmd_test() 275 err |= comedi_check_trigger_src(&cmd->stop_src, pci9111_ai_do_cmd_test() 283 err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); pci9111_ai_do_cmd_test() 284 err |= comedi_check_trigger_is_unique(cmd->convert_src); pci9111_ai_do_cmd_test() 285 err |= comedi_check_trigger_is_unique(cmd->stop_src); pci9111_ai_do_cmd_test() 289 if (cmd->scan_begin_src != TRIG_FOLLOW) { pci9111_ai_do_cmd_test() 290 if (cmd->scan_begin_src != cmd->convert_src) pci9111_ai_do_cmd_test() 299 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); pci9111_ai_do_cmd_test() 301 if (cmd->convert_src == TRIG_TIMER) { pci9111_ai_do_cmd_test() 302 err |= comedi_check_trigger_arg_min(&cmd->convert_arg, pci9111_ai_do_cmd_test() 305 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, 0); pci9111_ai_do_cmd_test() 308 if (cmd->scan_begin_src == TRIG_TIMER) { pci9111_ai_do_cmd_test() 309 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, pci9111_ai_do_cmd_test() 312 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, 0); pci9111_ai_do_cmd_test() 315 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, pci9111_ai_do_cmd_test() 316 cmd->chanlist_len); pci9111_ai_do_cmd_test() 318 if (cmd->stop_src == TRIG_COUNT) pci9111_ai_do_cmd_test() 319 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); pci9111_ai_do_cmd_test() 321 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); pci9111_ai_do_cmd_test() 328 if (cmd->convert_src == TRIG_TIMER) { pci9111_ai_do_cmd_test() 329 arg = cmd->convert_arg; pci9111_ai_do_cmd_test() 330 comedi_8254_cascade_ns_to_timer(dev->pacer, &arg, cmd->flags); pci9111_ai_do_cmd_test() 331 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg); pci9111_ai_do_cmd_test() 338 if (cmd->scan_begin_src == TRIG_TIMER) { pci9111_ai_do_cmd_test() 339 arg = cmd->chanlist_len * cmd->convert_arg; pci9111_ai_do_cmd_test() 341 if (arg < cmd->scan_begin_arg) pci9111_ai_do_cmd_test() 342 arg *= (cmd->scan_begin_arg / arg); pci9111_ai_do_cmd_test() 344 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); pci9111_ai_do_cmd_test() 351 if (cmd->chanlist && cmd->chanlist_len > 0) pci9111_ai_do_cmd_test() 352 err |= pci9111_ai_check_chanlist(dev, s, cmd); pci9111_ai_do_cmd_test() 364 struct comedi_cmd *cmd = &s->async->cmd; pci9111_ai_do_cmd() local 365 unsigned int last_chan = CR_CHAN(cmd->chanlist[cmd->chanlist_len - 1]); pci9111_ai_do_cmd() 372 if (cmd->chanlist_len > 1) pci9111_ai_do_cmd() 380 outb(CR_RANGE(cmd->chanlist[0]) & PCI9111_AI_RANGE_MASK, pci9111_ai_do_cmd() 385 if (cmd->convert_src == TRIG_TIMER) { pci9111_ai_do_cmd() 395 if (cmd->scan_begin_src == TRIG_TIMER) { pci9111_ai_do_cmd() 396 dev_private->scan_delay = (cmd->scan_begin_arg / pci9111_ai_do_cmd() 397 (cmd->convert_arg * cmd->chanlist_len)) - 1; pci9111_ai_do_cmd() 410 dev_private->chunk_num_samples = cmd->chanlist_len * pci9111_ai_do_cmd() 436 struct comedi_cmd *cmd = &s->async->cmd; pci9111_handle_fifo_half_full() local 450 if (devpriv->chunk_counter < cmd->chanlist_len) { pci9111_handle_fifo_half_full() 451 to_read = cmd->chanlist_len - pci9111_handle_fifo_half_full() 484 struct comedi_cmd *cmd; pci9111_interrupt() local 496 cmd = &async->cmd; pci9111_interrupt() 532 if (cmd->stop_src == TRIG_COUNT && async->scans_done >= cmd->stop_arg) pci9111_interrupt() 225 pci9111_ai_check_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) pci9111_ai_check_chanlist() argument 260 pci9111_ai_do_cmd_test(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) pci9111_ai_do_cmd_test() argument
|
H A D | dt3000.c | 251 static void dt3k_send_cmd(struct comedi_device *dev, unsigned int cmd) dt3k_send_cmd() argument 256 writew(cmd, dev->mmio + DPR_Command_Mbx); dt3k_send_cmd() 401 struct comedi_subdevice *s, struct comedi_cmd *cmd) dt3k_ai_cmdtest() 409 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW); dt3k_ai_cmdtest() 410 err |= comedi_check_trigger_src(&cmd->scan_begin_src, TRIG_TIMER); dt3k_ai_cmdtest() 411 err |= comedi_check_trigger_src(&cmd->convert_src, TRIG_TIMER); dt3k_ai_cmdtest() 412 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); dt3k_ai_cmdtest() 413 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_COUNT); dt3k_ai_cmdtest() 423 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); dt3k_ai_cmdtest() 425 if (cmd->scan_begin_src == TRIG_TIMER) { dt3k_ai_cmdtest() 426 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, dt3k_ai_cmdtest() 428 err |= comedi_check_trigger_arg_max(&cmd->scan_begin_arg, dt3k_ai_cmdtest() 432 if (cmd->convert_src == TRIG_TIMER) { dt3k_ai_cmdtest() 433 err |= comedi_check_trigger_arg_min(&cmd->convert_arg, dt3k_ai_cmdtest() 435 err |= comedi_check_trigger_arg_max(&cmd->convert_arg, dt3k_ai_cmdtest() 439 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, dt3k_ai_cmdtest() 440 cmd->chanlist_len); dt3k_ai_cmdtest() 442 if (cmd->stop_src == TRIG_COUNT) dt3k_ai_cmdtest() 443 err |= comedi_check_trigger_arg_max(&cmd->stop_arg, 0x00ffffff); dt3k_ai_cmdtest() 445 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); dt3k_ai_cmdtest() 452 if (cmd->scan_begin_src == TRIG_TIMER) { dt3k_ai_cmdtest() 453 arg = cmd->scan_begin_arg; dt3k_ai_cmdtest() 454 dt3k_ns_to_timer(100, &arg, cmd->flags); dt3k_ai_cmdtest() 455 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); dt3k_ai_cmdtest() 458 if (cmd->convert_src == TRIG_TIMER) { dt3k_ai_cmdtest() 459 arg = cmd->convert_arg; dt3k_ai_cmdtest() 460 dt3k_ns_to_timer(50, &arg, cmd->flags); dt3k_ai_cmdtest() 461 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg); dt3k_ai_cmdtest() 463 if (cmd->scan_begin_src == TRIG_TIMER) { dt3k_ai_cmdtest() 464 arg = cmd->convert_arg * cmd->scan_end_arg; dt3k_ai_cmdtest() 465 err |= comedi_check_trigger_arg_min(&cmd-> dt3k_ai_cmdtest() 479 struct comedi_cmd *cmd = &s->async->cmd; dt3k_ai_cmd() local 485 for (i = 0; i < cmd->chanlist_len; i++) { dt3k_ai_cmd() 486 chan = CR_CHAN(cmd->chanlist[i]); dt3k_ai_cmd() 487 range = CR_RANGE(cmd->chanlist[i]); dt3k_ai_cmd() 491 aref = CR_AREF(cmd->chanlist[0]); dt3k_ai_cmd() 493 writew(cmd->scan_end_arg, dev->mmio + DPR_Params(0)); dt3k_ai_cmd() 495 if (cmd->convert_src == TRIG_TIMER) { dt3k_ai_cmd() 496 divider = dt3k_ns_to_timer(50, &cmd->convert_arg, cmd->flags); dt3k_ai_cmd() 501 if (cmd->scan_begin_src == TRIG_TIMER) { dt3k_ai_cmd() 502 tscandiv = dt3k_ns_to_timer(100, &cmd->scan_begin_arg, dt3k_ai_cmd() 503 cmd->flags); dt3k_ai_cmd() 400 dt3k_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) dt3k_ai_cmdtest() argument
|
H A D | addi_apci_2032.c | 88 struct comedi_cmd *cmd) apci2032_int_cmdtest() 94 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW); apci2032_int_cmdtest() 95 err |= comedi_check_trigger_src(&cmd->scan_begin_src, TRIG_EXT); apci2032_int_cmdtest() 96 err |= comedi_check_trigger_src(&cmd->convert_src, TRIG_NOW); apci2032_int_cmdtest() 97 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); apci2032_int_cmdtest() 98 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_COUNT | TRIG_NONE); apci2032_int_cmdtest() 104 err |= comedi_check_trigger_is_unique(cmd->stop_src); apci2032_int_cmdtest() 113 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); apci2032_int_cmdtest() 114 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, 0); apci2032_int_cmdtest() 115 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, 0); apci2032_int_cmdtest() 116 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, apci2032_int_cmdtest() 117 cmd->chanlist_len); apci2032_int_cmdtest() 118 if (cmd->stop_src == TRIG_COUNT) apci2032_int_cmdtest() 119 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); apci2032_int_cmdtest() 121 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); apci2032_int_cmdtest() 136 struct comedi_cmd *cmd = &s->async->cmd; apci2032_int_cmd() local 143 for (n = 0; n < cmd->chanlist_len; n++) apci2032_int_cmd() 144 enabled_isns |= 1 << CR_CHAN(cmd->chanlist[n]); apci2032_int_cmd() 175 struct comedi_cmd *cmd = &s->async->cmd; apci2032_interrupt() local 204 for (i = 0; i < cmd->chanlist_len; i++) { apci2032_interrupt() 205 unsigned int chan = CR_CHAN(cmd->chanlist[i]); apci2032_interrupt() 213 if (cmd->stop_src == TRIG_COUNT && apci2032_interrupt() 214 s->async->scans_done >= cmd->stop_arg) apci2032_interrupt() 86 apci2032_int_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) apci2032_int_cmdtest() argument
|
H A D | dt2814.c | 123 struct comedi_subdevice *s, struct comedi_cmd *cmd) dt2814_ai_cmdtest() 130 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW); dt2814_ai_cmdtest() 131 err |= comedi_check_trigger_src(&cmd->scan_begin_src, TRIG_TIMER); dt2814_ai_cmdtest() 132 err |= comedi_check_trigger_src(&cmd->convert_src, TRIG_NOW); dt2814_ai_cmdtest() 133 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); dt2814_ai_cmdtest() 134 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_COUNT | TRIG_NONE); dt2814_ai_cmdtest() 141 err |= comedi_check_trigger_is_unique(cmd->stop_src); dt2814_ai_cmdtest() 150 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); dt2814_ai_cmdtest() 152 err |= comedi_check_trigger_arg_max(&cmd->scan_begin_arg, 1000000000); dt2814_ai_cmdtest() 153 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, dt2814_ai_cmdtest() 156 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, dt2814_ai_cmdtest() 157 cmd->chanlist_len); dt2814_ai_cmdtest() 159 if (cmd->stop_src == TRIG_COUNT) dt2814_ai_cmdtest() 160 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 2); dt2814_ai_cmdtest() 162 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); dt2814_ai_cmdtest() 169 arg = cmd->scan_begin_arg; dt2814_ai_cmdtest() 170 dt2814_ns_to_timer(&arg, cmd->flags); dt2814_ai_cmdtest() 171 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); dt2814_ai_cmdtest() 182 struct comedi_cmd *cmd = &s->async->cmd; dt2814_ai_cmd() local 186 trigvar = dt2814_ns_to_timer(&cmd->scan_begin_arg, cmd->flags); dt2814_ai_cmd() 188 chan = CR_CHAN(cmd->chanlist[0]); dt2814_ai_cmd() 190 devpriv->ntrig = cmd->stop_arg; dt2814_ai_cmd() 122 dt2814_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) dt2814_ai_cmdtest() argument
|
H A D | pcl711.c | 194 struct comedi_cmd *cmd = &s->async->cmd; pcl711_interrupt() local 208 if (cmd->stop_src == TRIG_COUNT && pcl711_interrupt() 209 s->async->scans_done >= cmd->stop_arg) pcl711_interrupt() 282 struct comedi_subdevice *s, struct comedi_cmd *cmd) pcl711_ai_cmdtest() 288 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW); pcl711_ai_cmdtest() 289 err |= comedi_check_trigger_src(&cmd->scan_begin_src, pcl711_ai_cmdtest() 291 err |= comedi_check_trigger_src(&cmd->convert_src, TRIG_NOW); pcl711_ai_cmdtest() 292 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); pcl711_ai_cmdtest() 293 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_COUNT | TRIG_NONE); pcl711_ai_cmdtest() 300 err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); pcl711_ai_cmdtest() 301 err |= comedi_check_trigger_is_unique(cmd->stop_src); pcl711_ai_cmdtest() 310 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); pcl711_ai_cmdtest() 312 if (cmd->scan_begin_src == TRIG_EXT) { pcl711_ai_cmdtest() 313 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, 0); pcl711_ai_cmdtest() 316 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, pcl711_ai_cmdtest() 320 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, 0); pcl711_ai_cmdtest() 321 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, pcl711_ai_cmdtest() 322 cmd->chanlist_len); pcl711_ai_cmdtest() 324 if (cmd->stop_src == TRIG_COUNT) pcl711_ai_cmdtest() 325 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); pcl711_ai_cmdtest() 327 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); pcl711_ai_cmdtest() 334 if (cmd->scan_begin_src == TRIG_TIMER) { pcl711_ai_cmdtest() 335 unsigned int arg = cmd->scan_begin_arg; pcl711_ai_cmdtest() 337 comedi_8254_cascade_ns_to_timer(dev->pacer, &arg, cmd->flags); pcl711_ai_cmdtest() 338 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); pcl711_ai_cmdtest() 349 struct comedi_cmd *cmd = &s->async->cmd; pcl711_ai_cmd() local 351 pcl711_set_changain(dev, s, cmd->chanlist[0]); pcl711_ai_cmd() 353 if (cmd->scan_begin_src == TRIG_TIMER) { pcl711_ai_cmd() 281 pcl711_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) pcl711_ai_cmdtest() argument
|
H A D | cb_pcidas.c | 744 struct comedi_cmd *cmd) cb_pcidas_ai_check_chanlist() 746 unsigned int chan0 = CR_CHAN(cmd->chanlist[0]); cb_pcidas_ai_check_chanlist() 747 unsigned int range0 = CR_RANGE(cmd->chanlist[0]); cb_pcidas_ai_check_chanlist() 750 for (i = 1; i < cmd->chanlist_len; i++) { cb_pcidas_ai_check_chanlist() 751 unsigned int chan = CR_CHAN(cmd->chanlist[i]); cb_pcidas_ai_check_chanlist() 752 unsigned int range = CR_RANGE(cmd->chanlist[i]); cb_pcidas_ai_check_chanlist() 771 struct comedi_cmd *cmd) cb_pcidas_ai_cmdtest() 779 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW | TRIG_EXT); cb_pcidas_ai_cmdtest() 780 err |= comedi_check_trigger_src(&cmd->scan_begin_src, cb_pcidas_ai_cmdtest() 782 err |= comedi_check_trigger_src(&cmd->convert_src, cb_pcidas_ai_cmdtest() 784 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); cb_pcidas_ai_cmdtest() 785 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_COUNT | TRIG_NONE); cb_pcidas_ai_cmdtest() 792 err |= comedi_check_trigger_is_unique(cmd->start_src); cb_pcidas_ai_cmdtest() 793 err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); cb_pcidas_ai_cmdtest() 794 err |= comedi_check_trigger_is_unique(cmd->convert_src); cb_pcidas_ai_cmdtest() 795 err |= comedi_check_trigger_is_unique(cmd->stop_src); cb_pcidas_ai_cmdtest() 799 if (cmd->scan_begin_src == TRIG_FOLLOW && cmd->convert_src == TRIG_NOW) cb_pcidas_ai_cmdtest() 801 if (cmd->scan_begin_src != TRIG_FOLLOW && cmd->convert_src != TRIG_NOW) cb_pcidas_ai_cmdtest() 803 if (cmd->start_src == TRIG_EXT && cb_pcidas_ai_cmdtest() 804 (cmd->convert_src == TRIG_EXT || cmd->scan_begin_src == TRIG_EXT)) cb_pcidas_ai_cmdtest() 812 switch (cmd->start_src) { cb_pcidas_ai_cmdtest() 814 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); cb_pcidas_ai_cmdtest() 818 if ((cmd->start_arg cb_pcidas_ai_cmdtest() 820 cmd->start_arg &= ~(CR_FLAGS_MASK & cb_pcidas_ai_cmdtest() 824 if (!thisboard->is_1602 && (cmd->start_arg & CR_INVERT)) { cb_pcidas_ai_cmdtest() 825 cmd->start_arg &= (CR_FLAGS_MASK & ~CR_INVERT); cb_pcidas_ai_cmdtest() 831 if (cmd->scan_begin_src == TRIG_TIMER) { cb_pcidas_ai_cmdtest() 832 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, cb_pcidas_ai_cmdtest() 834 cmd->chanlist_len); cb_pcidas_ai_cmdtest() 837 if (cmd->convert_src == TRIG_TIMER) { cb_pcidas_ai_cmdtest() 838 err |= comedi_check_trigger_arg_min(&cmd->convert_arg, cb_pcidas_ai_cmdtest() 842 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, cb_pcidas_ai_cmdtest() 843 cmd->chanlist_len); cb_pcidas_ai_cmdtest() 845 if (cmd->stop_src == TRIG_COUNT) cb_pcidas_ai_cmdtest() 846 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); cb_pcidas_ai_cmdtest() 848 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); cb_pcidas_ai_cmdtest() 855 if (cmd->scan_begin_src == TRIG_TIMER) { cb_pcidas_ai_cmdtest() 856 arg = cmd->scan_begin_arg; cb_pcidas_ai_cmdtest() 857 comedi_8254_cascade_ns_to_timer(dev->pacer, &arg, cmd->flags); cb_pcidas_ai_cmdtest() 858 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); cb_pcidas_ai_cmdtest() 860 if (cmd->convert_src == TRIG_TIMER) { cb_pcidas_ai_cmdtest() 861 arg = cmd->convert_arg; cb_pcidas_ai_cmdtest() 862 comedi_8254_cascade_ns_to_timer(dev->pacer, &arg, cmd->flags); cb_pcidas_ai_cmdtest() 863 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg); cb_pcidas_ai_cmdtest() 870 if (cmd->chanlist && cmd->chanlist_len > 0) cb_pcidas_ai_cmdtest() 871 err |= cb_pcidas_ai_check_chanlist(dev, s, cmd); cb_pcidas_ai_cmdtest() 885 struct comedi_cmd *cmd = &async->cmd; cb_pcidas_ai_cmd() local 897 bits = BEGIN_SCAN(CR_CHAN(cmd->chanlist[0])) | cb_pcidas_ai_cmd() 898 END_SCAN(CR_CHAN(cmd->chanlist[cmd->chanlist_len - 1])) | cb_pcidas_ai_cmd() 899 GAIN_BITS(CR_RANGE(cmd->chanlist[0])); cb_pcidas_ai_cmd() 901 if (CR_RANGE(cmd->chanlist[0]) & IS_UNIPOLAR) cb_pcidas_ai_cmd() 904 if (CR_AREF(cmd->chanlist[0]) != AREF_DIFF) cb_pcidas_ai_cmd() 907 if (cmd->convert_src == TRIG_EXT || cmd->scan_begin_src == TRIG_EXT) cb_pcidas_ai_cmd() 914 if (cmd->scan_begin_src == TRIG_TIMER || cb_pcidas_ai_cmd() 915 cmd->convert_src == TRIG_TIMER) { cb_pcidas_ai_cmd() 924 if (cmd->flags & CMDF_WAKE_EOS) { cb_pcidas_ai_cmd() 925 if (cmd->convert_src == TRIG_NOW && cmd->chanlist_len > 1) { cb_pcidas_ai_cmd() 944 if (cmd->start_src == TRIG_NOW) { cb_pcidas_ai_cmd() 949 if (cmd->start_arg & CR_INVERT) cb_pcidas_ai_cmd() 951 if (cmd->start_arg & CR_EDGE) cb_pcidas_ai_cmd() 955 if (cmd->convert_src == TRIG_NOW && cmd->chanlist_len > 1) cb_pcidas_ai_cmd() 964 struct comedi_cmd *cmd) cb_pcidas_ao_check_chanlist() 966 unsigned int chan0 = CR_CHAN(cmd->chanlist[0]); cb_pcidas_ao_check_chanlist() 968 if (cmd->chanlist_len > 1) { cb_pcidas_ao_check_chanlist() 969 unsigned int chan1 = CR_CHAN(cmd->chanlist[1]); cb_pcidas_ao_check_chanlist() 983 struct comedi_cmd *cmd) cb_pcidas_ao_cmdtest() 991 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_INT); cb_pcidas_ao_cmdtest() 992 err |= comedi_check_trigger_src(&cmd->scan_begin_src, cb_pcidas_ao_cmdtest() 994 err |= comedi_check_trigger_src(&cmd->convert_src, TRIG_NOW); cb_pcidas_ao_cmdtest() 995 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); cb_pcidas_ao_cmdtest() 996 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_COUNT | TRIG_NONE); cb_pcidas_ao_cmdtest() 1003 err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); cb_pcidas_ao_cmdtest() 1004 err |= comedi_check_trigger_is_unique(cmd->stop_src); cb_pcidas_ao_cmdtest() 1013 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); cb_pcidas_ao_cmdtest() 1015 if (cmd->scan_begin_src == TRIG_TIMER) { cb_pcidas_ao_cmdtest() 1016 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, cb_pcidas_ao_cmdtest() 1020 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, cb_pcidas_ao_cmdtest() 1021 cmd->chanlist_len); cb_pcidas_ao_cmdtest() 1023 if (cmd->stop_src == TRIG_COUNT) cb_pcidas_ao_cmdtest() 1024 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); cb_pcidas_ao_cmdtest() 1026 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); cb_pcidas_ao_cmdtest() 1033 if (cmd->scan_begin_src == TRIG_TIMER) { cb_pcidas_ao_cmdtest() 1034 unsigned int arg = cmd->scan_begin_arg; cb_pcidas_ao_cmdtest() 1037 &arg, cmd->flags); cb_pcidas_ao_cmdtest() 1038 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); cb_pcidas_ao_cmdtest() 1045 if (cmd->chanlist && cmd->chanlist_len > 0) cb_pcidas_ao_cmdtest() 1046 err |= cb_pcidas_ao_check_chanlist(dev, s, cmd); cb_pcidas_ao_cmdtest() 1096 struct comedi_cmd *cmd = &async->cmd; cb_pcidas_ao_inttrig() local 1099 if (trig_num != cmd->start_arg) cb_pcidas_ao_inttrig() 1128 struct comedi_cmd *cmd = &async->cmd; cb_pcidas_ao_cmd() local 1134 for (i = 0; i < cmd->chanlist_len; i++) { cb_pcidas_ao_cmd() 1137 DAC_CHAN_EN(CR_CHAN(cmd->chanlist[i])); cb_pcidas_ao_cmd() 1139 devpriv->ao_control_bits |= DAC_RANGE(CR_CHAN(cmd->chanlist[i]), cb_pcidas_ao_cmd() 1140 CR_RANGE(cmd-> cb_pcidas_ao_cmd() 1152 if (cmd->scan_begin_src == TRIG_TIMER) { cb_pcidas_ao_cmd() 1159 switch (cmd->scan_begin_src) { cb_pcidas_ao_cmd() 1204 struct comedi_cmd *cmd = &async->cmd; handle_ao_interrupt() local 1214 if (cmd->stop_src == TRIG_COUNT && handle_ao_interrupt() 1215 async->scans_done >= cmd->stop_arg) { handle_ao_interrupt() 1242 struct comedi_cmd *cmd; cb_pcidas_interrupt() local 1253 cmd = &async->cmd; cb_pcidas_interrupt() 1280 if (cmd->stop_src == TRIG_COUNT && cb_pcidas_interrupt() 1281 async->scans_done >= cmd->stop_arg) cb_pcidas_interrupt() 1301 if (cmd->stop_src == TRIG_COUNT && cb_pcidas_interrupt() 1302 async->scans_done >= cmd->stop_arg) { cb_pcidas_interrupt() 742 cb_pcidas_ai_check_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) cb_pcidas_ai_check_chanlist() argument 769 cb_pcidas_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) cb_pcidas_ai_cmdtest() argument 962 cb_pcidas_ao_check_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) cb_pcidas_ao_check_chanlist() argument 981 cb_pcidas_ao_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) cb_pcidas_ao_cmdtest() argument
|
H A D | amplc_pci224.c | 484 struct comedi_cmd *cmd = &s->async->cmd; pci224_ao_start() local 491 if (cmd->stop_src == TRIG_EXT) pci224_ao_start() 507 struct comedi_cmd *cmd = &s->async->cmd; pci224_ao_handle_fifo() local 518 if (cmd->stop_src == TRIG_COUNT && pci224_ao_handle_fifo() 519 s->async->scans_done >= cmd->stop_arg) { pci224_ao_handle_fifo() 545 room /= cmd->chanlist_len; pci224_ao_handle_fifo() 554 cmd->chanlist_len); pci224_ao_handle_fifo() 555 for (i = 0; i < cmd->chanlist_len; i++) { pci224_ao_handle_fifo() 560 if (cmd->stop_src == TRIG_COUNT && pci224_ao_handle_fifo() 561 s->async->scans_done >= cmd->stop_arg) { pci224_ao_handle_fifo() 587 if (cmd->scan_begin_src == TRIG_TIMER) { pci224_ao_handle_fifo() 590 /* cmd->scan_begin_src == TRIG_EXT */ pci224_ao_handle_fifo() 591 if (cmd->scan_begin_arg & CR_INVERT) pci224_ao_handle_fifo() 608 struct comedi_cmd *cmd = &s->async->cmd; pci224_ao_inttrig_start() local 610 if (trig_num != cmd->start_arg) pci224_ao_inttrig_start() 621 struct comedi_cmd *cmd) pci224_ao_check_chanlist() 628 range_check_0 = thisboard->ao_range_check[CR_RANGE(cmd->chanlist[0])]; pci224_ao_check_chanlist() 629 for (i = 0; i < cmd->chanlist_len; i++) { pci224_ao_check_chanlist() 630 unsigned int chan = CR_CHAN(cmd->chanlist[i]); pci224_ao_check_chanlist() 640 if (thisboard->ao_range_check[CR_RANGE(cmd->chanlist[i])] != pci224_ao_check_chanlist() 661 struct comedi_cmd *cmd) pci224_ao_cmdtest() 668 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_INT | TRIG_EXT); pci224_ao_cmdtest() 669 err |= comedi_check_trigger_src(&cmd->scan_begin_src, pci224_ao_cmdtest() 671 err |= comedi_check_trigger_src(&cmd->convert_src, TRIG_NOW); pci224_ao_cmdtest() 672 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); pci224_ao_cmdtest() 673 err |= comedi_check_trigger_src(&cmd->stop_src, pci224_ao_cmdtest() 681 err |= comedi_check_trigger_is_unique(cmd->start_src); pci224_ao_cmdtest() 682 err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); pci224_ao_cmdtest() 683 err |= comedi_check_trigger_is_unique(cmd->stop_src); pci224_ao_cmdtest() 692 if (cmd->start_src & TRIG_EXT) pci224_ao_cmdtest() 694 if (cmd->scan_begin_src & TRIG_EXT) pci224_ao_cmdtest() 696 if (cmd->stop_src & TRIG_EXT) pci224_ao_cmdtest() 706 switch (cmd->start_src) { pci224_ao_cmdtest() 708 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); pci224_ao_cmdtest() 712 if (cmd->start_arg & ~CR_FLAGS_MASK) { pci224_ao_cmdtest() 713 cmd->start_arg = pci224_ao_cmdtest() 714 COMBINE(cmd->start_arg, 0, ~CR_FLAGS_MASK); pci224_ao_cmdtest() 718 if (cmd->start_arg & CR_FLAGS_MASK & ~CR_EDGE) { pci224_ao_cmdtest() 719 cmd->start_arg = COMBINE(cmd->start_arg, 0, pci224_ao_cmdtest() 726 switch (cmd->scan_begin_src) { pci224_ao_cmdtest() 728 err |= comedi_check_trigger_arg_max(&cmd->scan_begin_arg, pci224_ao_cmdtest() 731 arg = cmd->chanlist_len * CONVERT_PERIOD; pci224_ao_cmdtest() 734 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, arg); pci224_ao_cmdtest() 738 if (cmd->scan_begin_arg & ~CR_FLAGS_MASK) { pci224_ao_cmdtest() 739 cmd->scan_begin_arg = pci224_ao_cmdtest() 740 COMBINE(cmd->scan_begin_arg, 0, ~CR_FLAGS_MASK); pci224_ao_cmdtest() 744 if (cmd->scan_begin_arg & CR_FLAGS_MASK & pci224_ao_cmdtest() 746 cmd->scan_begin_arg = pci224_ao_cmdtest() 747 COMBINE(cmd->scan_begin_arg, 0, pci224_ao_cmdtest() 754 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, 0); pci224_ao_cmdtest() 755 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, pci224_ao_cmdtest() 756 cmd->chanlist_len); pci224_ao_cmdtest() 758 switch (cmd->stop_src) { pci224_ao_cmdtest() 760 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); pci224_ao_cmdtest() 764 if (cmd->stop_arg & ~CR_FLAGS_MASK) { pci224_ao_cmdtest() 765 cmd->stop_arg = pci224_ao_cmdtest() 766 COMBINE(cmd->stop_arg, 0, ~CR_FLAGS_MASK); pci224_ao_cmdtest() 770 if (cmd->stop_arg & CR_FLAGS_MASK & ~CR_EDGE) { pci224_ao_cmdtest() 771 cmd->stop_arg = pci224_ao_cmdtest() 772 COMBINE(cmd->stop_arg, 0, CR_FLAGS_MASK & ~CR_EDGE); pci224_ao_cmdtest() 776 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); pci224_ao_cmdtest() 785 if (cmd->scan_begin_src == TRIG_TIMER) { pci224_ao_cmdtest() 786 arg = cmd->scan_begin_arg; pci224_ao_cmdtest() 788 comedi_8254_cascade_ns_to_timer(dev->pacer, &arg, cmd->flags); pci224_ao_cmdtest() 789 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); pci224_ao_cmdtest() 796 if (cmd->chanlist && cmd->chanlist_len > 0) pci224_ao_cmdtest() 797 err |= pci224_ao_check_chanlist(dev, s, cmd); pci224_ao_cmdtest() 831 struct comedi_cmd *cmd = &s->async->cmd; pci224_ao_cmd() local 839 if (!cmd->chanlist || cmd->chanlist_len == 0) pci224_ao_cmd() 845 for (i = 0; i < cmd->chanlist_len; i++) { pci224_ao_cmd() 846 ch = CR_CHAN(cmd->chanlist[i]); pci224_ao_cmd() 849 for (j = 0; j < cmd->chanlist_len; j++) { pci224_ao_cmd() 850 if (CR_CHAN(cmd->chanlist[j]) < ch) pci224_ao_cmd() 860 range = CR_RANGE(cmd->chanlist[0]); pci224_ao_cmd() 879 if (cmd->scan_begin_src == TRIG_TIMER) { pci224_ao_cmd() 885 if (cmd->start_src == TRIG_INT) { pci224_ao_cmd() 915 struct comedi_cmd *cmd = &s->async->cmd; pci224_ao_munge() local 925 if ((thisboard->ao_hwrange[CR_RANGE(cmd->chanlist[0])] & pci224_ao_munge() 946 struct comedi_cmd *cmd; pci224_interrupt() local 964 cmd = &s->async->cmd; pci224_interrupt() 967 if (cmd->start_src == TRIG_EXT) pci224_interrupt() 969 else if (cmd->stop_src == TRIG_EXT) pci224_interrupt() 619 pci224_ao_check_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) pci224_ao_check_chanlist() argument 660 pci224_ao_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) pci224_ao_cmdtest() argument
|
H A D | das6402.c | 186 struct comedi_cmd *cmd = &async->cmd; das6402_interrupt() local 201 if (cmd->stop_src == TRIG_COUNT && das6402_interrupt() 202 async->scans_done >= cmd->stop_arg) das6402_interrupt() 234 struct comedi_cmd *cmd = &s->async->cmd; das6402_ai_cmd() local 235 unsigned int chan_lo = CR_CHAN(cmd->chanlist[0]); das6402_ai_cmd() 236 unsigned int chan_hi = CR_CHAN(cmd->chanlist[cmd->chanlist_len - 1]); das6402_ai_cmd() 238 das6402_ai_set_mode(dev, s, cmd->chanlist[0], DAS6402_MODE_FIFONEPTY); das6402_ai_cmd() 257 struct comedi_cmd *cmd) das6402_ai_check_chanlist() 259 unsigned int chan0 = CR_CHAN(cmd->chanlist[0]); das6402_ai_check_chanlist() 260 unsigned int range0 = CR_RANGE(cmd->chanlist[0]); das6402_ai_check_chanlist() 261 unsigned int aref0 = CR_AREF(cmd->chanlist[0]); das6402_ai_check_chanlist() 264 for (i = 1; i < cmd->chanlist_len; i++) { das6402_ai_check_chanlist() 265 unsigned int chan = CR_CHAN(cmd->chanlist[i]); das6402_ai_check_chanlist() 266 unsigned int range = CR_RANGE(cmd->chanlist[i]); das6402_ai_check_chanlist() 267 unsigned int aref = CR_AREF(cmd->chanlist[i]); das6402_ai_check_chanlist() 298 struct comedi_cmd *cmd) das6402_ai_cmdtest() 305 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW); das6402_ai_cmdtest() 306 err |= comedi_check_trigger_src(&cmd->scan_begin_src, TRIG_FOLLOW); das6402_ai_cmdtest() 307 err |= comedi_check_trigger_src(&cmd->convert_src, TRIG_TIMER); das6402_ai_cmdtest() 308 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); das6402_ai_cmdtest() 309 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_COUNT | TRIG_NONE); das6402_ai_cmdtest() 316 err |= comedi_check_trigger_is_unique(cmd->stop_src); das6402_ai_cmdtest() 325 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); das6402_ai_cmdtest() 326 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, 0); das6402_ai_cmdtest() 327 err |= comedi_check_trigger_arg_min(&cmd->convert_arg, 10000); das6402_ai_cmdtest() 328 err |= comedi_check_trigger_arg_min(&cmd->chanlist_len, 1); das6402_ai_cmdtest() 329 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, das6402_ai_cmdtest() 330 cmd->chanlist_len); das6402_ai_cmdtest() 332 if (cmd->stop_src == TRIG_COUNT) das6402_ai_cmdtest() 333 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); das6402_ai_cmdtest() 335 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); das6402_ai_cmdtest() 342 arg = cmd->convert_arg; das6402_ai_cmdtest() 343 comedi_8254_cascade_ns_to_timer(dev->pacer, &arg, cmd->flags); das6402_ai_cmdtest() 344 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg); das6402_ai_cmdtest() 350 if (cmd->chanlist && cmd->chanlist_len > 0) das6402_ai_cmdtest() 351 err |= das6402_ai_check_chanlist(dev, s, cmd); das6402_ai_cmdtest() 255 das6402_ai_check_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) das6402_ai_check_chanlist() argument 296 das6402_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) das6402_ai_cmdtest() argument
|
H A D | cb_pcidas64.c | 1254 const struct comedi_cmd *cmd) enable_ai_interrupts() 1265 if (cmd->flags & CMDF_WAKE_EOS) { enable_ai_interrupts() 1989 * sets cmd members appropriately. 1992 static void check_adc_timing(struct comedi_device *dev, struct comedi_cmd *cmd) check_adc_timing() argument 2003 if (cmd->convert_src == TRIG_TIMER) { check_adc_timing() 2005 cmd->convert_arg = 0; check_adc_timing() 2007 convert_divisor = get_divisor(cmd->convert_arg, check_adc_timing() 2008 cmd->flags); check_adc_timing() 2013 cmd->convert_arg = convert_divisor * TIMER_BASE; check_adc_timing() 2015 } else if (cmd->convert_src == TRIG_NOW) { check_adc_timing() 2016 cmd->convert_arg = 0; check_adc_timing() 2019 if (cmd->scan_begin_src == TRIG_TIMER) { check_adc_timing() 2020 scan_divisor = get_divisor(cmd->scan_begin_arg, cmd->flags); check_adc_timing() 2021 if (cmd->convert_src == TRIG_TIMER) { check_adc_timing() 2022 min_scan_divisor = convert_divisor * cmd->chanlist_len; check_adc_timing() 2024 (convert_divisor * cmd->chanlist_len - 1) + check_adc_timing() 2034 cmd->scan_begin_arg = scan_divisor * TIMER_BASE; check_adc_timing() 2040 struct comedi_cmd *cmd) cb_pcidas64_ai_check_chanlist() 2043 unsigned int aref0 = CR_AREF(cmd->chanlist[0]); cb_pcidas64_ai_check_chanlist() 2046 for (i = 1; i < cmd->chanlist_len; i++) { cb_pcidas64_ai_check_chanlist() 2047 unsigned int aref = CR_AREF(cmd->chanlist[i]); cb_pcidas64_ai_check_chanlist() 2057 unsigned int chan0 = CR_CHAN(cmd->chanlist[0]); cb_pcidas64_ai_check_chanlist() 2059 for (i = 1; i < cmd->chanlist_len; i++) { cb_pcidas64_ai_check_chanlist() 2060 unsigned int chan = CR_CHAN(cmd->chanlist[i]); cb_pcidas64_ai_check_chanlist() 2068 if (cmd->chanlist_len == 3) { cb_pcidas64_ai_check_chanlist() 2079 struct comedi_cmd *cmd) ai_cmdtest() 2088 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW | TRIG_EXT); ai_cmdtest() 2095 err |= comedi_check_trigger_src(&cmd->scan_begin_src, triggers); ai_cmdtest() 2102 err |= comedi_check_trigger_src(&cmd->convert_src, triggers); ai_cmdtest() 2103 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); ai_cmdtest() 2104 err |= comedi_check_trigger_src(&cmd->stop_src, ai_cmdtest() 2112 err |= comedi_check_trigger_is_unique(cmd->start_src); ai_cmdtest() 2113 err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); ai_cmdtest() 2114 err |= comedi_check_trigger_is_unique(cmd->convert_src); ai_cmdtest() 2115 err |= comedi_check_trigger_is_unique(cmd->stop_src); ai_cmdtest() 2119 if (cmd->convert_src == TRIG_EXT && cmd->scan_begin_src == TRIG_TIMER) ai_cmdtest() 2127 switch (cmd->start_src) { ai_cmdtest() 2129 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); ai_cmdtest() 2139 if (cmd->convert_src == TRIG_TIMER) { ai_cmdtest() 2141 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, ai_cmdtest() 2144 err |= comedi_check_trigger_arg_min(&cmd->convert_arg, ai_cmdtest() 2151 if (cmd->scan_begin_src == TRIG_TIMER) { ai_cmdtest() 2153 &cmd->scan_begin_arg, ai_cmdtest() 2154 cmd->convert_arg * ai_cmdtest() 2155 cmd->chanlist_len); ai_cmdtest() 2160 err |= comedi_check_trigger_arg_min(&cmd->chanlist_len, 1); ai_cmdtest() 2161 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, ai_cmdtest() 2162 cmd->chanlist_len); ai_cmdtest() 2164 switch (cmd->stop_src) { ai_cmdtest() 2168 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); ai_cmdtest() 2171 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); ai_cmdtest() 2182 if (cmd->convert_src == TRIG_TIMER) { ai_cmdtest() 2183 tmp_arg = cmd->convert_arg; ai_cmdtest() 2184 tmp_arg2 = cmd->scan_begin_arg; ai_cmdtest() 2185 check_adc_timing(dev, cmd); ai_cmdtest() 2186 if (tmp_arg != cmd->convert_arg) ai_cmdtest() 2188 if (tmp_arg2 != cmd->scan_begin_arg) ai_cmdtest() 2196 if (cmd->chanlist && cmd->chanlist_len > 0) ai_cmdtest() 2197 err |= cb_pcidas64_ai_check_chanlist(dev, s, cmd); ai_cmdtest() 2205 static int use_hw_sample_counter(struct comedi_cmd *cmd) use_hw_sample_counter() argument 2210 if (cmd->stop_src == TRIG_COUNT && cmd->stop_arg <= max_counter_value) use_hw_sample_counter() 2217 struct comedi_cmd *cmd) setup_sample_counters() 2222 if (use_hw_sample_counter(cmd)) { setup_sample_counters() 2223 writew(cmd->stop_arg & 0xffff, setup_sample_counters() 2225 writew((cmd->stop_arg >> 16) & 0xff, setup_sample_counters() 2247 const struct comedi_cmd *cmd) ai_convert_counter_6xxx() 2250 return cmd->convert_arg / TIMER_BASE - 3; ai_convert_counter_6xxx() 2254 struct comedi_cmd *cmd) ai_scan_counter_6xxx() 2259 switch (cmd->scan_begin_src) { ai_scan_counter_6xxx() 2261 count = (cmd->scan_begin_arg - ai_scan_counter_6xxx() 2262 (cmd->convert_arg * (cmd->chanlist_len - 1))) / ai_scan_counter_6xxx() 2266 count = cmd->convert_arg / TIMER_BASE; ai_scan_counter_6xxx() 2275 struct comedi_cmd *cmd) ai_convert_counter_4020() 2280 switch (cmd->scan_begin_src) { ai_convert_counter_4020() 2282 divisor = cmd->scan_begin_arg / TIMER_BASE; ai_convert_counter_4020() 2298 const struct comedi_cmd *cmd) select_master_clock_4020() 2304 if (cmd->scan_begin_src == TRIG_OTHER) { select_master_clock_4020() 2319 const struct comedi_cmd *cmd) select_master_clock() 2325 select_master_clock_4020(dev, cmd); select_master_clock() 2351 static void set_ai_pacing(struct comedi_device *dev, struct comedi_cmd *cmd) set_ai_pacing() argument 2357 check_adc_timing(dev, cmd); set_ai_pacing() 2359 select_master_clock(dev, cmd); set_ai_pacing() 2362 convert_counter = ai_convert_counter_4020(dev, cmd); set_ai_pacing() 2364 convert_counter = ai_convert_counter_6xxx(dev, cmd); set_ai_pacing() 2365 scan_counter = ai_scan_counter_6xxx(dev, cmd); set_ai_pacing() 2382 static int use_internal_queue_6xxx(const struct comedi_cmd *cmd) use_internal_queue_6xxx() argument 2386 for (i = 0; i + 1 < cmd->chanlist_len; i++) { use_internal_queue_6xxx() 2387 if (CR_CHAN(cmd->chanlist[i + 1]) != use_internal_queue_6xxx() 2388 CR_CHAN(cmd->chanlist[i]) + 1) use_internal_queue_6xxx() 2390 if (CR_RANGE(cmd->chanlist[i + 1]) != use_internal_queue_6xxx() 2391 CR_RANGE(cmd->chanlist[i])) use_internal_queue_6xxx() 2393 if (CR_AREF(cmd->chanlist[i + 1]) != CR_AREF(cmd->chanlist[i])) use_internal_queue_6xxx() 2400 const struct comedi_cmd *cmd) setup_channel_queue() 2408 if (use_internal_queue_6xxx(cmd)) { setup_channel_queue() 2414 bits |= adc_chan_bits(CR_CHAN(cmd->chanlist[0])); setup_channel_queue() 2417 CR_RANGE(cmd->chanlist[0])); setup_channel_queue() 2420 CR_AREF(cmd->chanlist[0]) == setup_channel_queue() 2422 if (CR_AREF(cmd->chanlist[0]) == AREF_COMMON) setup_channel_queue() 2426 (CR_CHAN(cmd->chanlist[cmd->chanlist_len - 1])), setup_channel_queue() 2446 for (i = 0; i < cmd->chanlist_len; i++) { setup_channel_queue() 2449 bits |= adc_chan_bits(CR_CHAN(cmd-> setup_channel_queue() 2453 CR_RANGE(cmd-> setup_channel_queue() 2458 CR_AREF(cmd-> setup_channel_queue() 2461 if (CR_AREF(cmd->chanlist[i]) == AREF_COMMON) setup_channel_queue() 2464 if (i == cmd->chanlist_len - 1) setup_channel_queue() 2484 for (i = 0; i < cmd->chanlist_len; i++) { setup_channel_queue() 2485 unsigned int channel = CR_CHAN(cmd->chanlist[i]); setup_channel_queue() 2486 unsigned int range = CR_RANGE(cmd->chanlist[i]); setup_channel_queue() 2542 struct comedi_cmd *cmd = &async->cmd; ai_cmd() local 2551 retval = setup_channel_queue(dev, cmd); ai_cmd() 2558 set_ai_pacing(dev, cmd); ai_cmd() 2560 setup_sample_counters(dev, cmd); ai_cmd() 2562 enable_ai_interrupts(dev, cmd); ai_cmd() 2570 if (cmd->convert_src == TRIG_EXT) ai_cmd() 2578 if (cmd->chanlist_len == 4) ai_cmd() 2580 else if (cmd->chanlist_len == 2) ai_cmd() 2584 adc_lo_chan_4020_bits(CR_CHAN(cmd->chanlist[0])); ai_cmd() 2587 adc_hi_chan_4020_bits(CR_CHAN(cmd->chanlist ai_cmd() 2588 [cmd->chanlist_len - 1])); ai_cmd() 2597 if ((cmd->flags & CMDF_WAKE_EOS) == 0 || ai_cmd() 2620 if (cmd->start_src == TRIG_EXT && CR_CHAN(cmd->start_arg)) ai_cmd() 2622 if (cmd->stop_src == TRIG_EXT && CR_CHAN(cmd->stop_arg)) ai_cmd() 2631 if (cmd->flags & CMDF_WAKE_EOS) ai_cmd() 2634 if (cmd->start_src == TRIG_EXT) { ai_cmd() 2636 if (cmd->start_arg & CR_INVERT) ai_cmd() 2638 } else if (cmd->start_src == TRIG_NOW) { ai_cmd() 2641 if (use_hw_sample_counter(cmd)) ai_cmd() 2650 if (cmd->start_src == TRIG_NOW) ai_cmd() 2799 struct comedi_cmd *cmd = &async->cmd; handle_ai_interrupt() local 2822 ((cmd->flags & CMDF_WAKE_EOS) && handle_ai_interrupt() 2834 if ((cmd->stop_src == TRIG_COUNT && handle_ai_interrupt() 2835 async->scans_done >= cmd->stop_arg) || handle_ai_interrupt() 2836 (cmd->stop_src == TRIG_EXT && (status & ADC_STOP_BIT))) handle_ai_interrupt() 2914 const struct comedi_cmd *cmd) load_ao_dma_buffer() 2947 static void load_ao_dma(struct comedi_device *dev, const struct comedi_cmd *cmd) load_ao_dma() argument 2966 num_bytes = load_ao_dma_buffer(dev, cmd); load_ao_dma() 2976 struct comedi_cmd *cmd; handle_ao_interrupt() local 2984 cmd = &async->cmd; handle_ao_interrupt() 2999 load_ao_dma(dev, cmd); handle_ao_interrupt() 3009 if ((cmd->stop_src == TRIG_COUNT && handle_ao_interrupt() 3010 async->scans_done >= cmd->stop_arg) || handle_ao_interrupt() 3101 const struct comedi_cmd *cmd) set_dac_control0_reg() 3107 if (cmd->start_src == TRIG_EXT) { set_dac_control0_reg() 3109 if (cmd->start_arg & CR_INVERT) set_dac_control0_reg() 3114 if (cmd->scan_begin_src == TRIG_EXT) { set_dac_control0_reg() 3116 if (cmd->scan_begin_arg & CR_INVERT) set_dac_control0_reg() 3123 const struct comedi_cmd *cmd) set_dac_control1_reg() 3128 for (i = 0; i < cmd->chanlist_len; i++) { set_dac_control1_reg() 3131 channel = CR_CHAN(cmd->chanlist[i]); set_dac_control1_reg() 3132 range = CR_RANGE(cmd->chanlist[i]); set_dac_control1_reg() 3142 const struct comedi_cmd *cmd) set_dac_select_reg() 3148 first_channel = CR_CHAN(cmd->chanlist[0]); set_dac_select_reg() 3149 last_channel = CR_CHAN(cmd->chanlist[cmd->chanlist_len - 1]); set_dac_select_reg() 3165 const struct comedi_cmd *cmd) set_dac_interval_regs() 3170 if (cmd->scan_begin_src != TRIG_TIMER) set_dac_interval_regs() 3173 divisor = get_ao_divisor(cmd->scan_begin_arg, cmd->flags); set_dac_interval_regs() 3184 static int prep_ao_dma(struct comedi_device *dev, const struct comedi_cmd *cmd) prep_ao_dma() argument 3208 if (cmd->stop_src == TRIG_COUNT && prep_ao_dma() 3209 s->async->scans_done >= cmd->stop_arg) prep_ao_dma() 3212 nbytes = load_ao_dma_buffer(dev, cmd); prep_ao_dma() 3215 load_ao_dma(dev, cmd); prep_ao_dma() 3224 struct comedi_cmd *cmd) external_ai_queue_in_use() 3232 else if (use_internal_queue_6xxx(cmd)) external_ai_queue_in_use() 3241 struct comedi_cmd *cmd = &s->async->cmd; ao_inttrig() local 3244 if (trig_num != cmd->start_arg) ao_inttrig() 3247 retval = prep_ao_dma(dev, cmd); ao_inttrig() 3251 set_dac_control0_reg(dev, cmd); ao_inttrig() 3253 if (cmd->start_src == TRIG_INT) ao_inttrig() 3264 struct comedi_cmd *cmd = &s->async->cmd; ao_cmd() local 3266 if (external_ai_queue_in_use(dev, s, cmd)) { ao_cmd() 3275 set_dac_select_reg(dev, cmd); ao_cmd() 3276 set_dac_interval_regs(dev, cmd); ao_cmd() 3280 set_dac_control1_reg(dev, cmd); ao_cmd() 3288 struct comedi_cmd *cmd) cb_pcidas64_ao_check_chanlist() 3290 unsigned int chan0 = CR_CHAN(cmd->chanlist[0]); cb_pcidas64_ao_check_chanlist() 3293 for (i = 1; i < cmd->chanlist_len; i++) { cb_pcidas64_ao_check_chanlist() 3294 unsigned int chan = CR_CHAN(cmd->chanlist[i]); cb_pcidas64_ao_check_chanlist() 3307 struct comedi_cmd *cmd) ao_cmdtest() 3315 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_INT | TRIG_EXT); ao_cmdtest() 3316 err |= comedi_check_trigger_src(&cmd->scan_begin_src, ao_cmdtest() 3318 err |= comedi_check_trigger_src(&cmd->convert_src, TRIG_NOW); ao_cmdtest() 3319 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); ao_cmdtest() 3320 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_NONE); ao_cmdtest() 3327 err |= comedi_check_trigger_is_unique(cmd->start_src); ao_cmdtest() 3328 err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); ao_cmdtest() 3332 if (cmd->convert_src == TRIG_EXT && cmd->scan_begin_src == TRIG_TIMER) ao_cmdtest() 3334 if (cmd->stop_src != TRIG_COUNT && ao_cmdtest() 3335 cmd->stop_src != TRIG_NONE && cmd->stop_src != TRIG_EXT) ao_cmdtest() 3343 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); ao_cmdtest() 3345 if (cmd->scan_begin_src == TRIG_TIMER) { ao_cmdtest() 3346 err |= comedi_check_trigger_arg_min(&cmd->scan_begin_arg, ao_cmdtest() 3348 if (get_ao_divisor(cmd->scan_begin_arg, cmd->flags) > ao_cmdtest() 3350 cmd->scan_begin_arg = (max_counter_value + 2) * ao_cmdtest() 3356 err |= comedi_check_trigger_arg_min(&cmd->chanlist_len, 1); ao_cmdtest() 3357 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, ao_cmdtest() 3358 cmd->chanlist_len); ao_cmdtest() 3365 if (cmd->scan_begin_src == TRIG_TIMER) { ao_cmdtest() 3366 tmp_arg = cmd->scan_begin_arg; ao_cmdtest() 3367 cmd->scan_begin_arg = get_divisor(cmd->scan_begin_arg, ao_cmdtest() 3368 cmd->flags) * TIMER_BASE; ao_cmdtest() 3369 if (tmp_arg != cmd->scan_begin_arg) ao_cmdtest() 3377 if (cmd->chanlist && cmd->chanlist_len > 0) ao_cmdtest() 3378 err |= cb_pcidas64_ao_check_chanlist(dev, s, cmd); ao_cmdtest() 1253 enable_ai_interrupts(struct comedi_device *dev, const struct comedi_cmd *cmd) enable_ai_interrupts() argument 2038 cb_pcidas64_ai_check_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) cb_pcidas64_ai_check_chanlist() argument 2078 ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) ai_cmdtest() argument 2216 setup_sample_counters(struct comedi_device *dev, struct comedi_cmd *cmd) setup_sample_counters() argument 2246 ai_convert_counter_6xxx(const struct comedi_device *dev, const struct comedi_cmd *cmd) ai_convert_counter_6xxx() argument 2253 ai_scan_counter_6xxx(struct comedi_device *dev, struct comedi_cmd *cmd) ai_scan_counter_6xxx() argument 2274 ai_convert_counter_4020(struct comedi_device *dev, struct comedi_cmd *cmd) ai_convert_counter_4020() argument 2297 select_master_clock_4020(struct comedi_device *dev, const struct comedi_cmd *cmd) select_master_clock_4020() argument 2318 select_master_clock(struct comedi_device *dev, const struct comedi_cmd *cmd) select_master_clock() argument 2399 setup_channel_queue(struct comedi_device *dev, const struct comedi_cmd *cmd) setup_channel_queue() argument 2913 load_ao_dma_buffer(struct comedi_device *dev, const struct comedi_cmd *cmd) load_ao_dma_buffer() argument 3100 set_dac_control0_reg(struct comedi_device *dev, const struct comedi_cmd *cmd) set_dac_control0_reg() argument 3122 set_dac_control1_reg(struct comedi_device *dev, const struct comedi_cmd *cmd) set_dac_control1_reg() argument 3141 set_dac_select_reg(struct comedi_device *dev, const struct comedi_cmd *cmd) set_dac_select_reg() argument 3164 set_dac_interval_regs(struct comedi_device *dev, const struct comedi_cmd *cmd) set_dac_interval_regs() argument 3222 external_ai_queue_in_use(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) external_ai_queue_in_use() argument 3286 cb_pcidas64_ao_check_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) cb_pcidas64_ao_check_chanlist() argument 3306 ao_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) ao_cmdtest() argument
|
H A D | das1800.c | 73 irq can be omitted, although the cmd interface will not work without it. 75 analog input cmd triggers supported: 483 struct comedi_cmd *cmd = &s->async->cmd; das1800_handle_fifo_not_empty() local 495 if (cmd->stop_src == TRIG_COUNT && das1800_handle_fifo_not_empty() 496 s->async->scans_done >= cmd->stop_arg) das1800_handle_fifo_not_empty() 592 struct comedi_cmd *cmd = &async->cmd; das1800_ai_handler() local 627 } else if (cmd->stop_src == TRIG_COUNT && das1800_ai_handler() 628 async->scans_done >= cmd->stop_arg) { das1800_ai_handler() 708 struct comedi_cmd *cmd) das1800_ai_check_chanlist() 710 unsigned int unipolar0 = CR_RANGE(cmd->chanlist[0]) & UNIPOLAR; das1800_ai_check_chanlist() 713 for (i = 1; i < cmd->chanlist_len; i++) { das1800_ai_check_chanlist() 714 unsigned int unipolar = CR_RANGE(cmd->chanlist[i]) & UNIPOLAR; das1800_ai_check_chanlist() 726 /* test analog input cmd */ das1800_ai_do_cmdtest() 729 struct comedi_cmd *cmd) das1800_ai_do_cmdtest() 737 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW | TRIG_EXT); das1800_ai_do_cmdtest() 738 err |= comedi_check_trigger_src(&cmd->scan_begin_src, das1800_ai_do_cmdtest() 740 err |= comedi_check_trigger_src(&cmd->convert_src, das1800_ai_do_cmdtest() 742 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); das1800_ai_do_cmdtest() 743 err |= comedi_check_trigger_src(&cmd->stop_src, das1800_ai_do_cmdtest() 751 err |= comedi_check_trigger_is_unique(cmd->start_src); das1800_ai_do_cmdtest() 752 err |= comedi_check_trigger_is_unique(cmd->scan_begin_src); das1800_ai_do_cmdtest() 753 err |= comedi_check_trigger_is_unique(cmd->convert_src); das1800_ai_do_cmdtest() 754 err |= comedi_check_trigger_is_unique(cmd->stop_src); das1800_ai_do_cmdtest() 758 if (cmd->scan_begin_src != TRIG_FOLLOW && das1800_ai_do_cmdtest() 759 cmd->convert_src != TRIG_TIMER) das1800_ai_do_cmdtest() 767 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); das1800_ai_do_cmdtest() 769 if (cmd->convert_src == TRIG_TIMER) { das1800_ai_do_cmdtest() 770 err |= comedi_check_trigger_arg_min(&cmd->convert_arg, das1800_ai_do_cmdtest() 774 err |= comedi_check_trigger_arg_min(&cmd->chanlist_len, 1); das1800_ai_do_cmdtest() 775 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, das1800_ai_do_cmdtest() 776 cmd->chanlist_len); das1800_ai_do_cmdtest() 778 switch (cmd->stop_src) { das1800_ai_do_cmdtest() 780 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); das1800_ai_do_cmdtest() 783 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); das1800_ai_do_cmdtest() 794 if (cmd->scan_begin_src == TRIG_FOLLOW && das1800_ai_do_cmdtest() 795 cmd->convert_src == TRIG_TIMER) { das1800_ai_do_cmdtest() 797 arg = cmd->convert_arg; das1800_ai_do_cmdtest() 798 comedi_8254_cascade_ns_to_timer(dev->pacer, &arg, cmd->flags); das1800_ai_do_cmdtest() 799 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg); das1800_ai_do_cmdtest() 800 } else if (cmd->convert_src == TRIG_TIMER) { das1800_ai_do_cmdtest() 802 arg = burst_convert_arg(cmd->convert_arg, cmd->flags); das1800_ai_do_cmdtest() 803 err |= comedi_check_trigger_arg_is(&cmd->convert_arg, arg); das1800_ai_do_cmdtest() 805 if (cmd->scan_begin_src == TRIG_TIMER) { das1800_ai_do_cmdtest() 806 arg = cmd->convert_arg * cmd->chanlist_len; das1800_ai_do_cmdtest() 807 err |= comedi_check_trigger_arg_max(&cmd-> das1800_ai_do_cmdtest() 811 arg = cmd->scan_begin_arg; das1800_ai_do_cmdtest() 813 cmd->flags); das1800_ai_do_cmdtest() 814 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, das1800_ai_do_cmdtest() 823 if (cmd->chanlist && cmd->chanlist_len > 0) das1800_ai_do_cmdtest() 824 err |= das1800_ai_check_chanlist(dev, s, cmd); das1800_ai_do_cmdtest() 833 static int control_a_bits(const struct comedi_cmd *cmd) control_a_bits() argument 838 if (cmd->stop_src == TRIG_EXT) control_a_bits() 840 switch (cmd->start_src) { control_a_bits() 855 static int control_c_bits(const struct comedi_cmd *cmd) control_c_bits() argument 863 aref = CR_AREF(cmd->chanlist[0]); control_c_bits() 870 if (CR_RANGE(cmd->chanlist[0]) & UNIPOLAR) control_c_bits() 872 switch (cmd->scan_begin_src) { control_c_bits() 874 switch (cmd->convert_src) { control_c_bits() 907 struct comedi_cmd *cmd = &s->async->cmd; das1800_ai_transfer_size() local 914 switch (cmd->scan_begin_src) { das1800_ai_transfer_size() 916 if (cmd->convert_src == TRIG_TIMER) das1800_ai_transfer_size() 917 samples = ns / cmd->convert_arg; das1800_ai_transfer_size() 920 samples = ns / (cmd->scan_begin_arg * cmd->chanlist_len); das1800_ai_transfer_size() 965 const struct comedi_cmd *cmd) program_chanlist() 972 n = cmd->chanlist_len; program_chanlist() 980 CR_CHAN(cmd->chanlist[i]) | program_chanlist() 981 ((CR_RANGE(cmd->chanlist[i]) & range_mask) << program_chanlist() 996 const struct comedi_cmd *cmd = &async->cmd; das1800_ai_do_cmd() local 1000 if (cmd->flags & (CMDF_WAKE_EOS | CMDF_PRIORITY)) das1800_ai_do_cmd() 1005 if (cmd->flags & CMDF_WAKE_EOS) { das1800_ai_do_cmd() 1016 control_a = control_a_bits(cmd); das1800_ai_do_cmd() 1017 control_c = control_c_bits(cmd); das1800_ai_do_cmd() 1020 program_chanlist(dev, cmd); das1800_ai_do_cmd() 1023 if ((cmd->scan_begin_src == TRIG_FOLLOW || das1800_ai_do_cmd() 1024 cmd->scan_begin_src == TRIG_TIMER) && das1800_ai_do_cmd() 1025 cmd->convert_src == TRIG_TIMER) { das1800_ai_do_cmd() 1031 if (cmd->stop_src == TRIG_EXT) das1800_ai_do_cmd() 1039 outb(cmd->convert_arg / 1000 - 1, das1800_ai_do_cmd() 1041 outb(cmd->chanlist_len - 1, dev->iobase + DAS1800_BURST_LENGTH); das1800_ai_do_cmd() 706 das1800_ai_check_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) das1800_ai_check_chanlist() argument 727 das1800_ai_do_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) das1800_ai_do_cmdtest() argument 964 program_chanlist(struct comedi_device *dev, const struct comedi_cmd *cmd) program_chanlist() argument
|
H A D | ni_at_a2150.c | 160 struct comedi_cmd *cmd = &async->cmd; a2150_interrupt() local 195 if (devpriv->count < num_points && cmd->stop_src == TRIG_COUNT) a2150_interrupt() 200 if (cmd->stop_src == TRIG_NONE) { a2150_interrupt() 220 if (cmd->stop_src == TRIG_COUNT) { a2150_interrupt() 373 struct comedi_cmd *cmd) a2150_ai_check_chanlist() 375 unsigned int chan0 = CR_CHAN(cmd->chanlist[0]); a2150_ai_check_chanlist() 376 unsigned int aref0 = CR_AREF(cmd->chanlist[0]); a2150_ai_check_chanlist() 379 if (cmd->chanlist_len == 2 && (chan0 == 1 || chan0 == 3)) { a2150_ai_check_chanlist() 385 if (cmd->chanlist_len == 3) { a2150_ai_check_chanlist() 391 for (i = 1; i < cmd->chanlist_len; i++) { a2150_ai_check_chanlist() 392 unsigned int chan = CR_CHAN(cmd->chanlist[i]); a2150_ai_check_chanlist() 393 unsigned int aref = CR_AREF(cmd->chanlist[i]); a2150_ai_check_chanlist() 414 struct comedi_subdevice *s, struct comedi_cmd *cmd) a2150_ai_cmdtest() 422 err |= comedi_check_trigger_src(&cmd->start_src, TRIG_NOW | TRIG_EXT); a2150_ai_cmdtest() 423 err |= comedi_check_trigger_src(&cmd->scan_begin_src, TRIG_TIMER); a2150_ai_cmdtest() 424 err |= comedi_check_trigger_src(&cmd->convert_src, TRIG_NOW); a2150_ai_cmdtest() 425 err |= comedi_check_trigger_src(&cmd->scan_end_src, TRIG_COUNT); a2150_ai_cmdtest() 426 err |= comedi_check_trigger_src(&cmd->stop_src, TRIG_COUNT | TRIG_NONE); a2150_ai_cmdtest() 433 err |= comedi_check_trigger_is_unique(cmd->start_src); a2150_ai_cmdtest() 434 err |= comedi_check_trigger_is_unique(cmd->stop_src); a2150_ai_cmdtest() 443 err |= comedi_check_trigger_arg_is(&cmd->start_arg, 0); a2150_ai_cmdtest() 445 if (cmd->convert_src == TRIG_TIMER) { a2150_ai_cmdtest() 446 err |= comedi_check_trigger_arg_min(&cmd->convert_arg, a2150_ai_cmdtest() 450 err |= comedi_check_trigger_arg_min(&cmd->chanlist_len, 1); a2150_ai_cmdtest() 451 err |= comedi_check_trigger_arg_is(&cmd->scan_end_arg, a2150_ai_cmdtest() 452 cmd->chanlist_len); a2150_ai_cmdtest() 454 if (cmd->stop_src == TRIG_COUNT) a2150_ai_cmdtest() 455 err |= comedi_check_trigger_arg_min(&cmd->stop_arg, 1); a2150_ai_cmdtest() 457 err |= comedi_check_trigger_arg_is(&cmd->stop_arg, 0); a2150_ai_cmdtest() 464 if (cmd->scan_begin_src == TRIG_TIMER) { a2150_ai_cmdtest() 465 arg = cmd->scan_begin_arg; a2150_ai_cmdtest() 466 a2150_get_timing(dev, &arg, cmd->flags); a2150_ai_cmdtest() 467 err |= comedi_check_trigger_arg_is(&cmd->scan_begin_arg, arg); a2150_ai_cmdtest() 474 if (cmd->chanlist && cmd->chanlist_len > 0) a2150_ai_cmdtest() 475 err |= a2150_ai_check_chanlist(dev, s, cmd); a2150_ai_cmdtest() 489 struct comedi_cmd *cmd = &async->cmd; a2150_ai_cmd() local 493 if (cmd->flags & CMDF_PRIORITY) { a2150_ai_cmd() 502 if (a2150_set_chanlist(dev, CR_CHAN(cmd->chanlist[0]), a2150_ai_cmd() 503 cmd->chanlist_len) < 0) a2150_ai_cmd() 507 if (CR_AREF(cmd->chanlist[0]) == AREF_OTHER) a2150_ai_cmd() 511 if (CR_AREF(cmd->chanlist[2]) == AREF_OTHER) a2150_ai_cmd() 517 a2150_get_timing(dev, &cmd->scan_begin_arg, cmd->flags); a2150_ai_cmd() 523 devpriv->count = cmd->stop_arg * cmd->chanlist_len; a2150_ai_cmd() 529 desc->size = comedi_bytes_per_sample(s) * cmd->chanlist_len * a2150_ai_cmd() 530 ONE_THIRD_SECOND / cmd->scan_begin_arg; a2150_ai_cmd() 553 if (cmd->start_src == TRIG_NOW && a2150_ai_cmd() 563 if (cmd->start_src == TRIG_EXT) { a2150_ai_cmd() 565 } else if (cmd->start_src == TRIG_OTHER) { a2150_ai_cmd() 573 if (cmd->start_src == TRIG_NOW) a2150_ai_cmd() 371 a2150_ai_check_chanlist(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) a2150_ai_check_chanlist() argument 413 a2150_ai_cmdtest(struct comedi_device *dev, struct comedi_subdevice *s, struct comedi_cmd *cmd) a2150_ai_cmdtest() argument
|
/linux-4.1.27/drivers/media/pci/ivtv/ |
H A D | ivtv-mailbox.c | 37 #define API_RESULT (1 << 1) /* Allow 1 second for this cmd to end */ 38 #define API_FAST_RESULT (3 << 1) /* Allow 0.1 second for this cmd to end */ 189 static void write_mailbox(volatile struct ivtv_mailbox __iomem *mbox, int cmd, int args, u32 data[]) write_mailbox() argument 193 write_sync(cmd, &mbox->cmd); write_mailbox() 207 IVTV_DEBUG_WARN("Clearing mailbox %d: cmd 0x%08x flags 0x%08x\n", clear_all_mailboxes() 208 i, readl(&mbdata->mbox[i].cmd), readl(&mbdata->mbox[i].flags)); clear_all_mailboxes() 214 static int ivtv_api_call(struct ivtv *itv, int cmd, int args, u32 data[]) ivtv_api_call() argument 216 struct ivtv_mailbox_data *mbdata = (cmd >= 128) ? &itv->enc_mbox : &itv->dec_mbox; ivtv_api_call() 228 cmd < 0 || cmd > 255 || api_info[cmd].name == NULL) { ivtv_api_call() 229 IVTV_ERR("Invalid MB call: cmd = 0x%02x, args = %d\n", cmd, args); ivtv_api_call() 233 if (api_info[cmd].flags & API_HIGH_VOL) { ivtv_api_call() 234 IVTV_DEBUG_HI_MB("MB Call: %s\n", api_info[cmd].name); ivtv_api_call() 237 IVTV_DEBUG_MB("MB Call: %s\n", api_info[cmd].name); ivtv_api_call() 247 if (itv->api_cache[cmd].last_jiffies && ivtv_api_call() 249 itv->api_cache[cmd].last_jiffies + ivtv_api_call() 251 !memcmp(data, itv->api_cache[cmd].data, sizeof(itv->api_cache[cmd].data))) { ivtv_api_call() 252 itv->api_cache[cmd].last_jiffies = jiffies; ivtv_api_call() 256 flags = api_info[cmd].flags; ivtv_api_call() 262 write_mailbox(&mbdata->mbox[mb], cmd, args, data); ivtv_api_call() 267 api_info[cmd].name, mb, readl(&mbdata->mbox[mb].flags)); ivtv_api_call() 269 IVTV_WARN("Could not find free DMA mailbox for %s\n", api_info[cmd].name); ivtv_api_call() 279 IVTV_DEBUG_WARN("No free mailbox found (%s)\n", api_info[cmd].name); ivtv_api_call() 284 write_mailbox(mbox, cmd, args, data); ivtv_api_call() 286 memcpy(itv->api_cache[cmd].data, data, sizeof(itv->api_cache[cmd].data)); ivtv_api_call() 287 itv->api_cache[cmd].last_jiffies = jiffies; ivtv_api_call() 306 IVTV_DEBUG_WARN("Could not get result (%s)\n", api_info[cmd].name); ivtv_api_call() 319 api_info[cmd].name, ivtv_api_call() 329 int ivtv_api(struct ivtv *itv, int cmd, int args, u32 data[]) ivtv_api() argument 331 int res = ivtv_api_call(itv, cmd, args, data); ivtv_api() 336 return (res == -EBUSY) ? ivtv_api_call(itv, cmd, args, data) : res; ivtv_api() 339 int ivtv_api_func(void *priv, u32 cmd, int in, int out, u32 data[CX2341X_MBOX_MAX_DATA]) ivtv_api_func() argument 341 return ivtv_api(priv, cmd, in, data); ivtv_api_func() 344 int ivtv_vapi_result(struct ivtv *itv, u32 data[CX2341X_MBOX_MAX_DATA], int cmd, int args, ...) ivtv_vapi_result() argument 354 return ivtv_api(itv, cmd, args, data); ivtv_vapi_result() 357 int ivtv_vapi(struct ivtv *itv, int cmd, int args, ...) ivtv_vapi() argument 368 return ivtv_api(itv, cmd, args, data); ivtv_vapi()
|
/linux-4.1.27/net/nfc/ |
H A D | digital_core.c | 117 struct digital_cmd *cmd; digital_wq_cmd_complete() local 124 cmd = list_first_entry_or_null(&ddev->cmd_queue, struct digital_cmd, digital_wq_cmd_complete() 126 if (!cmd) { digital_wq_cmd_complete() 131 list_del(&cmd->queue); digital_wq_cmd_complete() 135 if (!IS_ERR(cmd->resp)) digital_wq_cmd_complete() 137 cmd->resp->data, cmd->resp->len, false); digital_wq_cmd_complete() 139 cmd->cmd_cb(ddev, cmd->cb_context, cmd->resp); digital_wq_cmd_complete() 141 kfree(cmd->mdaa_params); digital_wq_cmd_complete() 142 kfree(cmd); digital_wq_cmd_complete() 150 struct digital_cmd *cmd = arg; digital_send_cmd_complete() local 152 cmd->resp = resp; digital_send_cmd_complete() 160 struct digital_cmd *cmd; digital_wq_cmd() local 168 cmd = list_first_entry_or_null(&ddev->cmd_queue, struct digital_cmd, digital_wq_cmd() 170 if (!cmd || cmd->pending) { digital_wq_cmd() 177 if (cmd->req) digital_wq_cmd() 179 cmd->req->data, cmd->req->len, false); digital_wq_cmd() 181 switch (cmd->type) { digital_wq_cmd() 183 rc = ddev->ops->in_send_cmd(ddev, cmd->req, cmd->timeout, digital_wq_cmd() 184 digital_send_cmd_complete, cmd); digital_wq_cmd() 188 rc = ddev->ops->tg_send_cmd(ddev, cmd->req, cmd->timeout, digital_wq_cmd() 189 digital_send_cmd_complete, cmd); digital_wq_cmd() 193 rc = ddev->ops->tg_listen(ddev, cmd->timeout, digital_wq_cmd() 194 digital_send_cmd_complete, cmd); digital_wq_cmd() 198 params = cmd->mdaa_params; digital_wq_cmd() 200 rc = ddev->ops->tg_listen_mdaa(ddev, params, cmd->timeout, digital_wq_cmd() 201 digital_send_cmd_complete, cmd); digital_wq_cmd() 205 rc = ddev->ops->tg_listen_md(ddev, cmd->timeout, digital_wq_cmd() 206 digital_send_cmd_complete, cmd); digital_wq_cmd() 210 pr_err("Unknown cmd type %d\n", cmd->type); digital_wq_cmd() 220 list_del(&cmd->queue); digital_wq_cmd() 223 kfree_skb(cmd->req); digital_wq_cmd() 224 kfree(cmd->mdaa_params); digital_wq_cmd() 225 kfree(cmd); digital_wq_cmd() 235 struct digital_cmd *cmd; digital_send_cmd() local 237 cmd = kzalloc(sizeof(struct digital_cmd), GFP_KERNEL); digital_send_cmd() 238 if (!cmd) digital_send_cmd() 241 cmd->type = cmd_type; digital_send_cmd() 242 cmd->timeout = timeout; digital_send_cmd() 243 cmd->req = skb; digital_send_cmd() 244 cmd->mdaa_params = params; digital_send_cmd() 245 cmd->cmd_cb = cmd_cb; digital_send_cmd() 246 cmd->cb_context = cb_context; digital_send_cmd() 247 INIT_LIST_HEAD(&cmd->queue); digital_send_cmd() 250 list_add_tail(&cmd->queue, &ddev->cmd_queue); digital_send_cmd() 825 struct digital_cmd *cmd, *n; nfc_digital_unregister_device() local 837 list_for_each_entry_safe(cmd, n, &ddev->cmd_queue, queue) { nfc_digital_unregister_device() 838 list_del(&cmd->queue); nfc_digital_unregister_device() 839 kfree(cmd->mdaa_params); nfc_digital_unregister_device() 840 kfree(cmd); nfc_digital_unregister_device()
|
/linux-4.1.27/drivers/crypto/vmx/ |
H A D | Makefile | 14 $(call cmd,perl) 17 $(call cmd,perl)
|
/linux-4.1.27/drivers/xen/ |
H A D | fallback.c | 8 int xen_event_channel_op_compat(int cmd, void *arg) xen_event_channel_op_compat() argument 13 op.cmd = cmd; xen_event_channel_op_compat() 17 switch (cmd) { xen_event_channel_op_compat() 47 int xen_physdev_op_compat(int cmd, void *arg) xen_physdev_op_compat() argument 52 op.cmd = cmd; xen_physdev_op_compat() 56 switch (cmd) { xen_physdev_op_compat()
|
/linux-4.1.27/drivers/video/fbdev/savage/ |
H A D | savagefb_accel.c | 36 int cmd; savagefb_copyarea() local 41 cmd = BCI_CMD_RECT | BCI_CMD_DEST_GBD | BCI_CMD_SRC_GBD; savagefb_copyarea() 42 BCI_CMD_SET_ROP(cmd, savagefb_rop[0]); savagefb_copyarea() 45 cmd |= BCI_CMD_RECT_XP; savagefb_copyarea() 52 cmd |= BCI_CMD_RECT_YP; savagefb_copyarea() 59 BCI_SEND(cmd); savagefb_copyarea() 68 int cmd, color; savagefb_fillrect() local 78 cmd = BCI_CMD_RECT | BCI_CMD_RECT_XP | BCI_CMD_RECT_YP | savagefb_fillrect() 83 BCI_CMD_SET_ROP(cmd, savagefb_rop[rect->rop]); savagefb_fillrect() 86 BCI_SEND(cmd); savagefb_fillrect() 96 int cmd; savagefb_imageblit() local 115 cmd = BCI_CMD_RECT | BCI_CMD_RECT_XP | BCI_CMD_RECT_YP | savagefb_imageblit() 120 BCI_CMD_SET_ROP(cmd, savagefb_rop[0]); savagefb_imageblit() 127 BCI_SEND(cmd); savagefb_imageblit()
|
/linux-4.1.27/arch/powerpc/kernel/ |
H A D | smp-tbsync.c | 26 volatile int cmd; member in struct:__anon2361 46 int cmd; smp_generic_take_timebase() local 61 cmd = tbsync->cmd; smp_generic_take_timebase() 65 if (cmd == kExit) smp_generic_take_timebase() 70 if (cmd == kSetAndTest) smp_generic_take_timebase() 77 static int start_contest(int cmd, long offset, int num) start_contest() argument 83 tbsync->cmd = cmd; start_contest() 161 tbsync->cmd = kExit; smp_generic_give_timebase()
|
/linux-4.1.27/drivers/block/ |
H A D | null_blk.c | 171 static void free_cmd(struct nullb_cmd *cmd) free_cmd() argument 173 put_tag(cmd->nq, cmd->tag); free_cmd() 178 struct nullb_cmd *cmd; __alloc_cmd() local 183 cmd = &nq->cmds[tag]; __alloc_cmd() 184 cmd->tag = tag; __alloc_cmd() 185 cmd->nq = nq; __alloc_cmd() 186 return cmd; __alloc_cmd() 194 struct nullb_cmd *cmd; alloc_cmd() local 197 cmd = __alloc_cmd(nq); alloc_cmd() 198 if (cmd || !can_wait) alloc_cmd() 199 return cmd; alloc_cmd() 203 cmd = __alloc_cmd(nq); alloc_cmd() 204 if (cmd) alloc_cmd() 211 return cmd; alloc_cmd() 214 static void end_cmd(struct nullb_cmd *cmd) end_cmd() argument 218 blk_mq_end_request(cmd->rq, 0); end_cmd() 221 INIT_LIST_HEAD(&cmd->rq->queuelist); end_cmd() 222 blk_end_request_all(cmd->rq, 0); end_cmd() 225 bio_endio(cmd->bio, 0); end_cmd() 229 free_cmd(cmd); end_cmd() 236 struct nullb_cmd *cmd; null_cmd_timer_expired() local 243 cmd = container_of(entry, struct nullb_cmd, ll_list); null_cmd_timer_expired() 245 end_cmd(cmd); null_cmd_timer_expired() 252 static void null_cmd_end_timer(struct nullb_cmd *cmd) null_cmd_end_timer() argument 256 cmd->ll_list.next = NULL; null_cmd_end_timer() 257 if (llist_add(&cmd->ll_list, &cq->list)) { null_cmd_end_timer() 274 static inline void null_handle_cmd(struct nullb_cmd *cmd) null_handle_cmd() argument 281 blk_mq_complete_request(cmd->rq); null_handle_cmd() 284 blk_complete_request(cmd->rq); null_handle_cmd() 290 end_cmd(cmd); null_handle_cmd() 295 end_cmd(cmd); null_handle_cmd() 298 null_cmd_end_timer(cmd); null_handle_cmd() 317 struct nullb_cmd *cmd; null_queue_bio() local 319 cmd = alloc_cmd(nq, 1); null_queue_bio() 320 cmd->bio = bio; null_queue_bio() 322 null_handle_cmd(cmd); null_queue_bio() 329 struct nullb_cmd *cmd; null_rq_prep_fn() local 331 cmd = alloc_cmd(nq, 0); null_rq_prep_fn() 332 if (cmd) { null_rq_prep_fn() 333 cmd->rq = req; null_rq_prep_fn() 334 req->special = cmd; null_rq_prep_fn() 346 struct nullb_cmd *cmd = rq->special; null_request_fn() local 349 null_handle_cmd(cmd); null_request_fn() 357 struct nullb_cmd *cmd = blk_mq_rq_to_pdu(bd->rq); null_queue_rq() local 359 cmd->rq = bd->rq; null_queue_rq() 360 cmd->nq = hctx->driver_data; null_queue_rq() 364 null_handle_cmd(cmd); null_queue_rq() 426 struct nullb_cmd *cmd; setup_commands() local 429 nq->cmds = kzalloc(nq->queue_depth * sizeof(*cmd), GFP_KERNEL); setup_commands() 441 cmd = &nq->cmds[i]; setup_commands() 442 INIT_LIST_HEAD(&cmd->list); setup_commands() 443 cmd->ll_list.next = NULL; setup_commands() 444 cmd->tag = -1U; setup_commands()
|
/linux-4.1.27/arch/cris/arch-v10/kernel/ |
H A D | dma.c | 231 *R_DMA_CH0_CMD = IO_STATE(R_DMA_CH0_CMD, cmd, reset); cris_free_dma() 232 while (IO_EXTRACT(R_DMA_CH0_CMD, cmd, *R_DMA_CH0_CMD) == cris_free_dma() 233 IO_STATE_VALUE(R_DMA_CH0_CMD, cmd, reset)); cris_free_dma() 236 *R_DMA_CH1_CMD = IO_STATE(R_DMA_CH1_CMD, cmd, reset); cris_free_dma() 237 while (IO_EXTRACT(R_DMA_CH1_CMD, cmd, *R_DMA_CH1_CMD) == cris_free_dma() 238 IO_STATE_VALUE(R_DMA_CH1_CMD, cmd, reset)); cris_free_dma() 241 *R_DMA_CH2_CMD = IO_STATE(R_DMA_CH2_CMD, cmd, reset); cris_free_dma() 242 while (IO_EXTRACT(R_DMA_CH2_CMD, cmd, *R_DMA_CH2_CMD) == cris_free_dma() 243 IO_STATE_VALUE(R_DMA_CH2_CMD, cmd, reset)); cris_free_dma() 246 *R_DMA_CH3_CMD = IO_STATE(R_DMA_CH3_CMD, cmd, reset); cris_free_dma() 247 while (IO_EXTRACT(R_DMA_CH3_CMD, cmd, *R_DMA_CH3_CMD) == cris_free_dma() 248 IO_STATE_VALUE(R_DMA_CH3_CMD, cmd, reset)); cris_free_dma() 251 *R_DMA_CH4_CMD = IO_STATE(R_DMA_CH4_CMD, cmd, reset); cris_free_dma() 252 while (IO_EXTRACT(R_DMA_CH4_CMD, cmd, *R_DMA_CH4_CMD) == cris_free_dma() 253 IO_STATE_VALUE(R_DMA_CH4_CMD, cmd, reset)); cris_free_dma() 256 *R_DMA_CH5_CMD = IO_STATE(R_DMA_CH5_CMD, cmd, reset); cris_free_dma() 257 while (IO_EXTRACT(R_DMA_CH5_CMD, cmd, *R_DMA_CH5_CMD) == cris_free_dma() 258 IO_STATE_VALUE(R_DMA_CH5_CMD, cmd, reset)); cris_free_dma() 261 *R_DMA_CH6_CMD = IO_STATE(R_DMA_CH6_CMD, cmd, reset); cris_free_dma() 262 while (IO_EXTRACT(R_DMA_CH6_CMD, cmd, *R_DMA_CH6_CMD) == cris_free_dma() 263 IO_STATE_VALUE(R_DMA_CH6_CMD, cmd, reset)); cris_free_dma() 266 *R_DMA_CH7_CMD = IO_STATE(R_DMA_CH7_CMD, cmd, reset); cris_free_dma() 267 while (IO_EXTRACT(R_DMA_CH7_CMD, cmd, *R_DMA_CH7_CMD) == cris_free_dma() 268 IO_STATE_VALUE(R_DMA_CH7_CMD, cmd, reset)); cris_free_dma() 271 *R_DMA_CH8_CMD = IO_STATE(R_DMA_CH8_CMD, cmd, reset); cris_free_dma() 272 while (IO_EXTRACT(R_DMA_CH8_CMD, cmd, *R_DMA_CH8_CMD) == cris_free_dma() 273 IO_STATE_VALUE(R_DMA_CH8_CMD, cmd, reset)); cris_free_dma() 276 *R_DMA_CH9_CMD = IO_STATE(R_DMA_CH9_CMD, cmd, reset); cris_free_dma() 277 while (IO_EXTRACT(R_DMA_CH9_CMD, cmd, *R_DMA_CH9_CMD) == cris_free_dma() 278 IO_STATE_VALUE(R_DMA_CH9_CMD, cmd, reset)); cris_free_dma()
|
/linux-4.1.27/drivers/crypto/ccp/ |
H A D | ccp-dev.c | 37 struct ccp_cmd *cmd; member in struct:ccp_tasklet_data 73 * @cmd: ccp_cmd struct to be processed 75 * Queue a cmd to be processed by the CCP. If queueing the cmd 76 * would exceed the defined length of the cmd queue the cmd will 81 * called to notify the caller of completion (if the cmd was not 82 * backlogged) or advancement out of the backlog. If the cmd has 87 * The cmd has been successfully queued if: 91 int ccp_enqueue_cmd(struct ccp_cmd *cmd) ccp_enqueue_cmd() argument 102 if (!cmd->callback) ccp_enqueue_cmd() 105 cmd->ccp = ccp; ccp_enqueue_cmd() 113 if (cmd->flags & CCP_CMD_MAY_BACKLOG) ccp_enqueue_cmd() 114 list_add_tail(&cmd->entry, &ccp->backlog); ccp_enqueue_cmd() 118 list_add_tail(&cmd->entry, &ccp->cmd); ccp_enqueue_cmd() 143 struct ccp_cmd *cmd = container_of(work, struct ccp_cmd, work); ccp_do_cmd_backlog() local 144 struct ccp_device *ccp = cmd->ccp; ccp_do_cmd_backlog() 148 cmd->callback(cmd->data, -EINPROGRESS); ccp_do_cmd_backlog() 153 list_add_tail(&cmd->entry, &ccp->cmd); ccp_do_cmd_backlog() 173 struct ccp_cmd *cmd = NULL; ccp_dequeue_cmd() local 193 cmd = list_first_entry(&ccp->cmd, struct ccp_cmd, entry); ccp_dequeue_cmd() 194 list_del(&cmd->entry); ccp_dequeue_cmd() 212 return cmd; ccp_dequeue_cmd() 218 struct ccp_cmd *cmd = tdata->cmd; ccp_do_cmd_complete() local 220 cmd->callback(cmd->data, cmd->ret); ccp_do_cmd_complete() 227 struct ccp_cmd *cmd; ccp_cmd_queue_thread() local 239 cmd = ccp_dequeue_cmd(cmd_q); ccp_cmd_queue_thread() 240 if (!cmd) ccp_cmd_queue_thread() 246 cmd->ret = ccp_run_cmd(cmd_q, cmd); ccp_cmd_queue_thread() 249 tdata.cmd = cmd; ccp_cmd_queue_thread() 303 INIT_LIST_HEAD(&ccp->cmd); ccp_alloc_struct() 470 struct ccp_cmd *cmd; ccp_destroy() local 506 /* Flush the cmd and backlog queue */ ccp_destroy() 507 while (!list_empty(&ccp->cmd)) { ccp_destroy() 509 cmd = list_first_entry(&ccp->cmd, struct ccp_cmd, entry); ccp_destroy() 510 list_del(&cmd->entry); ccp_destroy() 511 cmd->callback(cmd->data, -ENODEV); ccp_destroy() 515 cmd = list_first_entry(&ccp->backlog, struct ccp_cmd, entry); ccp_destroy() 516 list_del(&cmd->entry); ccp_destroy() 517 cmd->callback(cmd->data, -ENODEV); ccp_destroy()
|
H A D | ccp-crypto-main.c | 42 * than one cmd at a time. Therefore we must maintain a cmd list to insure 59 struct ccp_cmd *cmd; member in struct:ccp_crypto_cmd 98 /* Held cmds will be after the current cmd in the queue so start ccp_crypto_cmd_complete() 99 * searching for a cmd with a matching tfm for submission. ccp_crypto_cmd_complete() 110 * Because cmds can be executed from any point in the cmd list ccp_crypto_cmd_complete() 114 /* Skip over this cmd if it is the next backlog cmd */ ccp_crypto_cmd_complete() 122 /* Skip over this cmd if it is now the next backlog cmd */ ccp_crypto_cmd_complete() 127 /* Remove the cmd entry from the list of cmds */ ccp_crypto_cmd_complete() 155 * the completion callbacks and retrieve the next cmd (cmd with ccp_crypto_complete() 174 /* Submit the next cmd */ ccp_crypto_complete() 176 /* Since we have already queued the cmd, we must indicate that ccp_crypto_complete() 179 held->cmd->flags |= CCP_CMD_MAY_BACKLOG; ccp_crypto_complete() 180 ret = ccp_enqueue_cmd(held->cmd); ccp_crypto_complete() 212 /* Check if the cmd can/should be queued */ ccp_crypto_enqueue_cmd() 215 if (!(crypto_cmd->cmd->flags & CCP_CMD_MAY_BACKLOG)) ccp_crypto_enqueue_cmd() 219 /* Look for an entry with the same tfm. If there is a cmd ccp_crypto_enqueue_cmd() 220 * with the same tfm in the list then the current cmd cannot ccp_crypto_enqueue_cmd() 232 ret = ccp_enqueue_cmd(crypto_cmd->cmd); ccp_crypto_enqueue_cmd() 236 !(crypto_cmd->cmd->flags & CCP_CMD_MAY_BACKLOG)) ccp_crypto_enqueue_cmd() 266 * @cmd: ccp_cmd struct to be sent to the CCP 269 struct ccp_cmd *cmd) ccp_crypto_enqueue_request() 285 crypto_cmd->cmd = cmd; ccp_crypto_enqueue_request() 289 cmd->callback = ccp_crypto_complete; ccp_crypto_enqueue_request() 290 cmd->data = crypto_cmd; ccp_crypto_enqueue_request() 293 cmd->flags |= CCP_CMD_MAY_BACKLOG; ccp_crypto_enqueue_request() 295 cmd->flags &= ~CCP_CMD_MAY_BACKLOG; ccp_crypto_enqueue_request() 268 ccp_crypto_enqueue_request(struct crypto_async_request *req, struct ccp_cmd *cmd) ccp_crypto_enqueue_request() argument
|
/linux-4.1.27/drivers/gpu/drm/udl/ |
H A D | udl_transfer.c | 115 * the rlx command simply assumes alternating raw and rl spans within one cmd. 131 uint8_t *cmd = *command_buffer_ptr; udl_compress_hline16() local 134 (cmd_buffer_end - MIN_RLX_CMD_BYTES > cmd)) { udl_compress_hline16() 141 prefetchw((void *) cmd); /* pull in one cache line at least */ udl_compress_hline16() 143 *cmd++ = 0xaf; udl_compress_hline16() 144 *cmd++ = 0x6b; udl_compress_hline16() 145 *cmd++ = (uint8_t) ((dev_addr >> 16) & 0xFF); udl_compress_hline16() 146 *cmd++ = (uint8_t) ((dev_addr >> 8) & 0xFF); udl_compress_hline16() 147 *cmd++ = (uint8_t) ((dev_addr) & 0xFF); udl_compress_hline16() 149 cmd_pixels_count_byte = cmd++; /* we'll know this later */ udl_compress_hline16() 152 raw_pixels_count_byte = cmd++; /* we'll know this later */ udl_compress_hline16() 157 (int)(cmd_buffer_end - cmd) / 2))) * bpp; udl_compress_hline16() 166 *(uint16_t *)cmd = cpu_to_be16(pixel_val16); udl_compress_hline16() 168 cmd += 2; udl_compress_hline16() 184 *cmd++ = (((pixel - start) / bpp) - 1) & 0xFF; udl_compress_hline16() 188 raw_pixels_count_byte = cmd++; udl_compress_hline16() 201 if (cmd_buffer_end <= MIN_RLX_CMD_BYTES + cmd) { udl_compress_hline16() 203 if (cmd_buffer_end > cmd) udl_compress_hline16() 204 memset(cmd, 0xAF, cmd_buffer_end - cmd); udl_compress_hline16() 205 cmd = (uint8_t *) cmd_buffer_end; udl_compress_hline16() 208 *command_buffer_ptr = cmd; udl_compress_hline16() 230 u8 *cmd = *urb_buf_ptr; udl_render_hline() local 243 (u8 **) &cmd, (u8 *) cmd_end, bpp); udl_render_hline() 245 if (cmd >= cmd_end) { udl_render_hline() 246 int len = cmd - (u8 *) urb->transfer_buffer; udl_render_hline() 254 cmd = urb->transfer_buffer; udl_render_hline() 255 cmd_end = &cmd[urb->transfer_buffer_length]; udl_render_hline() 259 *urb_buf_ptr = cmd; udl_render_hline()
|
/linux-4.1.27/drivers/w1/ |
H A D | w1_netlink.c | 47 struct w1_netlink_cmd *cmd; /* advances as cmds are appened */ member in struct:w1_cb_block 109 block->cmd = NULL; w1_reply_make_space() 148 /* Append cmd to msg, include cmd->data as well. This is because 153 struct w1_netlink_cmd *cmd) w1_netlink_queue_cmd() 157 sizeof(struct w1_netlink_msg) + sizeof(*cmd) + cmd->len); w1_netlink_queue_cmd() 160 * in trying to bundle this cmd after an existing one, because w1_netlink_queue_cmd() 167 block->cmd = (struct w1_netlink_cmd *)(block->msg->data); w1_netlink_queue_cmd() 169 space = sizeof(*cmd) + cmd->len; w1_netlink_queue_cmd() 170 if (block->cmd != cmd) w1_netlink_queue_cmd() 171 memcpy(block->cmd, cmd, space); w1_netlink_queue_cmd() 192 struct w1_netlink_cmd *cmd = (struct w1_netlink_cmd *)block->msg->data; w1_netlink_queue_status() local 193 memcpy(cmd, req_cmd, sizeof(*cmd)); w1_netlink_queue_status() 194 block->cn->len += sizeof(*cmd); w1_netlink_queue_status() 195 block->msg->len += sizeof(*cmd); w1_netlink_queue_status() 196 cmd->len = 0; w1_netlink_queue_status() 256 struct w1_netlink_cmd *cache_cmd = block->cmd; w1_send_slave() 261 /* Add cmd back if the packet was sent */ w1_send_slave() 262 if (!block->cmd) { w1_send_slave() 267 data = (u64 *)(block->cmd->data + block->cmd->len); w1_send_slave() 272 block->cmd->len += sizeof(*data); w1_send_slave() 291 if (req_cmd->cmd == W1_CMD_LIST_SLAVES) { w1_get_slaves() 300 w1_search_process_cb(dev, req_cmd->cmd == W1_CMD_ALARM_SEARCH ? w1_get_slaves() 308 struct w1_netlink_cmd *cmd) w1_process_command_io() 312 switch (cmd->cmd) { w1_process_command_io() 314 w1_touch_block(dev, cmd->data, cmd->len); w1_process_command_io() 315 w1_netlink_queue_cmd(dev->priv, cmd); w1_process_command_io() 318 w1_read_block(dev, cmd->data, cmd->len); w1_process_command_io() 319 w1_netlink_queue_cmd(dev->priv, cmd); w1_process_command_io() 322 w1_write_block(dev, cmd->data, cmd->len); w1_process_command_io() 333 struct w1_netlink_cmd *cmd) w1_process_command_addremove() 339 if (cmd->len != sizeof(*id)) w1_process_command_addremove() 342 id = (struct w1_reg_num *)cmd->data; w1_process_command_addremove() 345 switch (cmd->cmd) { w1_process_command_addremove() 374 switch (req_cmd->cmd) { w1_process_command_master() 407 struct w1_netlink_cmd *cmd) w1_process_command_slave() 409 dev_dbg(&sl->master->dev, "%s: %02x.%012llx.%02x: cmd=%02x, len=%u.\n", w1_process_command_slave() 411 sl->reg_num.crc, cmd->cmd, cmd->len); w1_process_command_slave() 413 return w1_process_command_io(sl->master, cmd); w1_process_command_slave() 469 struct w1_netlink_cmd *cmd = (struct w1_netlink_cmd *)node->msg->data; w1_process_cb() local 478 if (cmd->len + sizeof(struct w1_netlink_cmd) > mlen) { w1_process_cb() 484 err = w1_process_command_slave(sl, cmd); w1_process_cb() 486 err = w1_process_command_master(dev, cmd); w1_process_cb() 489 w1_netlink_queue_status(node->block, node->msg, cmd, err); w1_process_cb() 492 len = sizeof(*cmd) + cmd->len; w1_process_cb() 493 cmd = (struct w1_netlink_cmd *)((u8 *)cmd + len); w1_process_cb() 497 if (!cmd || err) w1_process_cb() 498 w1_netlink_queue_status(node->block, node->msg, cmd, err); w1_process_cb() 520 struct w1_netlink_cmd *cmd = (struct w1_netlink_cmd *)msg->data; w1_list_count_cmds() local 525 if (cmd->len + sizeof(struct w1_netlink_cmd) > mlen) w1_list_count_cmds() 528 switch (cmd->cmd) { w1_list_count_cmds() 535 len = sizeof(*cmd) + cmd->len; w1_list_count_cmds() 536 cmd = (struct w1_netlink_cmd *)((u8 *)cmd + len); w1_list_count_cmds() 611 * one node per cmd to point into the original message, w1_cn_callback() 152 w1_netlink_queue_cmd(struct w1_cb_block *block, struct w1_netlink_cmd *cmd) w1_netlink_queue_cmd() argument 307 w1_process_command_io(struct w1_master *dev, struct w1_netlink_cmd *cmd) w1_process_command_io() argument 332 w1_process_command_addremove(struct w1_master *dev, struct w1_netlink_cmd *cmd) w1_process_command_addremove() argument 406 w1_process_command_slave(struct w1_slave *sl, struct w1_netlink_cmd *cmd) w1_process_command_slave() argument
|
/linux-4.1.27/drivers/net/ethernet/mellanox/mlx4/ |
H A D | en_ethtool.c | 714 struct ethtool_cmd *cmd) ethtool_get_ptys_settings() 742 cmd->supported = 0; ethtool_get_ptys_settings() 743 cmd->advertising = 0; ethtool_get_ptys_settings() 745 cmd->supported |= ptys_get_supported_port(&ptys_reg); ethtool_get_ptys_settings() 748 cmd->supported |= ptys2ethtool_link_modes(eth_proto, SUPPORTED); ethtool_get_ptys_settings() 751 cmd->advertising |= ptys2ethtool_link_modes(eth_proto, ADVERTISED); ethtool_get_ptys_settings() 753 cmd->supported |= SUPPORTED_Pause | SUPPORTED_Asym_Pause; ethtool_get_ptys_settings() 754 cmd->advertising |= (priv->prof->tx_pause) ? ADVERTISED_Pause : 0; ethtool_get_ptys_settings() 756 cmd->advertising |= (priv->prof->tx_pause ^ priv->prof->rx_pause) ? ethtool_get_ptys_settings() 759 cmd->port = ptys_get_active_port(&ptys_reg); ethtool_get_ptys_settings() 760 cmd->transceiver = (SUPPORTED_TP & cmd->supported) ? ethtool_get_ptys_settings() 764 cmd->supported |= SUPPORTED_Autoneg; ethtool_get_ptys_settings() 765 cmd->advertising |= ADVERTISED_Autoneg; ethtool_get_ptys_settings() 768 cmd->autoneg = (priv->port_state.flags & MLX4_EN_PORT_ANC) ? ethtool_get_ptys_settings() 772 cmd->lp_advertising = ptys2ethtool_link_modes(eth_proto, ADVERTISED); ethtool_get_ptys_settings() 774 cmd->lp_advertising |= (priv->port_state.flags & MLX4_EN_PORT_ANC) ? ethtool_get_ptys_settings() 777 cmd->phy_address = 0; ethtool_get_ptys_settings() 778 cmd->mdio_support = 0; ethtool_get_ptys_settings() 779 cmd->maxtxpkt = 0; ethtool_get_ptys_settings() 780 cmd->maxrxpkt = 0; ethtool_get_ptys_settings() 781 cmd->eth_tp_mdix = ETH_TP_MDI_INVALID; ethtool_get_ptys_settings() 782 cmd->eth_tp_mdix_ctrl = ETH_TP_MDI_AUTO; ethtool_get_ptys_settings() 788 struct ethtool_cmd *cmd) ethtool_get_default_settings() 793 cmd->autoneg = AUTONEG_DISABLE; ethtool_get_default_settings() 794 cmd->supported = SUPPORTED_10000baseT_Full; ethtool_get_default_settings() 795 cmd->advertising = ADVERTISED_10000baseT_Full; ethtool_get_default_settings() 799 cmd->port = PORT_FIBRE; ethtool_get_default_settings() 800 cmd->transceiver = XCVR_EXTERNAL; ethtool_get_default_settings() 801 cmd->supported |= SUPPORTED_FIBRE; ethtool_get_default_settings() 802 cmd->advertising |= ADVERTISED_FIBRE; ethtool_get_default_settings() 804 cmd->port = PORT_TP; ethtool_get_default_settings() 805 cmd->transceiver = XCVR_INTERNAL; ethtool_get_default_settings() 806 cmd->supported |= SUPPORTED_TP; ethtool_get_default_settings() 807 cmd->advertising |= ADVERTISED_TP; ethtool_get_default_settings() 809 cmd->port = -1; ethtool_get_default_settings() 810 cmd->transceiver = -1; ethtool_get_default_settings() 814 static int mlx4_en_get_settings(struct net_device *dev, struct ethtool_cmd *cmd) mlx4_en_get_settings() argument 827 ret = ethtool_get_ptys_settings(dev, cmd); mlx4_en_get_settings() 829 ethtool_get_default_settings(dev, cmd); mlx4_en_get_settings() 832 ethtool_cmd_speed_set(cmd, priv->port_state.link_speed); mlx4_en_get_settings() 833 cmd->duplex = DUPLEX_FULL; mlx4_en_get_settings() 835 ethtool_cmd_speed_set(cmd, SPEED_UNKNOWN); mlx4_en_get_settings() 836 cmd->duplex = DUPLEX_UNKNOWN; mlx4_en_get_settings() 860 static int mlx4_en_set_settings(struct net_device *dev, struct ethtool_cmd *cmd) mlx4_en_set_settings() argument 867 u32 ptys_adv = ethtool2ptys_link_modes(cmd->advertising, ADVERTISED); mlx4_en_set_settings() 868 int speed = ethtool_cmd_speed(cmd); mlx4_en_set_settings() 871 speed, cmd->advertising, cmd->autoneg, cmd->duplex); mlx4_en_set_settings() 874 (cmd->duplex == DUPLEX_HALF)) mlx4_en_set_settings() 888 proto_admin = cmd->autoneg == AUTONEG_ENABLE ? mlx4_en_set_settings() 1210 struct ethtool_rxnfc *cmd) mlx4_en_validate_flow() 1216 if (cmd->fs.location >= MAX_NUM_OF_FS_RULES) mlx4_en_validate_flow() 1219 if (cmd->fs.flow_type & FLOW_MAC_EXT) { mlx4_en_validate_flow() 1221 if (!is_broadcast_ether_addr(cmd->fs.m_ext.h_dest)) mlx4_en_validate_flow() 1225 switch (cmd->fs.flow_type & ~(FLOW_EXT | FLOW_MAC_EXT)) { mlx4_en_validate_flow() 1228 if (cmd->fs.m_u.tcp_ip4_spec.tos) mlx4_en_validate_flow() 1230 l4_mask = &cmd->fs.m_u.tcp_ip4_spec; mlx4_en_validate_flow() 1239 l3_mask = &cmd->fs.m_u.usr_ip4_spec; mlx4_en_validate_flow() 1241 cmd->fs.h_u.usr_ip4_spec.ip_ver != ETH_RX_NFC_IP4 || mlx4_en_validate_flow() 1248 eth_mask = &cmd->fs.m_u.ether_spec; mlx4_en_validate_flow() 1264 if ((cmd->fs.flow_type & FLOW_EXT)) { mlx4_en_validate_flow() 1265 if (cmd->fs.m_ext.vlan_etype || mlx4_en_validate_flow() 1266 !((cmd->fs.m_ext.vlan_tci & cpu_to_be16(VLAN_VID_MASK)) == mlx4_en_validate_flow() 1268 (cmd->fs.m_ext.vlan_tci & cpu_to_be16(VLAN_VID_MASK)) == mlx4_en_validate_flow() 1272 if (cmd->fs.m_ext.vlan_tci) { mlx4_en_validate_flow() 1273 if (be16_to_cpu(cmd->fs.h_ext.vlan_tci) >= VLAN_N_VID) mlx4_en_validate_flow() 1282 static int mlx4_en_ethtool_add_mac_rule(struct ethtool_rxnfc *cmd, mlx4_en_ethtool_add_mac_rule() argument 1294 if ((cmd->fs.flow_type & FLOW_EXT) && mlx4_en_ethtool_add_mac_rule() 1295 (cmd->fs.m_ext.vlan_tci & cpu_to_be16(VLAN_VID_MASK))) { mlx4_en_ethtool_add_mac_rule() 1296 spec_l2->eth.vlan_id = cmd->fs.h_ext.vlan_tci; mlx4_en_ethtool_add_mac_rule() 1306 struct ethtool_rxnfc *cmd, mlx4_en_ethtool_add_mac_rule_by_ipv4() 1315 if (cmd->fs.flow_type & FLOW_MAC_EXT) mlx4_en_ethtool_add_mac_rule_by_ipv4() 1316 memcpy(&mac, cmd->fs.h_ext.h_dest, ETH_ALEN); mlx4_en_ethtool_add_mac_rule_by_ipv4() 1323 return mlx4_en_ethtool_add_mac_rule(cmd, rule_list_h, spec_l2, &mac[0]); mlx4_en_ethtool_add_mac_rule_by_ipv4() 1330 struct ethtool_rxnfc *cmd, add_ip_rule() 1336 struct ethtool_usrip4_spec *l3_mask = &cmd->fs.m_u.usr_ip4_spec; add_ip_rule() 1345 err = mlx4_en_ethtool_add_mac_rule_by_ipv4(priv, cmd, list_h, spec_l2, add_ip_rule() 1346 cmd->fs.h_u. add_ip_rule() 1351 spec_l3->ipv4.src_ip = cmd->fs.h_u.usr_ip4_spec.ip4src; add_ip_rule() 1354 spec_l3->ipv4.dst_ip = cmd->fs.h_u.usr_ip4_spec.ip4dst; add_ip_rule() 1368 struct ethtool_rxnfc *cmd, add_tcp_udp_rule() 1375 struct ethtool_tcpip4_spec *l4_mask = &cmd->fs.m_u.tcp_ip4_spec; add_tcp_udp_rule() 1388 err = mlx4_en_ethtool_add_mac_rule_by_ipv4(priv, cmd, list_h, add_tcp_udp_rule() 1390 cmd->fs.h_u. add_tcp_udp_rule() 1395 spec_l3->ipv4.src_ip = cmd->fs.h_u.tcp_ip4_spec.ip4src; add_tcp_udp_rule() 1396 spec_l3->ipv4.dst_ip = cmd->fs.h_u.tcp_ip4_spec.ip4dst; add_tcp_udp_rule() 1397 spec_l4->tcp_udp.src_port = cmd->fs.h_u.tcp_ip4_spec.psrc; add_tcp_udp_rule() 1398 spec_l4->tcp_udp.dst_port = cmd->fs.h_u.tcp_ip4_spec.pdst; add_tcp_udp_rule() 1400 err = mlx4_en_ethtool_add_mac_rule_by_ipv4(priv, cmd, list_h, add_tcp_udp_rule() 1402 cmd->fs.h_u. add_tcp_udp_rule() 1407 spec_l3->ipv4.src_ip = cmd->fs.h_u.udp_ip4_spec.ip4src; add_tcp_udp_rule() 1408 spec_l3->ipv4.dst_ip = cmd->fs.h_u.udp_ip4_spec.ip4dst; add_tcp_udp_rule() 1409 spec_l4->tcp_udp.src_port = cmd->fs.h_u.udp_ip4_spec.psrc; add_tcp_udp_rule() 1410 spec_l4->tcp_udp.dst_port = cmd->fs.h_u.udp_ip4_spec.pdst; add_tcp_udp_rule() 1436 struct ethtool_rxnfc *cmd, mlx4_en_ethtool_to_net_trans_rule() 1444 err = mlx4_en_validate_flow(dev, cmd); mlx4_en_ethtool_to_net_trans_rule() 1448 switch (cmd->fs.flow_type & ~(FLOW_EXT | FLOW_MAC_EXT)) { mlx4_en_ethtool_to_net_trans_rule() 1454 eth_spec = &cmd->fs.h_u.ether_spec; mlx4_en_ethtool_to_net_trans_rule() 1455 mlx4_en_ethtool_add_mac_rule(cmd, rule_list_h, spec_l2, mlx4_en_ethtool_to_net_trans_rule() 1462 err = add_ip_rule(priv, cmd, rule_list_h); mlx4_en_ethtool_to_net_trans_rule() 1465 err = add_tcp_udp_rule(priv, cmd, rule_list_h, TCP_V4_FLOW); mlx4_en_ethtool_to_net_trans_rule() 1468 err = add_tcp_udp_rule(priv, cmd, rule_list_h, UDP_V4_FLOW); mlx4_en_ethtool_to_net_trans_rule() 1476 struct ethtool_rxnfc *cmd) mlx4_en_flow_replace() 1493 rule.priority = MLX4_DOMAIN_ETHTOOL | cmd->fs.location; mlx4_en_flow_replace() 1497 if (cmd->fs.ring_cookie == RX_CLS_FLOW_DISC) mlx4_en_flow_replace() 1499 else if (cmd->fs.ring_cookie & EN_ETHTOOL_QP_ATTACH) { mlx4_en_flow_replace() 1500 qpn = cmd->fs.ring_cookie & (EN_ETHTOOL_QP_ATTACH - 1); mlx4_en_flow_replace() 1502 if (cmd->fs.ring_cookie >= priv->rx_ring_num) { mlx4_en_flow_replace() 1504 cmd->fs.ring_cookie); mlx4_en_flow_replace() 1507 qpn = priv->rss_map.qps[cmd->fs.ring_cookie].qpn; mlx4_en_flow_replace() 1510 cmd->fs.ring_cookie); mlx4_en_flow_replace() 1515 err = mlx4_en_ethtool_to_net_trans_rule(dev, cmd, &rule.list); mlx4_en_flow_replace() 1519 loc_rule = &priv->ethtool_rules[cmd->fs.location]; mlx4_en_flow_replace() 1524 cmd->fs.location, loc_rule->id); mlx4_en_flow_replace() 1535 cmd->fs.location); mlx4_en_flow_replace() 1539 memcpy(&loc_rule->flow_spec, &cmd->fs, mlx4_en_flow_replace() 1552 struct ethtool_rxnfc *cmd) mlx4_en_flow_detach() 1558 if (cmd->fs.location >= MAX_NUM_OF_FS_RULES) mlx4_en_flow_detach() 1561 rule = &priv->ethtool_rules[cmd->fs.location]; mlx4_en_flow_detach() 1570 cmd->fs.location, rule->id); mlx4_en_flow_detach() 1581 static int mlx4_en_get_flow(struct net_device *dev, struct ethtool_rxnfc *cmd, mlx4_en_get_flow() argument 1593 memcpy(&cmd->fs, &rule->flow_spec, mlx4_en_get_flow() 1613 static int mlx4_en_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd, mlx4_en_get_rxnfc() argument 1621 if ((cmd->cmd == ETHTOOL_GRXCLSRLCNT || mlx4_en_get_rxnfc() 1622 cmd->cmd == ETHTOOL_GRXCLSRULE || mlx4_en_get_rxnfc() 1623 cmd->cmd == ETHTOOL_GRXCLSRLALL) && mlx4_en_get_rxnfc() 1628 switch (cmd->cmd) { mlx4_en_get_rxnfc() 1630 cmd->data = priv->rx_ring_num; mlx4_en_get_rxnfc() 1633 cmd->rule_cnt = mlx4_en_get_num_flows(priv); mlx4_en_get_rxnfc() 1636 err = mlx4_en_get_flow(dev, cmd, cmd->fs.location); mlx4_en_get_rxnfc() 1639 while ((!err || err == -ENOENT) && priority < cmd->rule_cnt) { mlx4_en_get_rxnfc() 1640 err = mlx4_en_get_flow(dev, cmd, i); mlx4_en_get_rxnfc() 1655 static int mlx4_en_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd) mlx4_en_set_rxnfc() argument 1665 switch (cmd->cmd) { mlx4_en_set_rxnfc() 1667 err = mlx4_en_flow_replace(dev, cmd); mlx4_en_set_rxnfc() 1670 err = mlx4_en_flow_detach(dev, cmd); mlx4_en_set_rxnfc() 1673 en_warn(priv, "Unsupported ethtool command. (%d)\n", cmd->cmd); mlx4_en_set_rxnfc() 713 ethtool_get_ptys_settings(struct net_device *dev, struct ethtool_cmd *cmd) ethtool_get_ptys_settings() argument 787 ethtool_get_default_settings(struct net_device *dev, struct ethtool_cmd *cmd) ethtool_get_default_settings() argument 1209 mlx4_en_validate_flow(struct net_device *dev, struct ethtool_rxnfc *cmd) mlx4_en_validate_flow() argument 1305 mlx4_en_ethtool_add_mac_rule_by_ipv4(struct mlx4_en_priv *priv, struct ethtool_rxnfc *cmd, struct list_head *rule_list_h, struct mlx4_spec_list *spec_l2, __be32 ipv4_dst) mlx4_en_ethtool_add_mac_rule_by_ipv4() argument 1329 add_ip_rule(struct mlx4_en_priv *priv, struct ethtool_rxnfc *cmd, struct list_head *list_h) add_ip_rule() argument 1367 add_tcp_udp_rule(struct mlx4_en_priv *priv, struct ethtool_rxnfc *cmd, struct list_head *list_h, int proto) add_tcp_udp_rule() argument 1435 mlx4_en_ethtool_to_net_trans_rule(struct net_device *dev, struct ethtool_rxnfc *cmd, struct list_head *rule_list_h) mlx4_en_ethtool_to_net_trans_rule() argument 1475 mlx4_en_flow_replace(struct net_device *dev, struct ethtool_rxnfc *cmd) mlx4_en_flow_replace() argument 1551 mlx4_en_flow_detach(struct net_device *dev, struct ethtool_rxnfc *cmd) mlx4_en_flow_detach() argument
|
/linux-4.1.27/arch/cris/arch-v32/drivers/pci/ |
H A D | bios.c | 53 u16 cmd, old_cmd; pcibios_enable_resources() local 57 pci_read_config_word(dev, PCI_COMMAND, &cmd); pcibios_enable_resources() 58 old_cmd = cmd; pcibios_enable_resources() 70 cmd |= PCI_COMMAND_IO; pcibios_enable_resources() 72 cmd |= PCI_COMMAND_MEMORY; pcibios_enable_resources() 75 cmd |= PCI_COMMAND_MEMORY; pcibios_enable_resources() 76 if (cmd != old_cmd) { pcibios_enable_resources() 77 printk("PCI: Enabling device %s (%04x -> %04x)\n", pci_name(dev), old_cmd, cmd); pcibios_enable_resources() 78 pci_write_config_word(dev, PCI_COMMAND, cmd); pcibios_enable_resources()
|
/linux-4.1.27/drivers/staging/unisys/uislib/ |
H A D | uislib.c | 157 bus_no = msg->cmd.create_bus.bus_no; create_bus() 158 dev_count = msg->cmd.create_bus.dev_count; create_bus() 189 bus->bus_inst_uuid = msg->cmd.create_bus.bus_inst_uuid; create_bus() 209 if ((msg->cmd.create_bus.channel_addr != 0) && create_bus() 210 (msg->cmd.create_bus.channel_bytes != 0)) { create_bus() 211 bus->bus_channel_bytes = msg->cmd.create_bus.channel_bytes; create_bus() 213 init_vbus_channel(msg->cmd.create_bus.channel_addr, create_bus() 214 msg->cmd.create_bus.channel_bytes); create_bus() 218 struct guest_msgs cmd; create_bus() local 220 cmd.msgtype = GUEST_ADD_VBUS; create_bus() 221 cmd.add_vbus.bus_no = bus_no; create_bus() 222 cmd.add_vbus.chanptr = bus->bus_channel; create_bus() 223 cmd.add_vbus.dev_count = dev_count; create_bus() 224 cmd.add_vbus.bus_uuid = msg->cmd.create_bus.bus_data_type_uuid; create_bus() 225 cmd.add_vbus.instance_uuid = msg->cmd.create_bus.bus_inst_uuid; create_bus() 232 if (!virt_control_chan_func(&cmd)) { create_bus() 262 struct guest_msgs cmd; destroy_bus() local 265 bus_no = msg->cmd.destroy_bus.bus_no; destroy_bus() 296 cmd.msgtype = GUEST_DEL_VBUS; destroy_bus() 297 cmd.del_vbus.bus_no = bus_no; destroy_bus() 301 if (!virt_control_chan_func(&cmd)) destroy_bus() 327 struct guest_msgs cmd; create_device() local 333 bus_no = msg->cmd.create_device.bus_no; create_device() 334 dev_no = msg->cmd.create_device.dev_no; create_device() 346 dev->channel_uuid = msg->cmd.create_device.data_type_uuid; create_device() 347 dev->intr = msg->cmd.create_device.intr; create_device() 348 dev->channel_addr = msg->cmd.create_device.channel_addr; create_device() 363 if (min_size > msg->cmd.create_device.channel_bytes) { create_device() 371 msg->cmd.create_device.channel_bytes); create_device() 379 dev->instance_uuid = msg->cmd.create_device.dev_inst_uuid; create_device() 380 dev->channel_bytes = msg->cmd.create_device.channel_bytes; create_device() 424 cmd.msgtype = GUEST_ADD_VHBA; create_device() 425 cmd.add_vhba.chanptr = dev->chanptr; create_device() 426 cmd.add_vhba.bus_no = bus_no; create_device() 427 cmd.add_vhba.device_no = dev_no; create_device() 428 cmd.add_vhba.instance_uuid = dev->instance_uuid; create_device() 429 cmd.add_vhba.intr = dev->intr; create_device() 441 cmd.msgtype = GUEST_ADD_VNIC; create_device() 442 cmd.add_vnic.chanptr = dev->chanptr; create_device() 443 cmd.add_vnic.bus_no = bus_no; create_device() 444 cmd.add_vnic.device_no = dev_no; create_device() 445 cmd.add_vnic.instance_uuid = dev->instance_uuid; create_device() 446 cmd.add_vhba.intr = dev->intr; create_device() 461 if (!virt_control_chan_func(&cmd)) { create_device() 495 struct guest_msgs cmd; pause_device() local 498 bus_no = msg->cmd.device_change_state.bus_no; pause_device() 499 dev_no = msg->cmd.device_change_state.dev_no; pause_device() 528 cmd.msgtype = GUEST_PAUSE_VHBA; pause_device() 529 cmd.pause_vhba.chanptr = dev->chanptr; pause_device() 532 cmd.msgtype = GUEST_PAUSE_VNIC; pause_device() 533 cmd.pause_vnic.chanptr = dev->chanptr; pause_device() 539 if (!virt_control_chan_func(&cmd)) { pause_device() 552 struct guest_msgs cmd; resume_device() local 555 bus_no = msg->cmd.device_change_state.bus_no; resume_device() 556 dev_no = msg->cmd.device_change_state.dev_no; resume_device() 586 cmd.msgtype = GUEST_RESUME_VHBA; resume_device() 587 cmd.resume_vhba.chanptr = dev->chanptr; resume_device() 590 cmd.msgtype = GUEST_RESUME_VNIC; resume_device() 591 cmd.resume_vnic.chanptr = dev->chanptr; resume_device() 597 if (!virt_control_chan_func(&cmd)) { resume_device() 610 struct guest_msgs cmd; destroy_device() local 613 bus_no = msg->cmd.destroy_device.bus_no; destroy_device() 614 dev_no = msg->cmd.destroy_device.bus_no; destroy_device() 643 cmd.msgtype = GUEST_DEL_VHBA; destroy_device() 644 cmd.del_vhba.chanptr = dev->chanptr; destroy_device() 647 cmd.msgtype = GUEST_DEL_VNIC; destroy_device() 648 cmd.del_vnic.chanptr = dev->chanptr; destroy_device() 657 if (!virt_control_chan_func(&cmd)) { destroy_device() 682 max_bus_count = msg->cmd.init_chipset.bus_count; init_chipset() 683 platform_no = msg->cmd.init_chipset.platform_number; init_chipset() 707 msg.cmd.destroy_bus.bus_no = bus_no; delete_bus_glue() 718 msg.cmd.destroy_device.bus_no = bus_no; delete_device_glue() 719 msg.cmd.destroy_device.dev_no = dev_no; delete_device_glue() 744 msg.cmd.init_chipset.bus_count = 23; uislib_client_inject_add_bus() 745 msg.cmd.init_chipset.switch_count = 0; uislib_client_inject_add_bus() 756 msg.cmd.create_bus.bus_no = bus_no; uislib_client_inject_add_bus() 757 msg.cmd.create_bus.dev_count = 23; /* devNo+1; */ uislib_client_inject_add_bus() 758 msg.cmd.create_bus.channel_addr = channel_addr; uislib_client_inject_add_bus() 759 msg.cmd.create_bus.channel_bytes = n_channel_bytes; uislib_client_inject_add_bus() 785 msg.cmd.device_change_state.bus_no = bus_no; uislib_client_inject_pause_vhba() 786 msg.cmd.device_change_state.dev_no = dev_no; uislib_client_inject_pause_vhba() 787 msg.cmd.device_change_state.state = segment_state_standby; uislib_client_inject_pause_vhba() 802 msg.cmd.device_change_state.bus_no = bus_no; uislib_client_inject_resume_vhba() 803 msg.cmd.device_change_state.dev_no = dev_no; uislib_client_inject_resume_vhba() 804 msg.cmd.device_change_state.state = segment_state_running; uislib_client_inject_resume_vhba() 833 msg.cmd.create_device.bus_no = bus_no; uislib_client_inject_add_vhba() 834 msg.cmd.create_device.dev_no = dev_no; uislib_client_inject_add_vhba() 835 msg.cmd.create_device.dev_inst_uuid = inst_uuid; uislib_client_inject_add_vhba() 837 msg.cmd.create_device.intr = *intr; uislib_client_inject_add_vhba() 839 memset(&msg.cmd.create_device.intr, 0, uislib_client_inject_add_vhba() 841 msg.cmd.create_device.channel_addr = phys_chan_addr; uislib_client_inject_add_vhba() 847 msg.cmd.create_device.channel_bytes = chan_bytes; uislib_client_inject_add_vhba() 848 msg.cmd.create_device.data_type_uuid = spar_vhba_channel_protocol_uuid; uislib_client_inject_add_vhba() 888 msg.cmd.create_device.bus_no = bus_no; uislib_client_inject_add_vnic() 889 msg.cmd.create_device.dev_no = dev_no; uislib_client_inject_add_vnic() 890 msg.cmd.create_device.dev_inst_uuid = inst_uuid; uislib_client_inject_add_vnic() 892 msg.cmd.create_device.intr = *intr; uislib_client_inject_add_vnic() 894 memset(&msg.cmd.create_device.intr, 0, uislib_client_inject_add_vnic() 896 msg.cmd.create_device.channel_addr = phys_chan_addr; uislib_client_inject_add_vnic() 902 msg.cmd.create_device.channel_bytes = chan_bytes; uislib_client_inject_add_vnic() 903 msg.cmd.create_device.data_type_uuid = spar_vnic_channel_protocol_uuid; uislib_client_inject_add_vnic() 923 msg.cmd.device_change_state.bus_no = bus_no; uislib_client_inject_pause_vnic() 924 msg.cmd.device_change_state.dev_no = dev_no; uislib_client_inject_pause_vnic() 925 msg.cmd.device_change_state.state = segment_state_standby; uislib_client_inject_pause_vnic() 940 msg.cmd.device_change_state.bus_no = bus_no; uislib_client_inject_resume_vnic() 941 msg.cmd.device_change_state.dev_no = dev_no; uislib_client_inject_resume_vnic() 942 msg.cmd.device_change_state.state = segment_state_running; uislib_client_inject_resume_vnic()
|
/linux-4.1.27/drivers/net/ethernet/chelsio/cxgb3/ |
H A D | cxgb3_ioctl.h | 53 uint32_t cmd; member in struct:ch_reg 59 uint32_t cmd; member in struct:ch_cntxt 69 uint32_t cmd; member in struct:ch_desc 77 uint32_t cmd; member in struct:ch_mem_range 86 uint32_t cmd; member in struct:ch_qset_params 100 uint32_t cmd; member in struct:ch_pktsched_params 118 uint32_t cmd; member in struct:ch_mtus 124 uint32_t cmd; member in struct:ch_pm 133 uint32_t cmd; member in struct:ch_tcam 141 uint32_t cmd; member in struct:ch_tcb 147 uint32_t cmd; member in struct:ch_tcam_word 153 uint32_t cmd; member in struct:ch_trace
|
/linux-4.1.27/arch/sparc/kernel/ |
H A D | reboot.c | 39 void machine_restart(char *cmd) machine_restart() argument 46 if (cmd) machine_restart() 47 prom_reboot(cmd); machine_restart()
|
H A D | leon_pci.c | 54 u16 cmd; pcibios_fixup_bus() local 76 pci_bus_read_config_word(pbus, dev->devfn, PCI_COMMAND, &cmd); pcibios_fixup_bus() 77 if (has_io && !(cmd & PCI_COMMAND_IO)) { pcibios_fixup_bus() 82 cmd |= PCI_COMMAND_IO; pcibios_fixup_bus() 84 cmd); pcibios_fixup_bus() 86 if (has_mem && !(cmd & PCI_COMMAND_MEMORY)) { pcibios_fixup_bus() 91 cmd |= PCI_COMMAND_MEMORY; pcibios_fixup_bus() 93 cmd); pcibios_fixup_bus()
|
/linux-4.1.27/arch/mips/lasat/ |
H A D | picvue.c | 172 static void pvc_funcset(u8 cmd) pvc_funcset() argument 174 pvc_write(FUNC_SET_CMD | (cmd & (EIGHT_BYTE|TWO_LINES|LARGE_FONT)), pvc_funcset() 183 static void pvc_entrymode(u8 cmd) pvc_entrymode() argument 185 pvc_write(ENTRYMODE_CMD | (cmd & (AUTO_INC|CURSOR_FOLLOWS_DISP)), pvc_entrymode() 194 void pvc_dispcnt(u8 cmd) pvc_dispcnt() argument 196 pvc_write(DISP_CNT_CMD | (cmd & (DISP_ON|CUR_ON|CUR_BLINK)), MODE_INST); pvc_dispcnt() 204 void pvc_move(u8 cmd) pvc_move() argument 206 pvc_write(MOVE_CMD | (cmd & (DISPLAY|RIGHT)), MODE_INST); pvc_move() 223 u8 cmd = EIGHT_BYTE; pvc_init() local 226 cmd |= (SMALL_FONT|TWO_LINES); pvc_init() 228 cmd |= (LARGE_FONT|ONE_LINE); pvc_init() 229 pvc_funcset(cmd); pvc_init()
|
/linux-4.1.27/drivers/net/ethernet/samsung/sxgbe/ |
H A D | sxgbe_ethtool.c | 186 struct ethtool_cmd *cmd) sxgbe_getsettings() 191 return phy_ethtool_gset(priv->phydev, cmd); sxgbe_getsettings() 196 static int sxgbe_setsettings(struct net_device *dev, struct ethtool_cmd *cmd) sxgbe_setsettings() argument 201 return phy_ethtool_sset(priv->phydev, cmd); sxgbe_setsettings() 334 struct ethtool_rxnfc *cmd) sxgbe_get_rss_hash_opts() 336 cmd->data = 0; sxgbe_get_rss_hash_opts() 339 switch (cmd->flow_type) { sxgbe_get_rss_hash_opts() 342 cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3; sxgbe_get_rss_hash_opts() 348 cmd->data |= RXH_IP_SRC | RXH_IP_DST; sxgbe_get_rss_hash_opts() 352 cmd->data |= RXH_L4_B_0_1 | RXH_L4_B_2_3; sxgbe_get_rss_hash_opts() 358 cmd->data |= RXH_IP_SRC | RXH_IP_DST; sxgbe_get_rss_hash_opts() 367 static int sxgbe_get_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd, sxgbe_get_rxnfc() argument 373 switch (cmd->cmd) { sxgbe_get_rxnfc() 375 ret = sxgbe_get_rss_hash_opts(priv, cmd); sxgbe_get_rxnfc() 385 struct ethtool_rxnfc *cmd) sxgbe_set_rss_hash_opt() 392 if (cmd->data & ~(RXH_IP_SRC | RXH_IP_DST | sxgbe_set_rss_hash_opt() 396 switch (cmd->flow_type) { sxgbe_set_rss_hash_opt() 399 if (!(cmd->data & RXH_IP_SRC) || sxgbe_set_rss_hash_opt() 400 !(cmd->data & RXH_IP_DST) || sxgbe_set_rss_hash_opt() 401 !(cmd->data & RXH_L4_B_0_1) || sxgbe_set_rss_hash_opt() 402 !(cmd->data & RXH_L4_B_2_3)) sxgbe_set_rss_hash_opt() 408 if (!(cmd->data & RXH_IP_SRC) || sxgbe_set_rss_hash_opt() 409 !(cmd->data & RXH_IP_DST) || sxgbe_set_rss_hash_opt() 410 !(cmd->data & RXH_L4_B_0_1) || sxgbe_set_rss_hash_opt() 411 !(cmd->data & RXH_L4_B_2_3)) sxgbe_set_rss_hash_opt() 425 if (!(cmd->data & RXH_IP_SRC) || sxgbe_set_rss_hash_opt() 426 !(cmd->data & RXH_IP_DST) || sxgbe_set_rss_hash_opt() 427 (cmd->data & RXH_L4_B_0_1) || sxgbe_set_rss_hash_opt() 428 (cmd->data & RXH_L4_B_2_3)) sxgbe_set_rss_hash_opt() 444 static int sxgbe_set_rxnfc(struct net_device *dev, struct ethtool_rxnfc *cmd) sxgbe_set_rxnfc() argument 449 switch (cmd->cmd) { sxgbe_set_rxnfc() 451 ret = sxgbe_set_rss_hash_opt(priv, cmd); sxgbe_set_rxnfc() 185 sxgbe_getsettings(struct net_device *dev, struct ethtool_cmd *cmd) sxgbe_getsettings() argument 333 sxgbe_get_rss_hash_opts(struct sxgbe_priv_data *priv, struct ethtool_rxnfc *cmd) sxgbe_get_rss_hash_opts() argument 384 sxgbe_set_rss_hash_opt(struct sxgbe_priv_data *priv, struct ethtool_rxnfc *cmd) sxgbe_set_rss_hash_opt() argument
|
/linux-4.1.27/drivers/staging/mt29f_spinand/ |
H A D | mt29f_spinand.c | 73 static int spinand_cmd(struct spi_device *spi, struct spinand_cmd *cmd) spinand_cmd() argument 83 x[0].tx_buf = &cmd->cmd; spinand_cmd() 86 if (cmd->n_addr) { spinand_cmd() 87 x[1].len = cmd->n_addr; spinand_cmd() 88 x[1].tx_buf = cmd->addr; spinand_cmd() 92 if (cmd->n_dummy) { spinand_cmd() 93 x[2].len = cmd->n_dummy; spinand_cmd() 98 if (cmd->n_tx) { spinand_cmd() 99 x[3].len = cmd->n_tx; spinand_cmd() 100 x[3].tx_buf = cmd->tx_buf; spinand_cmd() 104 if (cmd->n_rx) { spinand_cmd() 105 x[3].len = cmd->n_rx; spinand_cmd() 106 x[3].rx_buf = cmd->rx_buf; spinand_cmd() 122 struct spinand_cmd cmd = {0}; spinand_read_id() local 124 cmd.cmd = CMD_READ_ID; spinand_read_id() 125 cmd.n_rx = 3; spinand_read_id() 126 cmd.rx_buf = &nand_id[0]; spinand_read_id() 128 retval = spinand_cmd(spi_nand, &cmd); spinand_read_id() 150 struct spinand_cmd cmd = {0}; spinand_read_status() local 153 cmd.cmd = CMD_READ_REG; spinand_read_status() 154 cmd.n_addr = 1; spinand_read_status() 155 cmd.addr[0] = REG_STATUS; spinand_read_status() 156 cmd.n_rx = 1; spinand_read_status() 157 cmd.rx_buf = status; spinand_read_status() 159 ret = spinand_cmd(spi_nand, &cmd); spinand_read_status() 198 struct spinand_cmd cmd = {0}; spinand_get_otp() local 201 cmd.cmd = CMD_READ_REG; spinand_get_otp() 202 cmd.n_addr = 1; spinand_get_otp() 203 cmd.addr[0] = REG_OTP; spinand_get_otp() 204 cmd.n_rx = 1; spinand_get_otp() 205 cmd.rx_buf = otp; spinand_get_otp() 207 retval = spinand_cmd(spi_nand, &cmd); spinand_get_otp() 223 struct spinand_cmd cmd = {0}; spinand_set_otp() local 225 cmd.cmd = CMD_WRITE_REG, spinand_set_otp() 226 cmd.n_addr = 1, spinand_set_otp() 227 cmd.addr[0] = REG_OTP, spinand_set_otp() 228 cmd.n_tx = 1, spinand_set_otp() 229 cmd.tx_buf = otp, spinand_set_otp() 231 retval = spinand_cmd(spi_nand, &cmd); spinand_set_otp() 295 struct spinand_cmd cmd = {0}; spinand_write_enable() local 297 cmd.cmd = CMD_WR_ENABLE; spinand_write_enable() 298 return spinand_cmd(spi_nand, &cmd); spinand_write_enable() 303 struct spinand_cmd cmd = {0}; spinand_read_page_to_cache() local 307 cmd.cmd = CMD_READ; spinand_read_page_to_cache() 308 cmd.n_addr = 3; spinand_read_page_to_cache() 309 cmd.addr[1] = (u8)((row & 0xff00) >> 8); spinand_read_page_to_cache() 310 cmd.addr[2] = (u8)(row & 0x00ff); spinand_read_page_to_cache() 312 return spinand_cmd(spi_nand, &cmd); spinand_read_page_to_cache() 326 struct spinand_cmd cmd = {0}; spinand_read_from_cache() local 330 cmd.cmd = CMD_READ_RDM; spinand_read_from_cache() 331 cmd.n_addr = 3; spinand_read_from_cache() 332 cmd.addr[0] = (u8)((column & 0xff00) >> 8); spinand_read_from_cache() 333 cmd.addr[0] |= (u8)(((page_id >> 6) & 0x1) << 4); spinand_read_from_cache() 334 cmd.addr[1] = (u8)(column & 0x00ff); spinand_read_from_cache() 335 cmd.addr[2] = (u8)(0xff); spinand_read_from_cache() 336 cmd.n_dummy = 0; spinand_read_from_cache() 337 cmd.n_rx = len; spinand_read_from_cache() 338 cmd.rx_buf = rbuf; spinand_read_from_cache() 340 return spinand_cmd(spi_nand, &cmd); spinand_read_from_cache() 424 struct spinand_cmd cmd = {0}; spinand_program_data_to_cache() local 428 cmd.cmd = CMD_PROG_PAGE_CLRCACHE; spinand_program_data_to_cache() 429 cmd.n_addr = 2; spinand_program_data_to_cache() 430 cmd.addr[0] = (u8)((column & 0xff00) >> 8); spinand_program_data_to_cache() 431 cmd.addr[0] |= (u8)(((page_id >> 6) & 0x1) << 4); spinand_program_data_to_cache() 432 cmd.addr[1] = (u8)(column & 0x00ff); spinand_program_data_to_cache() 433 cmd.n_tx = len; spinand_program_data_to_cache() 434 cmd.tx_buf = wbuf; spinand_program_data_to_cache() 436 return spinand_cmd(spi_nand, &cmd); spinand_program_data_to_cache() 450 struct spinand_cmd cmd = {0}; spinand_program_execute() local 454 cmd.cmd = CMD_PROG_PAGE_EXC; spinand_program_execute() 455 cmd.n_addr = 3; spinand_program_execute() 456 cmd.addr[1] = (u8)((row & 0xff00) >> 8); spinand_program_execute() 457 cmd.addr[2] = (u8)(row & 0x00ff); spinand_program_execute() 459 return spinand_cmd(spi_nand, &cmd); spinand_program_execute() 559 struct spinand_cmd cmd = {0}; spinand_erase_block_erase() local 563 cmd.cmd = CMD_ERASE_BLK; spinand_erase_block_erase() 564 cmd.n_addr = 3; spinand_erase_block_erase() 565 cmd.addr[1] = (u8)((row & 0xff00) >> 8); spinand_erase_block_erase() 566 cmd.addr[2] = (u8)(row & 0x00ff); spinand_erase_block_erase() 568 return spinand_cmd(spi_nand, &cmd); spinand_erase_block_erase() 733 struct spinand_cmd cmd = {0}; spinand_reset() local 735 cmd.cmd = CMD_RESET; spinand_reset() 737 if (spinand_cmd(spi_nand, &cmd) < 0) spinand_reset() 806 /* a minimum of 250us must elapse before issuing RESET cmd*/ spinand_cmdfunc() 824 struct spinand_cmd cmd = {0}; spinand_lock_block() local 830 cmd.cmd = CMD_WRITE_REG; spinand_lock_block() 831 cmd.n_addr = 1; spinand_lock_block() 832 cmd.addr[0] = REG_BLOCK_LOCK; spinand_lock_block() 833 cmd.n_tx = 1; spinand_lock_block() 834 cmd.tx_buf = &lock; spinand_lock_block() 836 ret = spinand_cmd(spi_nand, &cmd); spinand_lock_block()
|
/linux-4.1.27/drivers/i2c/busses/ |
H A D | i2c-pmcmsp.c | 413 dev_dbg(&pmcmsptwi_adapter.dev, "Writing cmd reg 0x%08x\n", reg); pmcmsptwi_do_xfer() 433 static inline u32 pmcmsptwi_cmd_to_reg(const struct pmcmsptwi_cmd *cmd) pmcmsptwi_cmd_to_reg() argument 435 return ((cmd->type & 0x3) << 8) | pmcmsptwi_cmd_to_reg() 436 (((cmd->write_len - 1) & 0x7) << 4) | pmcmsptwi_cmd_to_reg() 437 ((cmd->read_len - 1) & 0x7); pmcmsptwi_cmd_to_reg() 444 struct pmcmsptwi_cmd *cmd, pmcmsptwi_xfer_cmd() 449 if ((cmd->type == MSP_TWI_CMD_WRITE && cmd->write_len == 0) || pmcmsptwi_xfer_cmd() 450 (cmd->type == MSP_TWI_CMD_READ && cmd->read_len == 0) || pmcmsptwi_xfer_cmd() 451 (cmd->type == MSP_TWI_CMD_WRITE_READ && pmcmsptwi_xfer_cmd() 452 (cmd->read_len == 0 || cmd->write_len == 0))) { pmcmsptwi_xfer_cmd() 461 "Setting address to 0x%04x\n", cmd->addr); pmcmsptwi_xfer_cmd() 462 pmcmsptwi_writel(cmd->addr, data->iobase + MSP_TWI_ADD_REG_OFFSET); pmcmsptwi_xfer_cmd() 464 if (cmd->type == MSP_TWI_CMD_WRITE || pmcmsptwi_xfer_cmd() 465 cmd->type == MSP_TWI_CMD_WRITE_READ) { pmcmsptwi_xfer_cmd() 466 u64 tmp = be64_to_cpup((__be64 *)cmd->write_data); pmcmsptwi_xfer_cmd() 467 tmp >>= (MSP_MAX_BYTES_PER_RW - cmd->write_len) * 8; pmcmsptwi_xfer_cmd() 471 if (cmd->write_len > 4) pmcmsptwi_xfer_cmd() 476 retval = pmcmsptwi_do_xfer(pmcmsptwi_cmd_to_reg(cmd), data); pmcmsptwi_xfer_cmd() 480 if (cmd->type == MSP_TWI_CMD_READ || pmcmsptwi_xfer_cmd() 481 cmd->type == MSP_TWI_CMD_WRITE_READ) { pmcmsptwi_xfer_cmd() 483 u64 rmsk = ~(0xffffffffffffffffLL << (cmd->read_len * 8)); pmcmsptwi_xfer_cmd() 486 if (cmd->read_len > 4) pmcmsptwi_xfer_cmd() 492 for (i = 0; i < cmd->read_len; i++) pmcmsptwi_xfer_cmd() 493 cmd->read_data[i] = tmp >> i; pmcmsptwi_xfer_cmd() 511 struct pmcmsptwi_cmd cmd; pmcmsptwi_master_xfer() local 518 cmd.type = MSP_TWI_CMD_WRITE_READ; pmcmsptwi_master_xfer() 519 cmd.write_len = msg->len; pmcmsptwi_master_xfer() 520 cmd.write_data = msg->buf; pmcmsptwi_master_xfer() 521 cmd.read_len = nextmsg->len; pmcmsptwi_master_xfer() 522 cmd.read_data = nextmsg->buf; pmcmsptwi_master_xfer() 524 cmd.type = MSP_TWI_CMD_READ; pmcmsptwi_master_xfer() 525 cmd.read_len = msg->len; pmcmsptwi_master_xfer() 526 cmd.read_data = msg->buf; pmcmsptwi_master_xfer() 527 cmd.write_len = 0; pmcmsptwi_master_xfer() 528 cmd.write_data = NULL; pmcmsptwi_master_xfer() 530 cmd.type = MSP_TWI_CMD_WRITE; pmcmsptwi_master_xfer() 531 cmd.read_len = 0; pmcmsptwi_master_xfer() 532 cmd.read_data = NULL; pmcmsptwi_master_xfer() 533 cmd.write_len = msg->len; pmcmsptwi_master_xfer() 534 cmd.write_data = msg->buf; pmcmsptwi_master_xfer() 542 cmd.addr = msg->addr; pmcmsptwi_master_xfer() 555 ret = pmcmsptwi_xfer_cmd(&cmd, data); pmcmsptwi_master_xfer() 443 pmcmsptwi_xfer_cmd( struct pmcmsptwi_cmd *cmd, struct pmcmsptwi_data *data) pmcmsptwi_xfer_cmd() argument
|
/linux-4.1.27/drivers/android/ |
H A D | binder_trace.h | 31 TP_PROTO(unsigned int cmd, unsigned long arg), 32 TP_ARGS(cmd, arg), 35 __field(unsigned int, cmd) 39 __entry->cmd = cmd; 42 TP_printk("cmd=0x%x arg=0x%lx", __entry->cmd, __entry->arg) 292 TP_PROTO(uint32_t cmd), 293 TP_ARGS(cmd), 295 __field(uint32_t, cmd) 298 __entry->cmd = cmd; 300 TP_printk("cmd=0x%x %s", 301 __entry->cmd, 302 _IOC_NR(__entry->cmd) < ARRAY_SIZE(binder_command_strings) ? 303 binder_command_strings[_IOC_NR(__entry->cmd)] : 308 TP_PROTO(uint32_t cmd), 309 TP_ARGS(cmd), 311 __field(uint32_t, cmd) 314 __entry->cmd = cmd; 316 TP_printk("cmd=0x%x %s", 317 __entry->cmd, 318 _IOC_NR(__entry->cmd) < ARRAY_SIZE(binder_return_strings) ? 319 binder_return_strings[_IOC_NR(__entry->cmd)] :
|
/linux-4.1.27/arch/powerpc/platforms/82xx/ |
H A D | pq2.h | 4 void pq2_restart(char *cmd);
|
/linux-4.1.27/sound/hda/ |
H A D | trace.h | 19 TP_PROTO(struct hdac_bus *bus, unsigned int cmd), 20 TP_ARGS(bus, cmd), 25 dev_name((bus)->dev), (cmd) >> 28, cmd);
|
/linux-4.1.27/fs/ext2/ |
H A D | ioctl.c | 20 long ext2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg) ext2_ioctl() argument 28 ext2_debug ("cmd = %u, arg = %lu\n", cmd, arg); ext2_ioctl() 30 switch (cmd) { ext2_ioctl() 167 long ext2_compat_ioctl(struct file *file, unsigned int cmd, unsigned long arg) ext2_compat_ioctl() argument 170 switch (cmd) { ext2_compat_ioctl() 172 cmd = EXT2_IOC_GETFLAGS; ext2_compat_ioctl() 175 cmd = EXT2_IOC_SETFLAGS; ext2_compat_ioctl() 178 cmd = EXT2_IOC_GETVERSION; ext2_compat_ioctl() 181 cmd = EXT2_IOC_SETVERSION; ext2_compat_ioctl() 186 return ext2_ioctl(file, cmd, (unsigned long) compat_ptr(arg)); ext2_compat_ioctl()
|
/linux-4.1.27/drivers/scsi/qla2xxx/ |
H A D | qla_target.c | 108 *cmd, struct atio_from_isp *atio, int ha_locked); 112 struct qla_tgt_cmd *cmd); 1299 struct qla_tgt_cmd *cmd; abort_cmd_for_tag() local 1311 list_for_each_entry(cmd, &vha->qla_cmd_list, cmd_list) { abort_cmd_for_tag() 1312 if (tag == cmd->atio.u.isp24.exchange_addr) { abort_cmd_for_tag() 1313 cmd->state = QLA_TGT_STATE_ABORTED; abort_cmd_for_tag() 1332 struct qla_tgt_cmd *cmd; abort_cmds_for_lun() local 1347 list_for_each_entry(cmd, &vha->qla_cmd_list, cmd_list) { abort_cmds_for_lun() 1351 cmd_key = sid_to_key(cmd->atio.u.isp24.fcp_hdr.s_id); abort_cmds_for_lun() 1353 (struct scsi_lun *)&cmd->atio.u.isp24.fcp_cmnd.lun); abort_cmds_for_lun() 1355 cmd->state = QLA_TGT_STATE_ABORTED; abort_cmds_for_lun() 1374 struct qla_tgt_cmd *cmd = __qlt_24xx_handle_abts() local 1376 if (cmd->tag == abts->exchange_addr_to_abort) { __qlt_24xx_handle_abts() 1377 lun = cmd->unpacked_lun; __qlt_24xx_handle_abts() 1384 /* cmd not in LIO lists, look in qla list */ __qlt_24xx_handle_abts() 1392 "unable to find cmd in driver or LIO for tag 0x%x\n", __qlt_24xx_handle_abts() 1405 "qla_target(%d): %s: Allocation of ABORT cmd failed", __qlt_24xx_handle_abts() 1606 struct qla_tgt_cmd *cmd = prm->cmd; qlt_pci_map_calc_cnt() local 1608 BUG_ON(cmd->sg_cnt == 0); qlt_pci_map_calc_cnt() 1610 prm->sg = (struct scatterlist *)cmd->sg; qlt_pci_map_calc_cnt() 1611 prm->seg_cnt = pci_map_sg(prm->tgt->ha->pdev, cmd->sg, qlt_pci_map_calc_cnt() 1612 cmd->sg_cnt, cmd->dma_data_direction); qlt_pci_map_calc_cnt() 1616 prm->cmd->sg_mapped = 1; qlt_pci_map_calc_cnt() 1618 if (cmd->se_cmd.prot_op == TARGET_PROT_NORMAL) { qlt_pci_map_calc_cnt() 1629 if ((cmd->se_cmd.prot_op == TARGET_PROT_DIN_INSERT) || qlt_pci_map_calc_cnt() 1630 (cmd->se_cmd.prot_op == TARGET_PROT_DOUT_STRIP)) { qlt_pci_map_calc_cnt() 1631 prm->seg_cnt = DIV_ROUND_UP(cmd->bufflen, cmd->blk_sz); qlt_pci_map_calc_cnt() 1636 if (cmd->prot_sg_cnt) { qlt_pci_map_calc_cnt() 1637 prm->prot_sg = cmd->prot_sg; qlt_pci_map_calc_cnt() 1639 cmd->prot_sg, cmd->prot_sg_cnt, qlt_pci_map_calc_cnt() 1640 cmd->dma_data_direction); qlt_pci_map_calc_cnt() 1644 if ((cmd->se_cmd.prot_op == TARGET_PROT_DIN_INSERT) || qlt_pci_map_calc_cnt() 1645 (cmd->se_cmd.prot_op == TARGET_PROT_DOUT_STRIP)) { qlt_pci_map_calc_cnt() 1647 prm->prot_seg_cnt = DIV_ROUND_UP(cmd->bufflen, qlt_pci_map_calc_cnt() 1648 cmd->blk_sz); qlt_pci_map_calc_cnt() 1658 ql_dbg(ql_dbg_tgt, prm->cmd->vha, 0xe04d, qlt_pci_map_calc_cnt() 1660 0, prm->cmd->sg_cnt); qlt_pci_map_calc_cnt() 1664 static void qlt_unmap_sg(struct scsi_qla_host *vha, struct qla_tgt_cmd *cmd) qlt_unmap_sg() argument 1668 if (!cmd->sg_mapped) qlt_unmap_sg() 1671 pci_unmap_sg(ha->pdev, cmd->sg, cmd->sg_cnt, cmd->dma_data_direction); qlt_unmap_sg() 1672 cmd->sg_mapped = 0; qlt_unmap_sg() 1674 if (cmd->prot_sg_cnt) qlt_unmap_sg() 1675 pci_unmap_sg(ha->pdev, cmd->prot_sg, cmd->prot_sg_cnt, qlt_unmap_sg() 1676 cmd->dma_data_direction); qlt_unmap_sg() 1678 if (cmd->ctx_dsd_alloced) qlt_unmap_sg() 1679 qla2x00_clean_dsd_pool(ha, NULL, cmd); qlt_unmap_sg() 1681 if (cmd->ctx) qlt_unmap_sg() 1682 dma_pool_free(ha->dl_dma_pool, cmd->ctx, cmd->ctx->crc_ctx_dma); qlt_unmap_sg() 1736 /* always increment cmd handle */ qlt_make_handle() 1744 "empty cmd slots in ha %p\n", vha->vp_idx, ha); qlt_make_handle() 1765 struct atio_from_isp *atio = &prm->cmd->atio; qlt_24xx_build_ctio_pkt() 1785 ha->tgt.cmds[h-1] = prm->cmd; qlt_24xx_build_ctio_pkt() 1788 pkt->nport_handle = prm->cmd->loop_id; qlt_24xx_build_ctio_pkt() 1797 pkt->u.status0.relative_offset = cpu_to_le32(prm->cmd->offset); qlt_24xx_build_ctio_pkt() 1873 pkt24->u.status0.transfer_length = cpu_to_le32(prm->cmd->bufflen); qlt_load_data_segments() 1910 static inline int qlt_has_data(struct qla_tgt_cmd *cmd) qlt_has_data() argument 1912 return cmd->bufflen > 0; qlt_has_data() 1918 static int qlt_pre_xmit_response(struct qla_tgt_cmd *cmd, qlt_pre_xmit_response() argument 1922 struct qla_tgt *tgt = cmd->tgt; qlt_pre_xmit_response() 1925 struct se_cmd *se_cmd = &cmd->se_cmd; qlt_pre_xmit_response() 1927 prm->cmd = cmd; qlt_pre_xmit_response() 1930 prm->sense_buffer = &cmd->sense_buffer[0]; qlt_pre_xmit_response() 1941 if ((xmit_type & QLA_TGT_XMIT_DATA) && qlt_has_data(cmd)) { qlt_pre_xmit_response() 1953 cmd->tag, se_cmd->t_task_cdb ? se_cmd->t_task_cdb[0] : 0, qlt_pre_xmit_response() 1954 cmd->bufflen, prm->rq_result); qlt_pre_xmit_response() 1961 cmd->tag, se_cmd->t_task_cdb ? se_cmd->t_task_cdb[0] : 0, qlt_pre_xmit_response() 1962 cmd->bufflen, prm->rq_result); qlt_pre_xmit_response() 1971 if (qlt_has_data(cmd)) { qlt_pre_xmit_response() 1985 struct qla_tgt_cmd *cmd, int sending_sense) qlt_need_explicit_conf() 1991 return cmd->conf_compl_supported; qlt_need_explicit_conf() 1994 cmd->conf_compl_supported; qlt_need_explicit_conf() 2028 static void qlt_check_srr_debug(struct qla_tgt_cmd *cmd, int *xmit_type) qlt_check_srr_debug() argument 2034 ql_dbg(ql_dbg_tgt_mgt, cmd->vha, 0xf015, qlt_check_srr_debug() 2035 "Dropping cmd %p (tag %d) status", cmd, cmd->tag); qlt_check_srr_debug() 2042 if (cmd->dma_data_direction != DMA_FROM_DEVICE) qlt_check_srr_debug() 2045 if (qlt_has_data(cmd) && (cmd->sg_cnt > 1) && qlt_check_srr_debug() 2051 leave = qlt_srr_random() % cmd->sg_cnt; qlt_check_srr_debug() 2054 tot_len += cmd->sg[i].length; qlt_check_srr_debug() 2056 ql_dbg(ql_dbg_tgt_mgt, cmd->vha, 0xf016, qlt_check_srr_debug() 2057 "Cutting cmd %p (tag %d) buffer" qlt_check_srr_debug() 2058 " tail to len %d, sg_cnt %d (cmd->bufflen %d," qlt_check_srr_debug() 2059 " cmd->sg_cnt %d)", cmd, cmd->tag, tot_len, leave, qlt_check_srr_debug() 2060 cmd->bufflen, cmd->sg_cnt); qlt_check_srr_debug() 2062 cmd->bufflen = tot_len; qlt_check_srr_debug() 2063 cmd->sg_cnt = leave; qlt_check_srr_debug() 2066 if (qlt_has_data(cmd) && ((qlt_srr_random() % 100) == 70)) { qlt_check_srr_debug() 2067 unsigned int offset = qlt_srr_random() % cmd->bufflen; qlt_check_srr_debug() 2069 ql_dbg(ql_dbg_tgt_mgt, cmd->vha, 0xf017, qlt_check_srr_debug() 2070 "Cutting cmd %p (tag %d) buffer head " qlt_check_srr_debug() 2071 "to offset %d (cmd->bufflen %d)", cmd, cmd->tag, offset, qlt_check_srr_debug() 2072 cmd->bufflen); qlt_check_srr_debug() 2075 else if (qlt_set_data_offset(cmd, offset)) { qlt_check_srr_debug() 2076 ql_dbg(ql_dbg_tgt_mgt, cmd->vha, 0xf018, qlt_check_srr_debug() 2077 "qlt_set_data_offset() failed (tag %d)", cmd->tag); qlt_check_srr_debug() 2082 static inline void qlt_check_srr_debug(struct qla_tgt_cmd *cmd, int *xmit_type) qlt_check_srr_debug() argument 2093 if (qlt_need_explicit_conf(prm->tgt->ha, prm->cmd, 0)) { qlt_24xx_init_ctio_to_isp() 2103 if (qlt_need_explicit_conf(prm->tgt->ha, prm->cmd, 1)) { qlt_24xx_init_ctio_to_isp() 2104 if (prm->cmd->se_cmd.scsi_status != 0) { qlt_24xx_init_ctio_to_isp() 2105 ql_dbg(ql_dbg_tgt, prm->cmd->vha, 0xe017, qlt_24xx_init_ctio_to_isp() 2161 if (!sp->cmd->prot_chk) qlt_hba_err_chk_enabled() 2194 /* wait til Mode Sense/Select cmd, modepage Ah, subpage 2 qlt_set_t10dif_tags() 2276 struct qla_tgt_cmd *cmd = prm->cmd; qlt_build_ctio_crc2_pkt() local 2277 struct se_cmd *se_cmd = &cmd->se_cmd; qlt_build_ctio_crc2_pkt() 2279 struct atio_from_isp *atio = &prm->cmd->atio; qlt_build_ctio_crc2_pkt() 2290 "qla_target(%d):%s: se_cmd[%p] CRC2 prot_op[0x%x] cmd prot sg:cnt[%p:%x] lba[%llu]\n", qlt_build_ctio_crc2_pkt() 2299 data_bytes = cmd->bufflen; qlt_build_ctio_crc2_pkt() 2300 dif_bytes = (data_bytes / cmd->blk_sz) * 8; qlt_build_ctio_crc2_pkt() 2367 ha->tgt.cmds[h-1] = prm->cmd; qlt_build_ctio_crc2_pkt() 2371 pkt->nport_handle = prm->cmd->loop_id; qlt_build_ctio_crc2_pkt() 2384 pkt->relative_offset = cpu_to_le32(prm->cmd->offset); qlt_build_ctio_crc2_pkt() 2387 if (cmd->dma_data_direction == DMA_TO_DEVICE) qlt_build_ctio_crc2_pkt() 2389 else if (cmd->dma_data_direction == DMA_FROM_DEVICE) qlt_build_ctio_crc2_pkt() 2401 crc_ctx_pkt = cmd->ctx = qlt_build_ctio_crc2_pkt() 2439 crc_ctx_pkt->blk_size = cpu_to_le16(cmd->blk_sz); qlt_build_ctio_crc2_pkt() 2450 prm->tot_dsds, cmd)) qlt_build_ctio_crc2_pkt() 2453 (prm->tot_dsds - prm->prot_seg_cnt), cmd)) qlt_build_ctio_crc2_pkt() 2462 prm->prot_seg_cnt, cmd)) qlt_build_ctio_crc2_pkt() 2478 int qlt_xmit_response(struct qla_tgt_cmd *cmd, int xmit_type, qlt_xmit_response() argument 2481 struct scsi_qla_host *vha = cmd->vha; qlt_xmit_response() 2490 if (cmd->sess && cmd->sess->deleted == QLA_SESS_DELETION_IN_PROGRESS) { qlt_xmit_response() 2491 cmd->state = QLA_TGT_STATE_PROCESSED; qlt_xmit_response() 2492 if (cmd->sess->logout_completed) qlt_xmit_response() 2494 qlt_abort_cmd_on_host_reset(cmd->vha, cmd); qlt_xmit_response() 2496 qlt_send_term_exchange(vha, cmd, &cmd->atio, 1); qlt_xmit_response() 2503 qlt_check_srr_debug(cmd, &xmit_type); qlt_xmit_response() 2505 ql_dbg(ql_dbg_tgt, cmd->vha, 0xe018, qlt_xmit_response() 2506 "is_send_status=%d, cmd->bufflen=%d, cmd->sg_cnt=%d, cmd->dma_data_direction=%d se_cmd[%p]\n", qlt_xmit_response() 2508 1 : 0, cmd->bufflen, cmd->sg_cnt, cmd->dma_data_direction, qlt_xmit_response() 2509 &cmd->se_cmd); qlt_xmit_response() 2511 res = qlt_pre_xmit_response(cmd, &prm, xmit_type, scsi_status, qlt_xmit_response() 2519 if (qla2x00_reset_active(vha) || cmd->reset_count != ha->chip_reset) { qlt_xmit_response() 2524 cmd->state = QLA_TGT_STATE_PROCESSED; qlt_xmit_response() 2525 qlt_abort_cmd_on_host_reset(cmd->vha, cmd); qlt_xmit_response() 2528 qla2x00_reset_active(vha), cmd->reset_count, qlt_xmit_response() 2539 if (cmd->se_cmd.prot_op && (xmit_type & QLA_TGT_XMIT_DATA)) qlt_xmit_response() 2550 if (qlt_has_data(cmd) && (xmit_type & QLA_TGT_XMIT_DATA)) { qlt_xmit_response() 2555 if (cmd->se_cmd.prot_op == TARGET_PROT_NORMAL) qlt_xmit_response() 2566 if (qlt_need_explicit_conf(ha, cmd, 0)) { qlt_xmit_response() 2616 cmd->state = QLA_TGT_STATE_PROCESSED; /* Mid-level is done processing */ qlt_xmit_response() 2617 cmd->cmd_sent_to_fw = 1; qlt_xmit_response() 2627 qlt_unmap_sg(vha, cmd); qlt_xmit_response() 2634 int qlt_rdy_to_xfer(struct qla_tgt_cmd *cmd) qlt_rdy_to_xfer() argument 2637 struct scsi_qla_host *vha = cmd->vha; qlt_rdy_to_xfer() 2639 struct qla_tgt *tgt = cmd->tgt; qlt_rdy_to_xfer() 2645 prm.cmd = cmd; qlt_rdy_to_xfer() 2660 if (qla2x00_reset_active(vha) || (cmd->reset_count != ha->chip_reset) || qlt_rdy_to_xfer() 2661 (cmd->sess && cmd->sess->deleted == QLA_SESS_DELETION_IN_PROGRESS)) { qlt_rdy_to_xfer() 2666 cmd->state = QLA_TGT_STATE_NEED_DATA; qlt_rdy_to_xfer() 2667 qlt_abort_cmd_on_host_reset(cmd->vha, cmd); qlt_rdy_to_xfer() 2670 qla2x00_reset_active(vha), cmd->reset_count, qlt_rdy_to_xfer() 2680 if (cmd->se_cmd.prot_op) qlt_rdy_to_xfer() 2694 if (cmd->se_cmd.prot_op == TARGET_PROT_NORMAL) qlt_rdy_to_xfer() 2697 cmd->state = QLA_TGT_STATE_NEED_DATA; qlt_rdy_to_xfer() 2698 cmd->cmd_sent_to_fw = 1; qlt_rdy_to_xfer() 2708 qlt_unmap_sg(vha, cmd); qlt_rdy_to_xfer() 2721 qlt_handle_dif_error(struct scsi_qla_host *vha, struct qla_tgt_cmd *cmd, qlt_handle_dif_error() argument 2729 uint64_t lba = cmd->se_cmd.t_task_lba; qlt_handle_dif_error() 2744 cmd->atio.u.isp24.fcp_cmnd.cdb[0], lba, qlt_handle_dif_error() 2753 ((cmd->se_cmd.prot_type != TARGET_DIF_TYPE3_PROT) || qlt_handle_dif_error() 2759 cmd->se_cmd.bad_sector = e_ref_tag; qlt_handle_dif_error() 2760 cmd->se_cmd.pi_err = 0; qlt_handle_dif_error() 2765 if (cmd->prot_sg_cnt) { qlt_handle_dif_error() 2770 sgl = cmd->prot_sg; qlt_handle_dif_error() 2773 for_each_sg(sgl, sg, cmd->prot_sg_cnt, i) { qlt_handle_dif_error() 2801 if (cmd->se_cmd.prot_type == SCSI_PROT_DIF_TYPE3) qlt_handle_dif_error() 2811 cmd->se_cmd.pi_err = TCM_LOGICAL_BLOCK_GUARD_CHECK_FAILED; qlt_handle_dif_error() 2812 cmd->se_cmd.bad_sector = cmd->se_cmd.t_task_lba; qlt_handle_dif_error() 2815 "Guard ERR: cdb 0x%x lba 0x%llx: [Actual|Expected] Ref Tag[0x%x|0x%x], App Tag [0x%x|0x%x], Guard [0x%x|0x%x] cmd=%p\n", qlt_handle_dif_error() 2816 cmd->atio.u.isp24.fcp_cmnd.cdb[0], lba, qlt_handle_dif_error() 2818 a_guard, e_guard, cmd); qlt_handle_dif_error() 2824 cmd->se_cmd.pi_err = TCM_LOGICAL_BLOCK_REF_TAG_CHECK_FAILED; qlt_handle_dif_error() 2825 cmd->se_cmd.bad_sector = e_ref_tag; qlt_handle_dif_error() 2828 "Ref Tag ERR: cdb 0x%x lba 0x%llx: [Actual|Expected] Ref Tag[0x%x|0x%x], App Tag [0x%x|0x%x], Guard [0x%x|0x%x] cmd=%p\n", qlt_handle_dif_error() 2829 cmd->atio.u.isp24.fcp_cmnd.cdb[0], lba, qlt_handle_dif_error() 2831 a_guard, e_guard, cmd); qlt_handle_dif_error() 2837 cmd->se_cmd.pi_err = TCM_LOGICAL_BLOCK_APP_TAG_CHECK_FAILED; qlt_handle_dif_error() 2838 cmd->se_cmd.bad_sector = cmd->se_cmd.t_task_lba; qlt_handle_dif_error() 2841 "App Tag ERR: cdb 0x%x lba 0x%llx: [Actual|Expected] Ref Tag[0x%x|0x%x], App Tag [0x%x|0x%x], Guard [0x%x|0x%x] cmd=%p\n", qlt_handle_dif_error() 2842 cmd->atio.u.isp24.fcp_cmnd.cdb[0], lba, qlt_handle_dif_error() 2844 a_guard, e_guard, cmd); qlt_handle_dif_error() 2938 struct qla_tgt_cmd *cmd, __qlt_send_term_exchange() 2957 if (cmd != NULL) { __qlt_send_term_exchange() 2958 if (cmd->state < QLA_TGT_STATE_PROCESSED) { __qlt_send_term_exchange() 2960 "qla_target(%d): Terminating cmd %p with " __qlt_send_term_exchange() 2961 "incorrect state %d\n", vha->vp_idx, cmd, __qlt_send_term_exchange() 2962 cmd->state); __qlt_send_term_exchange() 2972 ctio24->nport_handle = cmd ? cmd->loop_id : CTIO7_NHANDLE_UNRECOGNIZED; __qlt_send_term_exchange() 2999 struct qla_tgt_cmd *cmd, struct atio_from_isp *atio, int ha_locked) qlt_send_term_exchange() 3008 rc = __qlt_send_term_exchange(vha, cmd, atio); qlt_send_term_exchange() 3014 rc = __qlt_send_term_exchange(vha, cmd, atio); qlt_send_term_exchange() 3019 if (cmd && ((cmd->state != QLA_TGT_STATE_ABORTED) || qlt_send_term_exchange() 3020 !cmd->cmd_sent_to_fw)) { qlt_send_term_exchange() 3021 if (cmd->sg_mapped) qlt_send_term_exchange() 3022 qlt_unmap_sg(vha, cmd); qlt_send_term_exchange() 3023 vha->hw->tgt.tgt_ops->free_cmd(cmd); qlt_send_term_exchange() 3035 struct qla_tgt_cmd *cmd, *tcmd; qlt_init_term_exchange() local 3040 cmd = tcmd = NULL; qlt_init_term_exchange() 3045 list_for_each_entry_safe(cmd, tcmd, &free_list, cmd_list) { qlt_init_term_exchange() 3046 list_del(&cmd->cmd_list); qlt_init_term_exchange() 3047 /* This cmd was never sent to TCM. There is no need qlt_init_term_exchange() 3050 qlt_free_cmd(cmd); qlt_init_term_exchange() 3079 void qlt_abort_cmd(struct qla_tgt_cmd *cmd) qlt_abort_cmd() argument 3081 struct qla_tgt *tgt = cmd->tgt; qlt_abort_cmd() 3083 struct se_cmd *se_cmd = &cmd->se_cmd; qlt_abort_cmd() 3086 "qla_target(%d): terminating exchange for aborted cmd=%p " qlt_abort_cmd() 3087 "(se_cmd=%p, tag=%llu)", vha->vp_idx, cmd, &cmd->se_cmd, qlt_abort_cmd() 3088 cmd->tag); qlt_abort_cmd() 3090 cmd->state = QLA_TGT_STATE_ABORTED; qlt_abort_cmd() 3091 cmd->cmd_flags |= BIT_6; qlt_abort_cmd() 3093 qlt_send_term_exchange(vha, cmd, &cmd->atio, 0); qlt_abort_cmd() 3097 void qlt_free_cmd(struct qla_tgt_cmd *cmd) qlt_free_cmd() argument 3099 struct qla_tgt_sess *sess = cmd->sess; qlt_free_cmd() 3101 ql_dbg(ql_dbg_tgt, cmd->vha, 0xe074, qlt_free_cmd() 3103 __func__, &cmd->se_cmd, qlt_free_cmd() 3104 be16_to_cpu(cmd->atio.u.isp24.fcp_hdr.ox_id)); qlt_free_cmd() 3106 BUG_ON(cmd->cmd_in_wq); qlt_free_cmd() 3108 if (!cmd->q_full) qlt_free_cmd() 3109 qlt_decr_num_pend_cmds(cmd->vha); qlt_free_cmd() 3111 BUG_ON(cmd->sg_mapped); qlt_free_cmd() 3112 cmd->jiffies_at_free = get_jiffies_64(); qlt_free_cmd() 3113 if (unlikely(cmd->free_sg)) qlt_free_cmd() 3114 kfree(cmd->sg); qlt_free_cmd() 3120 cmd->jiffies_at_free = get_jiffies_64(); qlt_free_cmd() 3121 percpu_ida_free(&sess->se_sess->sess_tag_pool, cmd->se_cmd.map_tag); qlt_free_cmd() 3127 struct qla_tgt_cmd *cmd, void *ctio) qlt_prepare_srr_ctio() 3134 cmd->cmd_flags |= BIT_15; qlt_prepare_srr_ctio() 3148 sc->cmd = cmd; qlt_prepare_srr_ctio() 3213 struct qla_tgt_cmd *cmd, uint32_t status) qlt_term_ctio_exchange() 3225 qlt_send_term_exchange(vha, cmd, &cmd->atio, 1); qlt_term_ctio_exchange() 3238 struct qla_tgt_cmd *cmd = ha->tgt.cmds[handle]; qlt_get_cmd() local 3240 return cmd; qlt_get_cmd() 3249 struct qla_tgt_cmd *cmd = NULL; qlt_ctio_to_cmd() local 3266 cmd = qlt_get_cmd(vha, handle); qlt_ctio_to_cmd() 3267 if (unlikely(cmd == NULL)) { qlt_ctio_to_cmd() 3282 return cmd; qlt_ctio_to_cmd() 3287 qlt_abort_cmd_on_host_reset(struct scsi_qla_host *vha, struct qla_tgt_cmd *cmd) qlt_abort_cmd_on_host_reset() argument 3292 if (cmd->sg_mapped) qlt_abort_cmd_on_host_reset() 3293 qlt_unmap_sg(vha, cmd); qlt_abort_cmd_on_host_reset() 3298 if (cmd->state == QLA_TGT_STATE_PROCESSED) { qlt_abort_cmd_on_host_reset() 3301 } else if (cmd->state == QLA_TGT_STATE_NEED_DATA) { qlt_abort_cmd_on_host_reset() 3302 cmd->write_data_transferred = 0; qlt_abort_cmd_on_host_reset() 3303 cmd->state = QLA_TGT_STATE_DATA_IN; qlt_abort_cmd_on_host_reset() 3308 ha->tgt.tgt_ops->handle_data(cmd); qlt_abort_cmd_on_host_reset() 3310 } else if (cmd->state == QLA_TGT_STATE_ABORTED) { qlt_abort_cmd_on_host_reset() 3316 cmd->state); qlt_abort_cmd_on_host_reset() 3320 cmd->cmd_flags |= BIT_12; qlt_abort_cmd_on_host_reset() 3321 ha->tgt.tgt_ops->free_cmd(cmd); qlt_abort_cmd_on_host_reset() 3327 struct qla_tgt_cmd *cmd; qlt_host_reset_handler() local 3349 cmd = qlt_get_cmd(base_vha, i); qlt_host_reset_handler() 3350 if (!cmd) qlt_host_reset_handler() 3353 vha = cmd->vha; qlt_host_reset_handler() 3354 qlt_abort_cmd_on_host_reset(vha, cmd); qlt_host_reset_handler() 3369 struct qla_tgt_cmd *cmd; qlt_do_ctio_completion() local 3381 cmd = qlt_ctio_to_cmd(vha, handle, ctio); qlt_do_ctio_completion() 3382 if (cmd == NULL) qlt_do_ctio_completion() 3385 se_cmd = &cmd->se_cmd; qlt_do_ctio_completion() 3387 cmd->cmd_sent_to_fw = 0; qlt_do_ctio_completion() 3389 qlt_unmap_sg(vha, cmd); qlt_do_ctio_completion() 3405 status, cmd->state, se_cmd); qlt_do_ctio_completion() 3414 status, cmd->state, se_cmd); qlt_do_ctio_completion() 3421 vha->vp_idx, status, cmd->state, se_cmd); qlt_do_ctio_completion() 3422 if (qlt_prepare_srr_ctio(vha, cmd, ctio) != 0) qlt_do_ctio_completion() 3432 vha->vp_idx, status, cmd->state, se_cmd, qlt_do_ctio_completion() 3436 if (qlt_handle_dif_error(vha, cmd, ctio)) { qlt_do_ctio_completion() 3437 if (cmd->state == QLA_TGT_STATE_NEED_DATA) { qlt_do_ctio_completion() 3445 cmd->state = QLA_TGT_STATE_PROCESSED; qlt_do_ctio_completion() 3446 ha->tgt.tgt_ops->handle_dif_err(cmd); qlt_do_ctio_completion() 3461 vha->vp_idx, status, cmd->state, se_cmd); qlt_do_ctio_completion() 3466 /* "cmd->state == QLA_TGT_STATE_ABORTED" means qlt_do_ctio_completion() 3467 * cmd is already aborted/terminated, we don't qlt_do_ctio_completion() 3472 if ((cmd->state != QLA_TGT_STATE_NEED_DATA) && qlt_do_ctio_completion() 3473 (cmd->state != QLA_TGT_STATE_ABORTED)) { qlt_do_ctio_completion() 3474 cmd->cmd_flags |= BIT_13; qlt_do_ctio_completion() 3475 if (qlt_term_ctio_exchange(vha, ctio, cmd, status)) qlt_do_ctio_completion() 3481 if (cmd->state == QLA_TGT_STATE_PROCESSED) { qlt_do_ctio_completion() 3483 } else if (cmd->state == QLA_TGT_STATE_NEED_DATA) { qlt_do_ctio_completion() 3486 cmd->state = QLA_TGT_STATE_DATA_IN; qlt_do_ctio_completion() 3491 cmd->write_data_transferred = 1; qlt_do_ctio_completion() 3493 ha->tgt.tgt_ops->handle_data(cmd); qlt_do_ctio_completion() 3495 } else if (cmd->state == QLA_TGT_STATE_ABORTED) { qlt_do_ctio_completion() 3497 "Aborted command %p (tag %d) finished\n", cmd, cmd->tag); qlt_do_ctio_completion() 3501 "not return a CTIO complete\n", vha->vp_idx, cmd->state); qlt_do_ctio_completion() 3505 (cmd->state != QLA_TGT_STATE_ABORTED)) { qlt_do_ctio_completion() 3511 ha->tgt.tgt_ops->free_cmd(cmd); qlt_do_ctio_completion() 3551 static void __qlt_do_work(struct qla_tgt_cmd *cmd) __qlt_do_work() argument 3553 scsi_qla_host_t *vha = cmd->vha; __qlt_do_work() 3556 struct qla_tgt_sess *sess = cmd->sess; __qlt_do_work() 3557 struct atio_from_isp *atio = &cmd->atio; __qlt_do_work() 3563 cmd->cmd_in_wq = 0; __qlt_do_work() 3564 cmd->cmd_flags |= BIT_1; __qlt_do_work() 3568 if (cmd->state == QLA_TGT_STATE_ABORTED) { __qlt_do_work() 3570 "cmd with tag %u is aborted\n", __qlt_do_work() 3571 cmd->atio.u.isp24.exchange_addr); __qlt_do_work() 3576 cmd->tag = atio->u.isp24.exchange_addr; __qlt_do_work() 3577 cmd->unpacked_lun = scsilun_to_int( __qlt_do_work() 3597 ret = ha->tgt.tgt_ops->handle_cmd(vha, cmd, cdb, data_length, __qlt_do_work() 3610 ql_dbg(ql_dbg_io, vha, 0x3060, "Terminating work cmd %p", cmd); __qlt_do_work() 3612 * cmd has not sent to target yet, so pass NULL as the second __qlt_do_work() 3615 cmd->cmd_flags |= BIT_2; __qlt_do_work() 3617 qlt_send_term_exchange(vha, NULL, &cmd->atio, 1); __qlt_do_work() 3620 percpu_ida_free(&sess->se_sess->sess_tag_pool, cmd->se_cmd.map_tag); __qlt_do_work() 3627 struct qla_tgt_cmd *cmd = container_of(work, struct qla_tgt_cmd, work); qlt_do_work() local 3628 scsi_qla_host_t *vha = cmd->vha; qlt_do_work() 3632 list_del(&cmd->cmd_list); qlt_do_work() 3635 __qlt_do_work(cmd); qlt_do_work() 3643 struct qla_tgt_cmd *cmd; qlt_get_tag() local 3650 cmd = &((struct qla_tgt_cmd *)se_sess->sess_cmd_map)[tag]; qlt_get_tag() 3651 memset(cmd, 0, sizeof(struct qla_tgt_cmd)); qlt_get_tag() 3653 memcpy(&cmd->atio, atio, sizeof(*atio)); qlt_get_tag() 3654 cmd->state = QLA_TGT_STATE_NEW; qlt_get_tag() 3655 cmd->tgt = vha->vha_tgt.qla_tgt; qlt_get_tag() 3657 cmd->vha = vha; qlt_get_tag() 3658 cmd->se_cmd.map_tag = tag; qlt_get_tag() 3659 cmd->sess = sess; qlt_get_tag() 3660 cmd->loop_id = sess->loop_id; qlt_get_tag() 3661 cmd->conf_compl_supported = sess->conf_compl_supported; qlt_get_tag() 3663 cmd->cmd_flags = 0; qlt_get_tag() 3664 cmd->jiffies_at_alloc = get_jiffies_64(); qlt_get_tag() 3666 cmd->reset_count = vha->hw->chip_reset; qlt_get_tag() 3668 return cmd; qlt_get_tag() 3681 struct qla_tgt_cmd *cmd; qlt_create_sess_from_atio() local 3719 cmd = qlt_get_tag(vha, sess, &op->atio); qlt_create_sess_from_atio() 3720 if (!cmd) { qlt_create_sess_from_atio() 3732 __qlt_do_work(cmd); qlt_create_sess_from_atio() 3751 struct qla_tgt_cmd *cmd; qlt_handle_cmd_for_atio() local 3792 cmd = qlt_get_tag(vha, sess, atio); qlt_handle_cmd_for_atio() 3793 if (!cmd) { qlt_handle_cmd_for_atio() 3795 "qla_target(%d): Allocation of cmd failed\n", vha->vp_idx); qlt_handle_cmd_for_atio() 3800 cmd->cmd_in_wq = 1; qlt_handle_cmd_for_atio() 3801 cmd->cmd_flags |= BIT_0; qlt_handle_cmd_for_atio() 3804 list_add_tail(&cmd->cmd_list, &vha->qla_cmd_list); qlt_handle_cmd_for_atio() 3807 INIT_WORK(&cmd->work, qlt_do_work); qlt_handle_cmd_for_atio() 3808 queue_work(qla_tgt_wq, &cmd->work); qlt_handle_cmd_for_atio() 3969 "qla_target(%d): %s: Allocation of ABORT cmd failed\n", __qlt_abort_task() 4116 struct qla_tgt_cmd *cmd; abort_cmds_for_s_id() local 4132 list_for_each_entry(cmd, &vha->qla_cmd_list, cmd_list) { abort_cmds_for_s_id() 4133 uint32_t cmd_key = sid_to_key(cmd->atio.u.isp24.fcp_hdr.s_id); abort_cmds_for_s_id() 4135 cmd->state = QLA_TGT_STATE_ABORTED; abort_cmds_for_s_id() 4321 static int qlt_set_data_offset(struct qla_tgt_cmd *cmd, uint32_t offset) qlt_set_data_offset() argument 4327 ql_dbg(ql_dbg_tgt, cmd->vha, 0xe023, qlt_set_data_offset() 4328 "Entering qla_tgt_set_data_offset: cmd: %p, cmd->sg: %p, " qlt_set_data_offset() 4329 "cmd->sg_cnt: %u, direction: %d\n", qlt_set_data_offset() 4330 cmd, cmd->sg, cmd->sg_cnt, cmd->dma_data_direction); qlt_set_data_offset() 4339 if (!cmd->sg || !cmd->sg_cnt) { qlt_set_data_offset() 4340 ql_dbg(ql_dbg_tgt, cmd->vha, 0xe055, qlt_set_data_offset() 4341 "Missing cmd->sg or zero cmd->sg_cnt in" qlt_set_data_offset() 4346 * Walk the current cmd->sg list until we locate the new sg_srr_start qlt_set_data_offset() 4348 for_each_sg(cmd->sg, sg, cmd->sg_cnt, i) { qlt_set_data_offset() 4349 ql_dbg(ql_dbg_tgt, cmd->vha, 0xe024, qlt_set_data_offset() 4356 ql_dbg(ql_dbg_tgt, cmd->vha, 0xe025, qlt_set_data_offset() 4367 ql_dbg(ql_dbg_tgt, cmd->vha, 0xe056, qlt_set_data_offset() 4371 sg_srr_cnt = (cmd->sg_cnt - i); qlt_set_data_offset() 4375 ql_dbg(ql_dbg_tgt, cmd->vha, 0xe057, qlt_set_data_offset() 4400 cmd->sg = sg_srr; 4401 cmd->sg_cnt = sg_srr_cnt; 4402 cmd->bufflen = bufflen; 4403 cmd->offset += offset; 4404 cmd->free_sg = 1; 4406 ql_dbg(ql_dbg_tgt, cmd->vha, 0xe026, "New cmd->sg: %p\n", cmd->sg); 4407 ql_dbg(ql_dbg_tgt, cmd->vha, 0xe027, "New cmd->sg_cnt: %u\n", 4408 cmd->sg_cnt); 4409 ql_dbg(ql_dbg_tgt, cmd->vha, 0xe028, "New cmd->bufflen: %u\n", 4410 cmd->bufflen); 4411 ql_dbg(ql_dbg_tgt, cmd->vha, 0xe029, "New cmd->offset: %u\n", 4412 cmd->offset); 4414 if (cmd->sg_cnt < 0) 4417 if (cmd->bufflen < 0) 4423 static inline int qlt_srr_adjust_data(struct qla_tgt_cmd *cmd, qlt_srr_adjust_data() argument 4428 rel_offs = srr_rel_offs - cmd->offset; qlt_srr_adjust_data() 4429 ql_dbg(ql_dbg_tgt_mgt, cmd->vha, 0xf027, "srr_rel_offs=%d, rel_offs=%d", qlt_srr_adjust_data() 4435 ql_dbg(ql_dbg_tgt_mgt, cmd->vha, 0xf062, qlt_srr_adjust_data() 4437 cmd->vha->vp_idx, rel_offs); qlt_srr_adjust_data() 4439 } else if (rel_offs == cmd->bufflen) qlt_srr_adjust_data() 4442 res = qlt_set_data_offset(cmd, rel_offs); qlt_srr_adjust_data() 4454 struct qla_tgt_cmd *cmd = sctio->cmd; qlt_handle_srr() local 4455 struct se_cmd *se_cmd = &cmd->se_cmd; qlt_handle_srr() 4464 ql_dbg(ql_dbg_tgt_mgt, vha, 0xf028, "SRR cmd %p, srr_ui %x\n", qlt_handle_srr() 4465 cmd, srr_ui); qlt_handle_srr() 4477 if (!cmd->sg || !cmd->sg_cnt) { qlt_handle_srr() 4480 " missing cmd->sg, state: %d\n", cmd->state); qlt_handle_srr() 4490 cmd->bufflen = se_cmd->data_length; qlt_handle_srr() 4492 if (qlt_has_data(cmd)) { qlt_handle_srr() 4493 if (qlt_srr_adjust_data(cmd, offset, &xmit_type) != 0) qlt_handle_srr() 4502 "qla_target(%d): SRR for in data for cmd " qlt_handle_srr() 4504 "reject", vha->vp_idx, cmd->tag, qlt_handle_srr() 4505 cmd->se_cmd.scsi_status); qlt_handle_srr() 4510 if (!cmd->sg || !cmd->sg_cnt) { qlt_handle_srr() 4513 " missing cmd->sg\n"); qlt_handle_srr() 4523 cmd->bufflen = se_cmd->data_length; qlt_handle_srr() 4525 if (qlt_has_data(cmd)) { qlt_handle_srr() 4526 if (qlt_srr_adjust_data(cmd, offset, &xmit_type) != 0) qlt_handle_srr() 4533 cmd->cmd_flags |= BIT_8; qlt_handle_srr() 4534 qlt_rdy_to_xfer(cmd); qlt_handle_srr() 4538 "qla_target(%d): SRR for out data for cmd " qlt_handle_srr() 4540 "reject", vha->vp_idx, cmd->tag, qlt_handle_srr() 4541 cmd->se_cmd.scsi_status); qlt_handle_srr() 4554 cmd->cmd_flags |= BIT_7; qlt_handle_srr() 4555 qlt_xmit_response(cmd, xmit_type, se_cmd->scsi_status); qlt_handle_srr() 4566 if (cmd->state == QLA_TGT_STATE_NEED_DATA) { qlt_handle_srr() 4567 cmd->state = QLA_TGT_STATE_DATA_IN; qlt_handle_srr() 4570 cmd->cmd_flags |= BIT_9; qlt_handle_srr() 4571 qlt_send_term_exchange(vha, cmd, &cmd->atio, 1); qlt_handle_srr() 4610 struct qla_tgt_cmd *cmd; qlt_handle_srr_work() local 4644 cmd = sctio->cmd; qlt_handle_srr_work() 4650 cmd->offset = 0; qlt_handle_srr_work() 4651 if (cmd->free_sg) { qlt_handle_srr_work() 4652 kfree(cmd->sg); qlt_handle_srr_work() 4653 cmd->sg = NULL; qlt_handle_srr_work() 4654 cmd->free_sg = 0; qlt_handle_srr_work() 4656 se_cmd = &cmd->se_cmd; qlt_handle_srr_work() 4658 cmd->sg_cnt = se_cmd->t_data_nents; qlt_handle_srr_work() 4659 cmd->sg = se_cmd->t_data_sg; qlt_handle_srr_work() 4662 "SRR cmd %p (se_cmd %p, tag %d, op %x), " qlt_handle_srr_work() 4663 "sg_cnt=%d, offset=%d", cmd, &cmd->se_cmd, cmd->tag, qlt_handle_srr_work() 4665 cmd->sg_cnt, cmd->offset); qlt_handle_srr_work() 4746 qlt_send_term_exchange(vha, sctio->cmd, qlt_prepare_srr_imm() 4747 &sctio->cmd->atio, 1); qlt_prepare_srr_imm() 4971 struct qla_tgt_cmd *cmd; qlt_alloc_qfull_cmd() local 5007 cmd = &((struct qla_tgt_cmd *)se_sess->sess_cmd_map)[tag]; qlt_alloc_qfull_cmd() 5008 if (!cmd) { qlt_alloc_qfull_cmd() 5010 "qla_target(%d): %s: Allocation of cmd failed\n", qlt_alloc_qfull_cmd() 5023 memset(cmd, 0, sizeof(struct qla_tgt_cmd)); qlt_alloc_qfull_cmd() 5026 INIT_LIST_HEAD(&cmd->cmd_list); qlt_alloc_qfull_cmd() 5027 memcpy(&cmd->atio, atio, sizeof(*atio)); qlt_alloc_qfull_cmd() 5029 cmd->tgt = vha->vha_tgt.qla_tgt; qlt_alloc_qfull_cmd() 5030 cmd->vha = vha; qlt_alloc_qfull_cmd() 5031 cmd->reset_count = vha->hw->chip_reset; qlt_alloc_qfull_cmd() 5032 cmd->q_full = 1; qlt_alloc_qfull_cmd() 5035 cmd->q_full = 1; qlt_alloc_qfull_cmd() 5037 cmd->state = status; qlt_alloc_qfull_cmd() 5039 cmd->term_exchg = 1; qlt_alloc_qfull_cmd() 5041 list_add_tail(&cmd->cmd_list, &vha->hw->tgt.q_full_list); qlt_alloc_qfull_cmd() 5055 struct qla_tgt_cmd *cmd, *tcmd; qlt_free_qfull_cmds() local 5071 list_for_each_entry_safe(cmd, tcmd, &ha->tgt.q_full_list, cmd_list) { qlt_free_qfull_cmds() 5072 if (cmd->q_full) qlt_free_qfull_cmds() 5073 /* cmd->state is a borrowed field to hold status */ qlt_free_qfull_cmds() 5074 rc = __qlt_send_busy(vha, &cmd->atio, cmd->state); qlt_free_qfull_cmds() 5075 else if (cmd->term_exchg) qlt_free_qfull_cmds() 5076 rc = __qlt_send_term_exchange(vha, NULL, &cmd->atio); qlt_free_qfull_cmds() 5081 if (cmd->q_full) qlt_free_qfull_cmds() 5084 be16_to_cpu(cmd->atio.u.isp24.fcp_hdr.ox_id)); qlt_free_qfull_cmds() 5085 else if (cmd->term_exchg) qlt_free_qfull_cmds() 5088 be16_to_cpu(cmd->atio.u.isp24.fcp_hdr.ox_id)); qlt_free_qfull_cmds() 5091 "%s: Unexpected cmd in QFull list %p\n", __func__, qlt_free_qfull_cmds() 5092 cmd); qlt_free_qfull_cmds() 5094 list_del(&cmd->cmd_list); qlt_free_qfull_cmds() 5095 list_add_tail(&cmd->cmd_list, &free_list); qlt_free_qfull_cmds() 5102 cmd = NULL; qlt_free_qfull_cmds() 5104 list_for_each_entry_safe(cmd, tcmd, &free_list, cmd_list) { qlt_free_qfull_cmds() 5105 list_del(&cmd->cmd_list); qlt_free_qfull_cmds() 5106 /* This cmd was never sent to TCM. There is no need qlt_free_qfull_cmds() 5109 qlt_free_cmd(cmd); qlt_free_qfull_cmds() 6490 qlt_update_vp_map(struct scsi_qla_host *vha, int cmd) qlt_update_vp_map() argument 6495 switch (cmd) { qlt_update_vp_map() 1984 qlt_need_explicit_conf(struct qla_hw_data *ha, struct qla_tgt_cmd *cmd, int sending_sense) qlt_need_explicit_conf() argument 2937 __qlt_send_term_exchange(struct scsi_qla_host *vha, struct qla_tgt_cmd *cmd, struct atio_from_isp *atio) __qlt_send_term_exchange() argument 2998 qlt_send_term_exchange(struct scsi_qla_host *vha, struct qla_tgt_cmd *cmd, struct atio_from_isp *atio, int ha_locked) qlt_send_term_exchange() argument 3126 qlt_prepare_srr_ctio(struct scsi_qla_host *vha, struct qla_tgt_cmd *cmd, void *ctio) qlt_prepare_srr_ctio() argument 3212 qlt_term_ctio_exchange(struct scsi_qla_host *vha, void *ctio, struct qla_tgt_cmd *cmd, uint32_t status) qlt_term_ctio_exchange() argument
|
/linux-4.1.27/drivers/media/rc/img-ir/ |
H A D | img-ir-sharp.c | 18 unsigned int addr, cmd, exp, chk; img_ir_sharp_scancode() local 24 cmd = (raw >> 5) & 0xff; img_ir_sharp_scancode() 36 request->scancode = addr << 8 | cmd; img_ir_sharp_scancode() 44 unsigned int addr, cmd, exp = 0, chk = 0; img_ir_sharp_filter() local 49 cmd = (in->data >> 0) & 0xff; img_ir_sharp_filter() 60 cmd << 5 | img_ir_sharp_filter()
|
/linux-4.1.27/drivers/net/wireless/ath/wil6210/ |
H A D | wmi.c | 179 } __packed cmd = { __wmi_send() local 183 .len = cpu_to_le16(sizeof(cmd.wmi) + len), __wmi_send() 197 if (sizeof(cmd) + len > r->entry_size) { __wmi_send() 199 (int)(sizeof(cmd) + len), r->entry_size); __wmi_send() 246 cmd.hdr.seq = cpu_to_le16(++wil->wmi_seq); __wmi_send() 249 wil_hex_dump_wmi("Cmd ", DUMP_PREFIX_OFFSET, 16, 1, &cmd, __wmi_send() 250 sizeof(cmd), true); __wmi_send() 251 wil_hex_dump_wmi("cmd ", DUMP_PREFIX_OFFSET, 16, 1, buf, __wmi_send() 253 wil_memcpy_toio_32(dst, &cmd, sizeof(cmd)); __wmi_send() 254 wil_memcpy_toio_32(dst + sizeof(cmd), buf, len); __wmi_send() 262 trace_wil6210_wmi_cmd(&cmd.wmi, buf, len); __wmi_send() 717 u8 *cmd; wmi_recv_cmd() local 738 /* read cmd descriptor from tail */ wmi_recv_cmd() 746 /* read cmd header from descriptor */ wmi_recv_cmd() 757 /* read cmd buffer from descriptor */ wmi_recv_cmd() 767 cmd = (void *)&evt->event.wmi; wmi_recv_cmd() 768 wil_memcpy_fromio_32(cmd, src, len); wmi_recv_cmd() 842 struct wmi_echo_cmd cmd = { wmi_echo() local 846 return wmi_call(wil, WMI_ECHO_CMDID, &cmd, sizeof(cmd), wmi_echo() 852 struct wmi_set_mac_address_cmd cmd; wmi_set_mac_address() local 854 ether_addr_copy(cmd.mac, addr); wmi_set_mac_address() 858 return wmi_send(wil, WMI_SET_MAC_ADDRESS_CMDID, &cmd, sizeof(cmd)); wmi_set_mac_address() 865 struct wmi_pcp_start_cmd cmd = { wmi_pcp_start() local 878 cmd.disable_sec = 1; wmi_pcp_start() 880 if ((cmd.pcp_max_assoc_sta > WIL6210_MAX_CID) || wmi_pcp_start() 881 (cmd.pcp_max_assoc_sta <= 0)) { wmi_pcp_start() 885 cmd.pcp_max_assoc_sta = WIL6210_MAX_CID; wmi_pcp_start() 892 rc = wmi_call(wil, WMI_PCP_START_CMDID, &cmd, sizeof(cmd), wmi_pcp_start() 911 struct wmi_set_ssid_cmd cmd = { wmi_set_ssid() local 915 if (ssid_len > sizeof(cmd.ssid)) wmi_set_ssid() 918 memcpy(cmd.ssid, ssid, ssid_len); wmi_set_ssid() 920 return wmi_send(wil, WMI_SET_SSID_CMDID, &cmd, sizeof(cmd)); wmi_set_ssid() 928 struct wmi_set_ssid_cmd cmd; wmi_get_ssid() member in struct:__anon7742 930 int len; /* reply.cmd.ssid_len in CPU order */ wmi_get_ssid() 937 len = le32_to_cpu(reply.cmd.ssid_len); wmi_get_ssid() 938 if (len > sizeof(reply.cmd.ssid)) wmi_get_ssid() 942 memcpy(ssid, reply.cmd.ssid, len); wmi_get_ssid() 949 struct wmi_set_pcp_channel_cmd cmd = { wmi_set_channel() local 953 return wmi_send(wil, WMI_SET_PCP_CHANNEL_CMDID, &cmd, sizeof(cmd)); wmi_set_channel() 961 struct wmi_set_pcp_channel_cmd cmd; wmi_get_channel() member in struct:__anon7743 969 if (reply.cmd.channel > 3) wmi_get_channel() 972 *channel = reply.cmd.channel + 1; wmi_get_channel() 979 struct wmi_p2p_cfg_cmd cmd = { wmi_p2p_cfg() local 984 return wmi_send(wil, WMI_P2P_CFG_CMDID, &cmd, sizeof(cmd)); wmi_p2p_cfg() 990 struct wmi_delete_cipher_key_cmd cmd = { wmi_del_cipher_key() local 995 memcpy(cmd.mac, mac_addr, WMI_MAC_LEN); wmi_del_cipher_key() 997 return wmi_send(wil, WMI_DELETE_CIPHER_KEY_CMDID, &cmd, sizeof(cmd)); wmi_del_cipher_key() 1003 struct wmi_add_cipher_key_cmd cmd = { wmi_add_cipher_key() local 1009 if (!key || (key_len > sizeof(cmd.key))) wmi_add_cipher_key() 1012 memcpy(cmd.key, key, key_len); wmi_add_cipher_key() 1014 memcpy(cmd.mac, mac_addr, WMI_MAC_LEN); wmi_add_cipher_key() 1016 return wmi_send(wil, WMI_ADD_CIPHER_KEY_CMDID, &cmd, sizeof(cmd)); wmi_add_cipher_key() 1023 struct wmi_set_appie_cmd *cmd = kzalloc(len, GFP_KERNEL); wmi_set_ie() local 1025 if (!cmd) wmi_set_ie() 1030 cmd->mgmt_frm_type = type; wmi_set_ie() 1032 cmd->ie_len = cpu_to_le16(ie_len); wmi_set_ie() 1033 memcpy(cmd->ie_info, ie, ie_len); wmi_set_ie() 1034 rc = wmi_send(wil, WMI_SET_APPIE_CMDID, cmd, len); wmi_set_ie() 1035 kfree(cmd); wmi_set_ie() 1076 struct wmi_cfg_rx_chain_cmd cmd = { wmi_rx_chain_add() local 1097 cmd.sniffer_cfg.mode = cpu_to_le32(WMI_SNIFFER_ON); wmi_rx_chain_add() 1099 cmd.sniffer_cfg.channel = ch->hw_value - 1; wmi_rx_chain_add() 1100 cmd.sniffer_cfg.phy_info_mode = wmi_rx_chain_add() 1102 cmd.sniffer_cfg.phy_support = wmi_rx_chain_add() 1110 cmd.l3_l4_ctrl |= (1 << L3_L4_CTRL_TCPIP_CHECKSUM_EN_POS); wmi_rx_chain_add() 1114 cmd.l2_802_3_offload_ctrl |= wmi_rx_chain_add() 1118 rc = wmi_call(wil, WMI_CFG_RX_CHAIN_CMDID, &cmd, sizeof(cmd), wmi_rx_chain_add() 1137 struct wmi_temp_sense_cmd cmd = { wmi_get_temperature() local 1147 rc = wmi_call(wil, WMI_TEMP_SENSE_CMDID, &cmd, sizeof(cmd), wmi_get_temperature() 1162 struct wmi_disconnect_sta_cmd cmd = { wmi_disconnect_sta() local 1166 ether_addr_copy(cmd.dst_mac, mac); wmi_disconnect_sta() 1170 return wmi_send(wil, WMI_DISCONNECT_STA_CMDID, &cmd, sizeof(cmd)); wmi_disconnect_sta() 1175 struct wmi_vring_ba_en_cmd cmd = { wmi_addba() local 1185 return wmi_send(wil, WMI_VRING_BA_EN_CMDID, &cmd, sizeof(cmd)); wmi_addba() 1190 struct wmi_vring_ba_dis_cmd cmd = { wmi_delba_tx() local 1198 return wmi_send(wil, WMI_VRING_BA_DIS_CMDID, &cmd, sizeof(cmd)); wmi_delba_tx() 1203 struct wmi_rcp_delba_cmd cmd = { wmi_delba_rx() local 1211 return wmi_send(wil, WMI_RCP_DELBA_CMDID, &cmd, sizeof(cmd)); wmi_delba_rx() 1218 struct wmi_rcp_addba_resp_cmd cmd = { wmi_addba_rx_resp() local 1240 rc = wmi_call(wil, WMI_RCP_ADDBA_RESP_CMDID, &cmd, sizeof(cmd), wmi_addba_rx_resp()
|
/linux-4.1.27/include/net/ |
H A D | wext.h | 9 int wext_handle_ioctl(struct net *net, struct ifreq *ifr, unsigned int cmd, 11 int compat_wext_handle_ioctl(struct net *net, unsigned int cmd, 17 static inline int wext_handle_ioctl(struct net *net, struct ifreq *ifr, unsigned int cmd, wext_handle_ioctl() argument 22 static inline int compat_wext_handle_ioctl(struct net *net, unsigned int cmd, compat_wext_handle_ioctl() argument 45 unsigned int cmd, struct iw_request_info *info, 48 unsigned int cmd, struct iw_request_info *info,
|
/linux-4.1.27/drivers/net/ethernet/chelsio/cxgb4vf/ |
H A D | t4vf_hw.c | 99 * @cmd: the command to write 116 int t4vf_wr_mbox_core(struct adapter *adapter, const void *cmd, int size, t4vf_wr_mbox_core() argument 160 for (i = 0, p = cmd; i < size; i += 8) t4vf_wr_mbox_core() 213 WARN_ON((be32_to_cpu(*(const __be32 *)cmd) t4vf_wr_mbox_core() 347 struct fw_reset_cmd cmd; t4vf_fw_reset() local 349 memset(&cmd, 0, sizeof(cmd)); t4vf_fw_reset() 350 cmd.op_to_write = cpu_to_be32(FW_CMD_OP_V(FW_RESET_CMD) | t4vf_fw_reset() 352 cmd.retval_len16 = cpu_to_be32(FW_LEN16(cmd)); t4vf_fw_reset() 353 return t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), NULL); t4vf_fw_reset() 370 struct fw_params_cmd cmd, rpl; t4vf_query_params() local 377 memset(&cmd, 0, sizeof(cmd)); t4vf_query_params() 378 cmd.op_to_vfn = cpu_to_be32(FW_CMD_OP_V(FW_PARAMS_CMD) | t4vf_query_params() 383 cmd.retval_len16 = cpu_to_be32(FW_CMD_LEN16_V(len16)); t4vf_query_params() 384 for (i = 0, p = &cmd.param[0]; i < nparams; i++, p++) t4vf_query_params() 387 ret = t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), &rpl); t4vf_query_params() 408 struct fw_params_cmd cmd; t4vf_set_params() local 415 memset(&cmd, 0, sizeof(cmd)); t4vf_set_params() 416 cmd.op_to_vfn = cpu_to_be32(FW_CMD_OP_V(FW_PARAMS_CMD) | t4vf_set_params() 421 cmd.retval_len16 = cpu_to_be32(FW_CMD_LEN16_V(len16)); t4vf_set_params() 422 for (i = 0, p = &cmd.param[0]; i < nparams; i++, p++) { t4vf_set_params() 427 return t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), NULL); t4vf_set_params() 702 struct fw_rss_glb_config_cmd cmd, rpl; t4vf_get_rss_glb_config() local 709 memset(&cmd, 0, sizeof(cmd)); t4vf_get_rss_glb_config() 710 cmd.op_to_write = cpu_to_be32(FW_CMD_OP_V(FW_RSS_GLB_CONFIG_CMD) | t4vf_get_rss_glb_config() 713 cmd.retval_len16 = cpu_to_be32(FW_LEN16(cmd)); t4vf_get_rss_glb_config() 714 v = t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), &rpl); t4vf_get_rss_glb_config() 777 struct fw_pfvf_cmd cmd, rpl; t4vf_get_vfres() local 785 memset(&cmd, 0, sizeof(cmd)); t4vf_get_vfres() 786 cmd.op_to_vfn = cpu_to_be32(FW_CMD_OP_V(FW_PFVF_CMD) | t4vf_get_vfres() 789 cmd.retval_len16 = cpu_to_be32(FW_LEN16(cmd)); t4vf_get_vfres() 790 v = t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), &rpl); t4vf_get_vfres() 830 struct fw_rss_vi_config_cmd cmd, rpl; t4vf_read_rss_vi_config() local 833 memset(&cmd, 0, sizeof(cmd)); t4vf_read_rss_vi_config() 834 cmd.op_to_viid = cpu_to_be32(FW_CMD_OP_V(FW_RSS_VI_CONFIG_CMD) | t4vf_read_rss_vi_config() 838 cmd.retval_len16 = cpu_to_be32(FW_LEN16(cmd)); t4vf_read_rss_vi_config() 839 v = t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), &rpl); t4vf_read_rss_vi_config() 881 struct fw_rss_vi_config_cmd cmd, rpl; t4vf_write_rss_vi_config() local 883 memset(&cmd, 0, sizeof(cmd)); t4vf_write_rss_vi_config() 884 cmd.op_to_viid = cpu_to_be32(FW_CMD_OP_V(FW_RSS_VI_CONFIG_CMD) | t4vf_write_rss_vi_config() 888 cmd.retval_len16 = cpu_to_be32(FW_LEN16(cmd)); t4vf_write_rss_vi_config() 905 cmd.u.basicvirtual.defaultq_to_udpen = cpu_to_be32(word); t4vf_write_rss_vi_config() 913 return t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), &rpl); t4vf_write_rss_vi_config() 936 struct fw_rss_ind_tbl_cmd cmd; t4vf_config_rss_range() local 941 memset(&cmd, 0, sizeof(cmd)); t4vf_config_rss_range() 942 cmd.op_to_viid = cpu_to_be32(FW_CMD_OP_V(FW_RSS_IND_TBL_CMD) | t4vf_config_rss_range() 946 cmd.retval_len16 = cpu_to_be32(FW_LEN16(cmd)); t4vf_config_rss_range() 955 __be32 *qp = &cmd.iq0_to_iq2; t4vf_config_rss_range() 963 cmd.niqid = cpu_to_be16(nq); t4vf_config_rss_range() 964 cmd.startidx = cpu_to_be16(start); t4vf_config_rss_range() 1005 ret = t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), NULL); t4vf_config_rss_range() 1023 struct fw_vi_cmd cmd, rpl; t4vf_alloc_vi() local 1030 memset(&cmd, 0, sizeof(cmd)); t4vf_alloc_vi() 1031 cmd.op_to_vfn = cpu_to_be32(FW_CMD_OP_V(FW_VI_CMD) | t4vf_alloc_vi() 1035 cmd.alloc_to_len16 = cpu_to_be32(FW_LEN16(cmd) | t4vf_alloc_vi() 1037 cmd.portid_pkd = FW_VI_CMD_PORTID_V(port_id); t4vf_alloc_vi() 1038 v = t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), &rpl); t4vf_alloc_vi() 1055 struct fw_vi_cmd cmd; t4vf_free_vi() local 1060 memset(&cmd, 0, sizeof(cmd)); t4vf_free_vi() 1061 cmd.op_to_vfn = cpu_to_be32(FW_CMD_OP_V(FW_VI_CMD) | t4vf_free_vi() 1064 cmd.alloc_to_len16 = cpu_to_be32(FW_LEN16(cmd) | t4vf_free_vi() 1066 cmd.type_viid = cpu_to_be16(FW_VI_CMD_VIID_V(viid)); t4vf_free_vi() 1067 return t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), NULL); t4vf_free_vi() 1082 struct fw_vi_enable_cmd cmd; t4vf_enable_vi() local 1084 memset(&cmd, 0, sizeof(cmd)); t4vf_enable_vi() 1085 cmd.op_to_viid = cpu_to_be32(FW_CMD_OP_V(FW_VI_ENABLE_CMD) | t4vf_enable_vi() 1089 cmd.ien_to_len16 = cpu_to_be32(FW_VI_ENABLE_CMD_IEN_V(rx_en) | t4vf_enable_vi() 1091 FW_LEN16(cmd)); t4vf_enable_vi() 1092 return t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), NULL); t4vf_enable_vi() 1106 struct fw_vi_enable_cmd cmd; t4vf_identify_port() local 1108 memset(&cmd, 0, sizeof(cmd)); t4vf_identify_port() 1109 cmd.op_to_viid = cpu_to_be32(FW_CMD_OP_V(FW_VI_ENABLE_CMD) | t4vf_identify_port() 1113 cmd.ien_to_len16 = cpu_to_be32(FW_VI_ENABLE_CMD_LED_F | t4vf_identify_port() 1114 FW_LEN16(cmd)); t4vf_identify_port() 1115 cmd.blinkdur = cpu_to_be16(nblinks); t4vf_identify_port() 1116 return t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), NULL); t4vf_identify_port() 1136 struct fw_vi_rxmode_cmd cmd; t4vf_set_rxmode() local 1150 memset(&cmd, 0, sizeof(cmd)); t4vf_set_rxmode() 1151 cmd.op_to_viid = cpu_to_be32(FW_CMD_OP_V(FW_VI_RXMODE_CMD) | t4vf_set_rxmode() 1155 cmd.retval_len16 = cpu_to_be32(FW_LEN16(cmd)); t4vf_set_rxmode() 1156 cmd.mtu_to_vlanexen = t4vf_set_rxmode() 1162 return t4vf_wr_mbox_core(adapter, &cmd, sizeof(cmd), NULL, sleep_ok); t4vf_set_rxmode() 1193 struct fw_vi_mac_cmd cmd, rpl; t4vf_alloc_mac_filt() local 1202 unsigned int fw_naddr = (rem < ARRAY_SIZE(cmd.u.exact) t4vf_alloc_mac_filt() 1204 : ARRAY_SIZE(cmd.u.exact)); t4vf_alloc_mac_filt() 1210 memset(&cmd, 0, sizeof(cmd)); t4vf_alloc_mac_filt() 1211 cmd.op_to_viid = cpu_to_be32(FW_CMD_OP_V(FW_VI_MAC_CMD) | t4vf_alloc_mac_filt() 1216 cmd.freemacs_to_len16 = t4vf_alloc_mac_filt() 1220 for (i = 0, p = cmd.u.exact; i < fw_naddr; i++, p++) { t4vf_alloc_mac_filt() 1228 ret = t4vf_wr_mbox_core(adapter, &cmd, sizeof(cmd), &rpl, t4vf_alloc_mac_filt() 1284 struct fw_vi_mac_cmd cmd, rpl; t4vf_change_mac() local 1285 struct fw_vi_mac_exact *p = &cmd.u.exact[0]; t4vf_change_mac() 1299 memset(&cmd, 0, sizeof(cmd)); t4vf_change_mac() 1300 cmd.op_to_viid = cpu_to_be32(FW_CMD_OP_V(FW_VI_MAC_CMD) | t4vf_change_mac() 1304 cmd.freemacs_to_len16 = cpu_to_be32(FW_CMD_LEN16_V(len16)); t4vf_change_mac() 1309 ret = t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), &rpl); t4vf_change_mac() 1332 struct fw_vi_mac_cmd cmd; t4vf_set_addr_hash() local 1336 memset(&cmd, 0, sizeof(cmd)); t4vf_set_addr_hash() 1337 cmd.op_to_viid = cpu_to_be32(FW_CMD_OP_V(FW_VI_MAC_CMD) | t4vf_set_addr_hash() 1341 cmd.freemacs_to_len16 = cpu_to_be32(FW_VI_MAC_CMD_HASHVECEN_F | t4vf_set_addr_hash() 1344 cmd.u.hash.hashvec = cpu_to_be64(vec); t4vf_set_addr_hash() 1345 return t4vf_wr_mbox_core(adapter, &cmd, sizeof(cmd), NULL, sleep_ok); t4vf_set_addr_hash() 1372 struct fw_vi_stats_cmd cmd, rpl; t4vf_get_port_stats() local 1378 memset(&cmd, 0, sizeof(cmd)); t4vf_get_port_stats() 1379 cmd.op_to_viid = cpu_to_be32(FW_CMD_OP_V(FW_VI_STATS_CMD) | t4vf_get_port_stats() 1383 cmd.retval_len16 = cpu_to_be32(FW_CMD_LEN16_V(len16)); t4vf_get_port_stats() 1384 cmd.u.ctl.nstats_ix = t4vf_get_port_stats() 1387 ret = t4vf_wr_mbox_ns(adapter, &cmd, len, &rpl); t4vf_get_port_stats() 1435 struct fw_iq_cmd cmd; t4vf_iq_free() local 1437 memset(&cmd, 0, sizeof(cmd)); t4vf_iq_free() 1438 cmd.op_to_vfn = cpu_to_be32(FW_CMD_OP_V(FW_IQ_CMD) | t4vf_iq_free() 1441 cmd.alloc_to_len16 = cpu_to_be32(FW_IQ_CMD_FREE_F | t4vf_iq_free() 1442 FW_LEN16(cmd)); t4vf_iq_free() 1443 cmd.type_to_iqandstindex = t4vf_iq_free() 1446 cmd.iqid = cpu_to_be16(iqid); t4vf_iq_free() 1447 cmd.fl0id = cpu_to_be16(fl0id); t4vf_iq_free() 1448 cmd.fl1id = cpu_to_be16(fl1id); t4vf_iq_free() 1449 return t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), NULL); t4vf_iq_free() 1461 struct fw_eq_eth_cmd cmd; t4vf_eth_eq_free() local 1463 memset(&cmd, 0, sizeof(cmd)); t4vf_eth_eq_free() 1464 cmd.op_to_vfn = cpu_to_be32(FW_CMD_OP_V(FW_EQ_ETH_CMD) | t4vf_eth_eq_free() 1467 cmd.alloc_to_len16 = cpu_to_be32(FW_EQ_ETH_CMD_FREE_F | t4vf_eth_eq_free() 1468 FW_LEN16(cmd)); t4vf_eth_eq_free() 1469 cmd.eqid_pkd = cpu_to_be32(FW_EQ_ETH_CMD_EQID_V(eqid)); t4vf_eth_eq_free() 1470 return t4vf_wr_mbox(adapter, &cmd, sizeof(cmd), NULL); t4vf_eth_eq_free()
|
/linux-4.1.27/drivers/isdn/act2000/ |
H A D | capi.c | 100 if ((hdr->cmd.cmd == valid_msg[i].cmd.cmd) && actcapi_chkhdr() 101 (hdr->cmd.subcmd == valid_msg[i].cmd.subcmd)) { actcapi_chkhdr() 113 m->hdr.cmd.cmd = c; \ 114 m->hdr.cmd.subcmd = s; \ 573 msg->hdr.cmd.cmd = 0x86; actcapi_data_b3_ind() 574 msg->hdr.cmd.subcmd = 0x03; actcapi_data_b3_ind() 639 isdn_ctrl cmd; actcapi_dispatch() local 645 ccmd = ((msg->hdr.cmd.cmd << 8) | msg->hdr.cmd.subcmd); actcapi_dispatch() 662 cmd.driver = card->myid; actcapi_dispatch() 663 cmd.command = ISDN_STAT_BSENT; actcapi_dispatch() 664 cmd.arg = chan; actcapi_dispatch() 665 cmd.parm.length = len; actcapi_dispatch() 666 card->interface.statcallb(&cmd); actcapi_dispatch() 676 cmd.driver = card->myid; actcapi_dispatch() 677 cmd.command = ISDN_STAT_DHUP; actcapi_dispatch() 678 cmd.arg = chan; actcapi_dispatch() 679 card->interface.statcallb(&cmd); actcapi_dispatch() 695 cmd.driver = card->myid; actcapi_dispatch() 696 cmd.command = ISDN_STAT_ICALL; actcapi_dispatch() 697 cmd.arg = chan; actcapi_dispatch() 698 cmd.parm.setup.si1 = msg->msg.connect_ind.si1; actcapi_dispatch() 699 cmd.parm.setup.si2 = msg->msg.connect_ind.si2; actcapi_dispatch() 701 strcpy(cmd.parm.setup.eazmsn, actcapi_dispatch() 704 cmd.parm.setup.eazmsn[0] = msg->msg.connect_ind.eaz; actcapi_dispatch() 705 cmd.parm.setup.eazmsn[1] = 0; actcapi_dispatch() 707 memset(cmd.parm.setup.phone, 0, sizeof(cmd.parm.setup.phone)); actcapi_dispatch() 708 memcpy(cmd.parm.setup.phone, msg->msg.connect_ind.addr.num, actcapi_dispatch() 710 cmd.parm.setup.plan = msg->msg.connect_ind.addr.tnp; actcapi_dispatch() 711 cmd.parm.setup.screen = 0; actcapi_dispatch() 712 if (card->interface.statcallb(&cmd) == 2) actcapi_dispatch() 747 cmd.driver = card->myid; actcapi_dispatch() 748 cmd.command = ISDN_STAT_BCONN; actcapi_dispatch() 749 cmd.arg = chan; actcapi_dispatch() 750 card->interface.statcallb(&cmd); actcapi_dispatch() 762 cmd.driver = card->myid; actcapi_dispatch() 763 cmd.command = ISDN_STAT_BHUP; actcapi_dispatch() 764 cmd.arg = chan; actcapi_dispatch() 765 card->interface.statcallb(&cmd); actcapi_dispatch() 770 cmd.driver = card->myid; actcapi_dispatch() 771 cmd.command = ISDN_STAT_BHUP; actcapi_dispatch() 772 cmd.arg = chan; actcapi_dispatch() 773 card->interface.statcallb(&cmd); actcapi_dispatch() 785 cmd.driver = card->myid; actcapi_dispatch() 786 cmd.command = ISDN_STAT_DHUP; actcapi_dispatch() 787 cmd.arg = chan; actcapi_dispatch() 788 card->interface.statcallb(&cmd); actcapi_dispatch() 807 cmd.driver = card->myid; actcapi_dispatch() 808 cmd.command = ISDN_STAT_DHUP; actcapi_dispatch() 809 cmd.arg = chan; actcapi_dispatch() 810 card->interface.statcallb(&cmd); actcapi_dispatch() 827 cmd.driver = card->myid; actcapi_dispatch() 828 cmd.command = ISDN_STAT_DHUP; actcapi_dispatch() 829 cmd.arg = chan; actcapi_dispatch() 830 card->interface.statcallb(&cmd); actcapi_dispatch() 845 cmd.driver = card->myid; actcapi_dispatch() 846 cmd.command = ISDN_STAT_DHUP; actcapi_dispatch() 847 cmd.arg = chan; actcapi_dispatch() 848 card->interface.statcallb(&cmd); actcapi_dispatch() 856 cmd.driver = card->myid; actcapi_dispatch() 857 cmd.command = ISDN_STAT_DCONN; actcapi_dispatch() 858 cmd.arg = chan; actcapi_dispatch() 859 card->interface.statcallb(&cmd); actcapi_dispatch() 862 cmd.driver = card->myid; actcapi_dispatch() 863 cmd.command = ISDN_STAT_DHUP; actcapi_dispatch() 864 cmd.arg = chan; actcapi_dispatch() 865 card->interface.statcallb(&cmd); actcapi_dispatch() 877 cmd.driver = card->myid; actcapi_dispatch() 878 cmd.command = ISDN_STAT_DHUP; actcapi_dispatch() 879 cmd.arg = chan; actcapi_dispatch() 880 card->interface.statcallb(&cmd); actcapi_dispatch() 921 cmd.command = ISDN_STAT_RUN; actcapi_dispatch() 922 cmd.driver = card->myid; actcapi_dispatch() 923 cmd.arg = 0; actcapi_dispatch() 927 card->interface.statcallb(&cmd); actcapi_dispatch() 1020 if (msg->hdr.cmd.cmd == 0x86) actcapi_debug_msg() 1028 if ((msg->hdr.cmd.cmd == valid_msg[i].cmd.cmd) && actcapi_debug_msg() 1029 (msg->hdr.cmd.subcmd == valid_msg[i].cmd.subcmd)) { actcapi_debug_msg() 1037 printk(KERN_DEBUG " Cmd = 0x%02x\n", msg->hdr.cmd.cmd); actcapi_debug_msg() 1038 printk(KERN_DEBUG " SubCmd = 0x%02x\n", msg->hdr.cmd.subcmd); actcapi_debug_msg()
|
/linux-4.1.27/include/target/ |
H A D | target_core_backend.h | 37 void (*transport_complete)(struct se_cmd *cmd, 41 sense_reason_t (*parse_cdb)(struct se_cmd *cmd); 59 sense_reason_t (*execute_rw)(struct se_cmd *cmd, struct scatterlist *, 61 sense_reason_t (*execute_sync_cache)(struct se_cmd *cmd); 62 sense_reason_t (*execute_write_same)(struct se_cmd *cmd); 63 sense_reason_t (*execute_write_same_unmap)(struct se_cmd *cmd); 64 sense_reason_t (*execute_unmap)(struct se_cmd *cmd); 73 sense_reason_t spc_parse_cdb(struct se_cmd *cmd, unsigned int *size); 74 sense_reason_t spc_emulate_report_luns(struct se_cmd *cmd); 78 sense_reason_t sbc_parse_cdb(struct se_cmd *cmd, struct sbc_ops *ops); 81 sector_t sbc_get_write_same_sectors(struct se_cmd *cmd); 82 sense_reason_t sbc_execute_unmap(struct se_cmd *cmd, 83 sense_reason_t (*do_unmap_fn)(struct se_cmd *cmd, void *priv, 139 sense_reason_t passthrough_parse_cdb(struct se_cmd *cmd, 140 sense_reason_t (*exec_cmd)(struct se_cmd *cmd));
|
/linux-4.1.27/net/tipc/ |
H A D | netlink.c | 72 .cmd = TIPC_NL_BEARER_DISABLE, 77 .cmd = TIPC_NL_BEARER_ENABLE, 82 .cmd = TIPC_NL_BEARER_GET, 88 .cmd = TIPC_NL_BEARER_SET, 93 .cmd = TIPC_NL_SOCK_GET, 98 .cmd = TIPC_NL_PUBL_GET, 103 .cmd = TIPC_NL_LINK_GET, 109 .cmd = TIPC_NL_LINK_SET, 114 .cmd = TIPC_NL_LINK_RESET_STATS, 119 .cmd = TIPC_NL_MEDIA_GET, 125 .cmd = TIPC_NL_MEDIA_SET, 130 .cmd = TIPC_NL_NODE_GET, 135 .cmd = TIPC_NL_NET_GET, 140 .cmd = TIPC_NL_NET_SET, 145 .cmd = TIPC_NL_NAME_TABLE_GET,
|
/linux-4.1.27/drivers/scsi/bfa/ |
H A D | bfad_bsg.c | 26 bfad_iocmd_ioc_enable(struct bfad_s *bfad, void *cmd) bfad_iocmd_ioc_enable() argument 28 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_ioc_enable() 49 bfad_iocmd_ioc_disable(struct bfad_s *bfad, void *cmd) bfad_iocmd_ioc_disable() argument 51 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_ioc_disable() 79 bfad_iocmd_ioc_get_info(struct bfad_s *bfad, void *cmd) bfad_iocmd_ioc_get_info() argument 82 struct bfa_bsg_ioc_info_s *iocmd = (struct bfa_bsg_ioc_info_s *)cmd; bfad_iocmd_ioc_get_info() 118 bfad_iocmd_ioc_get_attr(struct bfad_s *bfad, void *cmd) bfad_iocmd_ioc_get_attr() argument 120 struct bfa_bsg_ioc_attr_s *iocmd = (struct bfa_bsg_ioc_attr_s *)cmd; bfad_iocmd_ioc_get_attr() 147 bfad_iocmd_ioc_get_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_ioc_get_stats() argument 149 struct bfa_bsg_ioc_stats_s *iocmd = (struct bfa_bsg_ioc_stats_s *)cmd; bfad_iocmd_ioc_get_stats() 157 bfad_iocmd_ioc_get_fwstats(struct bfad_s *bfad, void *cmd, bfad_iocmd_ioc_get_fwstats() argument 161 (struct bfa_bsg_ioc_fwstats_s *)cmd; bfad_iocmd_ioc_get_fwstats() 187 bfad_iocmd_ioc_reset_stats(struct bfad_s *bfad, void *cmd, unsigned int v_cmd) bfad_iocmd_ioc_reset_stats() argument 189 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_ioc_reset_stats() 205 bfad_iocmd_ioc_set_name(struct bfad_s *bfad, void *cmd, unsigned int v_cmd) bfad_iocmd_ioc_set_name() argument 207 struct bfa_bsg_ioc_name_s *iocmd = (struct bfa_bsg_ioc_name_s *) cmd; bfad_iocmd_ioc_set_name() 219 bfad_iocmd_iocfc_get_attr(struct bfad_s *bfad, void *cmd) bfad_iocmd_iocfc_get_attr() argument 221 struct bfa_bsg_iocfc_attr_s *iocmd = (struct bfa_bsg_iocfc_attr_s *)cmd; bfad_iocmd_iocfc_get_attr() 230 bfad_iocmd_ioc_fw_sig_inv(struct bfad_s *bfad, void *cmd) bfad_iocmd_ioc_fw_sig_inv() argument 232 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_ioc_fw_sig_inv() 242 bfad_iocmd_iocfc_set_intr(struct bfad_s *bfad, void *cmd) bfad_iocmd_iocfc_set_intr() argument 244 struct bfa_bsg_iocfc_intr_s *iocmd = (struct bfa_bsg_iocfc_intr_s *)cmd; bfad_iocmd_iocfc_set_intr() 255 bfad_iocmd_port_enable(struct bfad_s *bfad, void *cmd) bfad_iocmd_port_enable() argument 257 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_port_enable() 276 bfad_iocmd_port_disable(struct bfad_s *bfad, void *cmd) bfad_iocmd_port_disable() argument 278 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_port_disable() 298 bfad_iocmd_port_get_attr(struct bfad_s *bfad, void *cmd) bfad_iocmd_port_get_attr() argument 300 struct bfa_bsg_port_attr_s *iocmd = (struct bfa_bsg_port_attr_s *)cmd; bfad_iocmd_port_get_attr() 326 bfad_iocmd_port_get_stats(struct bfad_s *bfad, void *cmd, bfad_iocmd_port_get_stats() argument 329 struct bfa_bsg_port_stats_s *iocmd = (struct bfa_bsg_port_stats_s *)cmd; bfad_iocmd_port_get_stats() 360 bfad_iocmd_port_reset_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_port_reset_stats() argument 362 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_port_reset_stats() 383 struct bfa_bsg_port_cfg_s *cmd = (struct bfa_bsg_port_cfg_s *)iocmd; bfad_iocmd_set_port_cfg() local 388 cmd->status = bfa_fcport_cfg_topology(&bfad->bfa, cmd->param); bfad_iocmd_set_port_cfg() 390 cmd->status = bfa_fcport_cfg_speed(&bfad->bfa, cmd->param); bfad_iocmd_set_port_cfg() 392 cmd->status = bfa_fcport_cfg_hardalpa(&bfad->bfa, cmd->param); bfad_iocmd_set_port_cfg() 394 cmd->status = bfa_fcport_clr_hardalpa(&bfad->bfa); bfad_iocmd_set_port_cfg() 401 bfad_iocmd_port_cfg_maxfrsize(struct bfad_s *bfad, void *cmd) bfad_iocmd_port_cfg_maxfrsize() argument 404 (struct bfa_bsg_port_cfg_maxfrsize_s *)cmd; bfad_iocmd_port_cfg_maxfrsize() 415 bfad_iocmd_port_cfg_bbcr(struct bfad_s *bfad, unsigned int cmd, void *pcmd) bfad_iocmd_port_cfg_bbcr() argument 423 if (cmd == IOCMD_PORT_BBCR_ENABLE) bfad_iocmd_port_cfg_bbcr() 425 else if (cmd == IOCMD_PORT_BBCR_DISABLE) bfad_iocmd_port_cfg_bbcr() 453 bfad_iocmd_lport_get_attr(struct bfad_s *bfad, void *cmd) bfad_iocmd_lport_get_attr() argument 456 struct bfa_bsg_lport_attr_s *iocmd = (struct bfa_bsg_lport_attr_s *)cmd; bfad_iocmd_lport_get_attr() 476 bfad_iocmd_lport_get_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_lport_get_stats() argument 480 (struct bfa_bsg_lport_stats_s *)cmd; bfad_iocmd_lport_get_stats() 500 bfad_iocmd_lport_reset_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_lport_reset_stats() argument 504 (struct bfa_bsg_reset_stats_s *)cmd; bfad_iocmd_lport_reset_stats() 534 bfad_iocmd_lport_get_iostats(struct bfad_s *bfad, void *cmd) bfad_iocmd_lport_get_iostats() argument 538 (struct bfa_bsg_lport_iostats_s *)cmd; bfad_iocmd_lport_get_iostats() 559 bfad_iocmd_lport_get_rports(struct bfad_s *bfad, void *cmd, bfad_iocmd_lport_get_rports() argument 563 (struct bfa_bsg_lport_get_rports_s *)cmd; bfad_iocmd_lport_get_rports() 601 bfad_iocmd_rport_get_attr(struct bfad_s *bfad, void *cmd) bfad_iocmd_rport_get_attr() argument 603 struct bfa_bsg_rport_attr_s *iocmd = (struct bfa_bsg_rport_attr_s *)cmd; bfad_iocmd_rport_get_attr() 638 bfad_iocmd_rport_get_addr(struct bfad_s *bfad, void *cmd) bfad_iocmd_rport_get_addr() argument 641 (struct bfa_bsg_rport_scsi_addr_s *)cmd; bfad_iocmd_rport_get_addr() 687 bfad_iocmd_rport_get_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_rport_get_stats() argument 690 (struct bfa_bsg_rport_stats_s *)cmd; bfad_iocmd_rport_get_stats() 728 bfad_iocmd_rport_clr_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_rport_clr_stats() argument 731 (struct bfa_bsg_rport_reset_stats_s *)cmd; bfad_iocmd_rport_clr_stats() 764 bfad_iocmd_rport_set_speed(struct bfad_s *bfad, void *cmd) bfad_iocmd_rport_set_speed() argument 767 (struct bfa_bsg_rport_set_speed_s *)cmd; bfad_iocmd_rport_set_speed() 800 bfad_iocmd_vport_get_attr(struct bfad_s *bfad, void *cmd) bfad_iocmd_vport_get_attr() argument 803 struct bfa_bsg_vport_attr_s *iocmd = (struct bfa_bsg_vport_attr_s *)cmd; bfad_iocmd_vport_get_attr() 823 bfad_iocmd_vport_get_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_vport_get_stats() argument 827 (struct bfa_bsg_vport_stats_s *)cmd; bfad_iocmd_vport_get_stats() 851 bfad_iocmd_vport_clr_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_vport_clr_stats() argument 855 (struct bfa_bsg_reset_stats_s *)cmd; bfad_iocmd_vport_clr_stats() 876 bfad_iocmd_fabric_get_lports(struct bfad_s *bfad, void *cmd, bfad_iocmd_fabric_get_lports() argument 880 (struct bfa_bsg_fabric_get_lports_s *)cmd; bfad_iocmd_fabric_get_lports() 931 bfad_iocmd_ratelim(struct bfad_s *bfad, unsigned int cmd, void *pcmd) bfad_iocmd_ratelim() argument 943 if (cmd == IOCMD_RATELIM_ENABLE) bfad_iocmd_ratelim() 945 else if (cmd == IOCMD_RATELIM_DISABLE) bfad_iocmd_ratelim() 960 bfad_iocmd_ratelim_speed(struct bfad_s *bfad, unsigned int cmd, void *pcmd) bfad_iocmd_ratelim_speed() argument 989 bfad_iocmd_cfg_fcpim(struct bfad_s *bfad, void *cmd) bfad_iocmd_cfg_fcpim() argument 991 struct bfa_bsg_fcpim_s *iocmd = (struct bfa_bsg_fcpim_s *)cmd; bfad_iocmd_cfg_fcpim() 1002 bfad_iocmd_fcpim_get_modstats(struct bfad_s *bfad, void *cmd) bfad_iocmd_fcpim_get_modstats() argument 1005 (struct bfa_bsg_fcpim_modstats_s *)cmd; bfad_iocmd_fcpim_get_modstats() 1024 bfad_iocmd_fcpim_clr_modstats(struct bfad_s *bfad, void *cmd) bfad_iocmd_fcpim_clr_modstats() argument 1027 (struct bfa_bsg_fcpim_modstatsclr_s *)cmd; bfad_iocmd_fcpim_clr_modstats() 1046 bfad_iocmd_fcpim_get_del_itn_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_fcpim_get_del_itn_stats() argument 1049 (struct bfa_bsg_fcpim_del_itn_stats_s *)cmd; bfad_iocmd_fcpim_get_del_itn_stats() 1063 bfad_iocmd_itnim_get_attr(struct bfad_s *bfad, void *cmd) bfad_iocmd_itnim_get_attr() argument 1065 struct bfa_bsg_itnim_attr_s *iocmd = (struct bfa_bsg_itnim_attr_s *)cmd; bfad_iocmd_itnim_get_attr() 1082 bfad_iocmd_itnim_get_iostats(struct bfad_s *bfad, void *cmd) bfad_iocmd_itnim_get_iostats() argument 1085 (struct bfa_bsg_itnim_iostats_s *)cmd; bfad_iocmd_itnim_get_iostats() 1113 bfad_iocmd_itnim_reset_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_itnim_reset_stats() argument 1116 (struct bfa_bsg_rport_reset_stats_s *)cmd; bfad_iocmd_itnim_reset_stats() 1142 bfad_iocmd_itnim_get_itnstats(struct bfad_s *bfad, void *cmd) bfad_iocmd_itnim_get_itnstats() argument 1145 (struct bfa_bsg_itnim_itnstats_s *)cmd; bfad_iocmd_itnim_get_itnstats() 1171 bfad_iocmd_fcport_enable(struct bfad_s *bfad, void *cmd) bfad_iocmd_fcport_enable() argument 1173 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_fcport_enable() 1184 bfad_iocmd_fcport_disable(struct bfad_s *bfad, void *cmd) bfad_iocmd_fcport_disable() argument 1186 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_fcport_disable() 1197 bfad_iocmd_ioc_get_pcifn_cfg(struct bfad_s *bfad, void *cmd) bfad_iocmd_ioc_get_pcifn_cfg() argument 1199 struct bfa_bsg_pcifn_cfg_s *iocmd = (struct bfa_bsg_pcifn_cfg_s *)cmd; bfad_iocmd_ioc_get_pcifn_cfg() 1219 bfad_iocmd_pcifn_create(struct bfad_s *bfad, void *cmd) bfad_iocmd_pcifn_create() argument 1221 struct bfa_bsg_pcifn_s *iocmd = (struct bfa_bsg_pcifn_s *)cmd; bfad_iocmd_pcifn_create() 1242 bfad_iocmd_pcifn_delete(struct bfad_s *bfad, void *cmd) bfad_iocmd_pcifn_delete() argument 1244 struct bfa_bsg_pcifn_s *iocmd = (struct bfa_bsg_pcifn_s *)cmd; bfad_iocmd_pcifn_delete() 1264 bfad_iocmd_pcifn_bw(struct bfad_s *bfad, void *cmd) bfad_iocmd_pcifn_bw() argument 1266 struct bfa_bsg_pcifn_s *iocmd = (struct bfa_bsg_pcifn_s *)cmd; bfad_iocmd_pcifn_bw() 1288 bfad_iocmd_adapter_cfg_mode(struct bfad_s *bfad, void *cmd) bfad_iocmd_adapter_cfg_mode() argument 1291 (struct bfa_bsg_adapter_cfg_mode_s *)cmd; bfad_iocmd_adapter_cfg_mode() 1311 bfad_iocmd_port_cfg_mode(struct bfad_s *bfad, void *cmd) bfad_iocmd_port_cfg_mode() argument 1314 (struct bfa_bsg_port_cfg_mode_s *)cmd; bfad_iocmd_port_cfg_mode() 1335 bfad_iocmd_ablk_optrom(struct bfad_s *bfad, unsigned int cmd, void *pcmd) bfad_iocmd_ablk_optrom() argument 1343 if (cmd == IOCMD_FLASH_ENABLE_OPTROM) bfad_iocmd_ablk_optrom() 1361 bfad_iocmd_faa_query(struct bfad_s *bfad, void *cmd) bfad_iocmd_faa_query() argument 1363 struct bfa_bsg_faa_attr_s *iocmd = (struct bfa_bsg_faa_attr_s *)cmd; bfad_iocmd_faa_query() 1384 bfad_iocmd_cee_attr(struct bfad_s *bfad, void *cmd, unsigned int payload_len) bfad_iocmd_cee_attr() argument 1387 (struct bfa_bsg_cee_attr_s *)cmd; bfad_iocmd_cee_attr() 1420 bfad_iocmd_cee_get_stats(struct bfad_s *bfad, void *cmd, bfad_iocmd_cee_get_stats() argument 1424 (struct bfa_bsg_cee_stats_s *)cmd; bfad_iocmd_cee_get_stats() 1457 bfad_iocmd_cee_reset_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_cee_reset_stats() argument 1459 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_cee_reset_stats() 1471 bfad_iocmd_sfp_media(struct bfad_s *bfad, void *cmd) bfad_iocmd_sfp_media() argument 1473 struct bfa_bsg_sfp_media_s *iocmd = (struct bfa_bsg_sfp_media_s *)cmd; bfad_iocmd_sfp_media() 1493 bfad_iocmd_sfp_speed(struct bfad_s *bfad, void *cmd) bfad_iocmd_sfp_speed() argument 1495 struct bfa_bsg_sfp_speed_s *iocmd = (struct bfa_bsg_sfp_speed_s *)cmd; bfad_iocmd_sfp_speed() 1514 bfad_iocmd_flash_get_attr(struct bfad_s *bfad, void *cmd) bfad_iocmd_flash_get_attr() argument 1517 (struct bfa_bsg_flash_attr_s *)cmd; bfad_iocmd_flash_get_attr() 1535 bfad_iocmd_flash_erase_part(struct bfad_s *bfad, void *cmd) bfad_iocmd_flash_erase_part() argument 1537 struct bfa_bsg_flash_s *iocmd = (struct bfa_bsg_flash_s *)cmd; bfad_iocmd_flash_erase_part() 1555 bfad_iocmd_flash_update_part(struct bfad_s *bfad, void *cmd, bfad_iocmd_flash_update_part() argument 1558 struct bfa_bsg_flash_s *iocmd = (struct bfa_bsg_flash_s *)cmd; bfad_iocmd_flash_update_part() 1587 bfad_iocmd_flash_read_part(struct bfad_s *bfad, void *cmd, bfad_iocmd_flash_read_part() argument 1590 struct bfa_bsg_flash_s *iocmd = (struct bfa_bsg_flash_s *)cmd; bfad_iocmd_flash_read_part() 1619 bfad_iocmd_diag_temp(struct bfad_s *bfad, void *cmd) bfad_iocmd_diag_temp() argument 1622 (struct bfa_bsg_diag_get_temp_s *)cmd; bfad_iocmd_diag_temp() 1641 bfad_iocmd_diag_memtest(struct bfad_s *bfad, void *cmd) bfad_iocmd_diag_memtest() argument 1644 (struct bfa_bsg_diag_memtest_s *)cmd; bfad_iocmd_diag_memtest() 1664 bfad_iocmd_diag_loopback(struct bfad_s *bfad, void *cmd) bfad_iocmd_diag_loopback() argument 1667 (struct bfa_bsg_diag_loopback_s *)cmd; bfad_iocmd_diag_loopback() 1687 bfad_iocmd_diag_fwping(struct bfad_s *bfad, void *cmd) bfad_iocmd_diag_fwping() argument 1690 (struct bfa_bsg_diag_fwping_s *)cmd; bfad_iocmd_diag_fwping() 1711 bfad_iocmd_diag_queuetest(struct bfad_s *bfad, void *cmd) bfad_iocmd_diag_queuetest() argument 1713 struct bfa_bsg_diag_qtest_s *iocmd = (struct bfa_bsg_diag_qtest_s *)cmd; bfad_iocmd_diag_queuetest() 1732 bfad_iocmd_diag_sfp(struct bfad_s *bfad, void *cmd) bfad_iocmd_diag_sfp() argument 1735 (struct bfa_bsg_sfp_show_s *)cmd; bfad_iocmd_diag_sfp() 1755 bfad_iocmd_diag_led(struct bfad_s *bfad, void *cmd) bfad_iocmd_diag_led() argument 1757 struct bfa_bsg_diag_led_s *iocmd = (struct bfa_bsg_diag_led_s *)cmd; bfad_iocmd_diag_led() 1768 bfad_iocmd_diag_beacon_lport(struct bfad_s *bfad, void *cmd) bfad_iocmd_diag_beacon_lport() argument 1771 (struct bfa_bsg_diag_beacon_s *)cmd; bfad_iocmd_diag_beacon_lport() 1783 bfad_iocmd_diag_lb_stat(struct bfad_s *bfad, void *cmd) bfad_iocmd_diag_lb_stat() argument 1786 (struct bfa_bsg_diag_lb_stat_s *)cmd; bfad_iocmd_diag_lb_stat() 1880 bfad_iocmd_phy_get_attr(struct bfad_s *bfad, void *cmd) bfad_iocmd_phy_get_attr() argument 1883 (struct bfa_bsg_phy_attr_s *)cmd; bfad_iocmd_phy_get_attr() 1901 bfad_iocmd_phy_get_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_phy_get_stats() argument 1904 (struct bfa_bsg_phy_stats_s *)cmd; bfad_iocmd_phy_get_stats() 1922 bfad_iocmd_phy_read(struct bfad_s *bfad, void *cmd, unsigned int payload_len) bfad_iocmd_phy_read() argument 1924 struct bfa_bsg_phy_s *iocmd = (struct bfa_bsg_phy_s *)cmd; bfad_iocmd_phy_read() 1954 bfad_iocmd_vhba_query(struct bfad_s *bfad, void *cmd) bfad_iocmd_vhba_query() argument 1957 (struct bfa_bsg_vhba_attr_s *)cmd; bfad_iocmd_vhba_query() 1973 bfad_iocmd_phy_update(struct bfad_s *bfad, void *cmd, unsigned int payload_len) bfad_iocmd_phy_update() argument 1975 struct bfa_bsg_phy_s *iocmd = (struct bfa_bsg_phy_s *)cmd; bfad_iocmd_phy_update() 2003 bfad_iocmd_porglog_get(struct bfad_s *bfad, void *cmd) bfad_iocmd_porglog_get() argument 2005 struct bfa_bsg_debug_s *iocmd = (struct bfa_bsg_debug_s *)cmd; bfad_iocmd_porglog_get() 2023 bfad_iocmd_debug_fw_core(struct bfad_s *bfad, void *cmd, bfad_iocmd_debug_fw_core() argument 2026 struct bfa_bsg_debug_s *iocmd = (struct bfa_bsg_debug_s *)cmd; bfad_iocmd_debug_fw_core() 2057 bfad_iocmd_debug_ctl(struct bfad_s *bfad, void *cmd, unsigned int v_cmd) bfad_iocmd_debug_ctl() argument 2059 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_debug_ctl() 2078 bfad_iocmd_porglog_ctl(struct bfad_s *bfad, void *cmd) bfad_iocmd_porglog_ctl() argument 2080 struct bfa_bsg_portlogctl_s *iocmd = (struct bfa_bsg_portlogctl_s *)cmd; bfad_iocmd_porglog_ctl() 2092 bfad_iocmd_fcpim_cfg_profile(struct bfad_s *bfad, void *cmd, unsigned int v_cmd) bfad_iocmd_fcpim_cfg_profile() argument 2095 (struct bfa_bsg_fcpim_profile_s *)cmd; bfad_iocmd_fcpim_cfg_profile() 2111 bfad_iocmd_itnim_get_ioprofile(struct bfad_s *bfad, void *cmd) bfad_iocmd_itnim_get_ioprofile() argument 2114 (struct bfa_bsg_itnim_ioprofile_s *)cmd; bfad_iocmd_itnim_get_ioprofile() 2138 bfad_iocmd_fcport_get_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_fcport_get_stats() argument 2141 (struct bfa_bsg_fcport_stats_s *)cmd; bfad_iocmd_fcport_get_stats() 2163 bfad_iocmd_fcport_reset_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_fcport_reset_stats() argument 2165 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_fcport_reset_stats() 2187 bfad_iocmd_boot_cfg(struct bfad_s *bfad, void *cmd) bfad_iocmd_boot_cfg() argument 2189 struct bfa_bsg_boot_s *iocmd = (struct bfa_bsg_boot_s *)cmd; bfad_iocmd_boot_cfg() 2209 bfad_iocmd_boot_query(struct bfad_s *bfad, void *cmd) bfad_iocmd_boot_query() argument 2211 struct bfa_bsg_boot_s *iocmd = (struct bfa_bsg_boot_s *)cmd; bfad_iocmd_boot_query() 2231 bfad_iocmd_preboot_query(struct bfad_s *bfad, void *cmd) bfad_iocmd_preboot_query() argument 2233 struct bfa_bsg_preboot_s *iocmd = (struct bfa_bsg_preboot_s *)cmd; bfad_iocmd_preboot_query() 2250 bfad_iocmd_ethboot_cfg(struct bfad_s *bfad, void *cmd) bfad_iocmd_ethboot_cfg() argument 2252 struct bfa_bsg_ethboot_s *iocmd = (struct bfa_bsg_ethboot_s *)cmd; bfad_iocmd_ethboot_cfg() 2273 bfad_iocmd_ethboot_query(struct bfad_s *bfad, void *cmd) bfad_iocmd_ethboot_query() argument 2275 struct bfa_bsg_ethboot_s *iocmd = (struct bfa_bsg_ethboot_s *)cmd; bfad_iocmd_ethboot_query() 2296 bfad_iocmd_cfg_trunk(struct bfad_s *bfad, void *cmd, unsigned int v_cmd) bfad_iocmd_cfg_trunk() argument 2298 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_cfg_trunk() 2336 bfad_iocmd_trunk_get_attr(struct bfad_s *bfad, void *cmd) bfad_iocmd_trunk_get_attr() argument 2338 struct bfa_bsg_trunk_attr_s *iocmd = (struct bfa_bsg_trunk_attr_s *)cmd; bfad_iocmd_trunk_get_attr() 2359 bfad_iocmd_qos(struct bfad_s *bfad, void *cmd, unsigned int v_cmd) bfad_iocmd_qos() argument 2361 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_qos() 2387 bfad_iocmd_qos_get_attr(struct bfad_s *bfad, void *cmd) bfad_iocmd_qos_get_attr() argument 2389 struct bfa_bsg_qos_attr_s *iocmd = (struct bfa_bsg_qos_attr_s *)cmd; bfad_iocmd_qos_get_attr() 2413 bfad_iocmd_qos_get_vc_attr(struct bfad_s *bfad, void *cmd) bfad_iocmd_qos_get_vc_attr() argument 2416 (struct bfa_bsg_qos_vc_attr_s *)cmd; bfad_iocmd_qos_get_vc_attr() 2445 bfad_iocmd_qos_get_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_qos_get_stats() argument 2448 (struct bfa_bsg_fcport_stats_s *)cmd; bfad_iocmd_qos_get_stats() 2477 bfad_iocmd_qos_reset_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_qos_reset_stats() argument 2479 struct bfa_bsg_gen_s *iocmd = (struct bfa_bsg_gen_s *)cmd; bfad_iocmd_qos_reset_stats() 2508 bfad_iocmd_vf_get_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_vf_get_stats() argument 2511 (struct bfa_bsg_vf_stats_s *)cmd; bfad_iocmd_vf_get_stats() 2531 bfad_iocmd_vf_clr_stats(struct bfad_s *bfad, void *cmd) bfad_iocmd_vf_clr_stats() argument 2534 (struct bfa_bsg_vf_reset_stats_s *)cmd; bfad_iocmd_vf_clr_stats() 2591 bfad_iocmd_fcpim_lunmask_query(struct bfad_s *bfad, void *cmd) bfad_iocmd_fcpim_lunmask_query() argument 2594 (struct bfa_bsg_fcpim_lunmask_query_s *)cmd; bfad_iocmd_fcpim_lunmask_query() 2605 bfad_iocmd_fcpim_cfg_lunmask(struct bfad_s *bfad, void *cmd, unsigned int v_cmd) bfad_iocmd_fcpim_cfg_lunmask() argument 2608 (struct bfa_bsg_fcpim_lunmask_s *)cmd; bfad_iocmd_fcpim_cfg_lunmask() 2624 bfad_iocmd_fcpim_throttle_query(struct bfad_s *bfad, void *cmd) bfad_iocmd_fcpim_throttle_query() argument 2627 (struct bfa_bsg_fcpim_throttle_s *)cmd; bfad_iocmd_fcpim_throttle_query() 2639 bfad_iocmd_fcpim_throttle_set(struct bfad_s *bfad, void *cmd) bfad_iocmd_fcpim_throttle_set() argument 2642 (struct bfa_bsg_fcpim_throttle_s *)cmd; bfad_iocmd_fcpim_throttle_set() 2654 bfad_iocmd_tfru_read(struct bfad_s *bfad, void *cmd) bfad_iocmd_tfru_read() argument 2657 (struct bfa_bsg_tfru_s *)cmd; bfad_iocmd_tfru_read() 2676 bfad_iocmd_tfru_write(struct bfad_s *bfad, void *cmd) bfad_iocmd_tfru_write() argument 2679 (struct bfa_bsg_tfru_s *)cmd; bfad_iocmd_tfru_write() 2698 bfad_iocmd_fruvpd_read(struct bfad_s *bfad, void *cmd) bfad_iocmd_fruvpd_read() argument 2701 (struct bfa_bsg_fruvpd_s *)cmd; bfad_iocmd_fruvpd_read() 2720 bfad_iocmd_fruvpd_update(struct bfad_s *bfad, void *cmd) bfad_iocmd_fruvpd_update() argument 2723 (struct bfa_bsg_fruvpd_s *)cmd; bfad_iocmd_fruvpd_update() 2742 bfad_iocmd_fruvpd_get_max_size(struct bfad_s *bfad, void *cmd) bfad_iocmd_fruvpd_get_max_size() argument 2745 (struct bfa_bsg_fruvpd_max_size_s *)cmd; bfad_iocmd_fruvpd_get_max_size() 2757 bfad_iocmd_handler(struct bfad_s *bfad, unsigned int cmd, void *iocmd, bfad_iocmd_handler() argument 2762 switch (cmd) { bfad_iocmd_handler() 2783 rc = bfad_iocmd_ioc_reset_stats(bfad, iocmd, cmd); bfad_iocmd_handler() 2787 rc = bfad_iocmd_ioc_set_name(bfad, iocmd, cmd); bfad_iocmd_handler() 2814 rc = bfad_iocmd_set_port_cfg(bfad, iocmd, cmd); bfad_iocmd_handler() 2821 rc = bfad_iocmd_port_cfg_bbcr(bfad, cmd, iocmd); bfad_iocmd_handler() 2870 rc = bfad_iocmd_ratelim(bfad, cmd, iocmd); bfad_iocmd_handler() 2873 rc = bfad_iocmd_ratelim_speed(bfad, cmd, iocmd); bfad_iocmd_handler() 2928 rc = bfad_iocmd_ablk_optrom(bfad, cmd, iocmd); bfad_iocmd_handler() 3024 rc = bfad_iocmd_debug_ctl(bfad, iocmd, cmd); bfad_iocmd_handler() 3031 rc = bfad_iocmd_fcpim_cfg_profile(bfad, iocmd, cmd); bfad_iocmd_handler() 3059 rc = bfad_iocmd_cfg_trunk(bfad, iocmd, cmd); bfad_iocmd_handler() 3066 rc = bfad_iocmd_qos(bfad, iocmd, cmd); bfad_iocmd_handler() 3092 rc = bfad_iocmd_lunmask(bfad, iocmd, cmd); bfad_iocmd_handler() 3099 rc = bfad_iocmd_fcpim_cfg_lunmask(bfad, iocmd, cmd); bfad_iocmd_handler() 3413 /* Check if the port is online before sending FC Passthru cmd */ bfad_im_bsg_els_ct_request()
|
/linux-4.1.27/drivers/isdn/isdnloop/ |
H A D | isdnloop.c | 59 isdn_ctrl cmd; isdnloop_bchan_send() local 67 cmd.driver = card->myid; isdnloop_bchan_send() 68 cmd.arg = ch; isdnloop_bchan_send() 76 cmd.command = ISDN_STAT_BSENT; isdnloop_bchan_send() 77 cmd.parm.length = len; isdnloop_bchan_send() 78 card->interface.statcallb(&cmd); isdnloop_bchan_send() 119 * cmd = pointer to struct to be filled. 122 isdnloop_parse_setup(char *setup, isdn_ctrl *cmd) isdnloop_parse_setup() argument 128 strlcpy(cmd->parm.setup.phone, t, sizeof(cmd->parm.setup.phone)); isdnloop_parse_setup() 132 cmd->parm.setup.si1 = 0; isdnloop_parse_setup() 134 cmd->parm.setup.si1 = simple_strtoul(t, NULL, 10); isdnloop_parse_setup() 138 cmd->parm.setup.si2 = 0; isdnloop_parse_setup() 140 cmd->parm.setup.si2 = isdnloop_parse_setup() 142 strlcpy(cmd->parm.setup.eazmsn, s, sizeof(cmd->parm.setup.eazmsn)); isdnloop_parse_setup() 143 cmd->parm.setup.plan = 0; isdnloop_parse_setup() 144 cmd->parm.setup.screen = 0; isdnloop_parse_setup() 189 isdn_ctrl cmd; isdnloop_parse_status() local 193 cmd.command = s->command; isdnloop_parse_status() 201 cmd.driver = card->myid; isdnloop_parse_status() 202 cmd.arg = channel; isdnloop_parse_status() 217 isdnloop_parse_setup(status + 6, &cmd); isdnloop_parse_status() 221 sprintf(cmd.parm.setup.phone, "LEASED%d", card->myid); isdnloop_parse_status() 222 sprintf(cmd.parm.setup.eazmsn, "%d", channel + 1); isdnloop_parse_status() 223 cmd.parm.setup.si1 = 7; isdnloop_parse_status() 224 cmd.parm.setup.si2 = 0; isdnloop_parse_status() 225 cmd.parm.setup.plan = 0; isdnloop_parse_status() 226 cmd.parm.setup.screen = 0; isdnloop_parse_status() 230 strlcpy(cmd.parm.num, status + 3, sizeof(cmd.parm.num)); isdnloop_parse_status() 234 snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%d", isdnloop_parse_status() 241 snprintf(cmd.parm.num, sizeof(cmd.parm.num), "%s%c%c", isdnloop_parse_status() 244 strlcpy(cmd.parm.num, status + 1, sizeof(cmd.parm.num)); isdnloop_parse_status() 250 cmd.arg = 0; isdnloop_parse_status() 251 cmd.driver = card->myid; isdnloop_parse_status() 252 card->interface.statcallb(&cmd); isdnloop_parse_status() 253 cmd.command = ISDN_STAT_DHUP; isdnloop_parse_status() 254 cmd.arg = 0; isdnloop_parse_status() 255 cmd.driver = card->myid; isdnloop_parse_status() 256 card->interface.statcallb(&cmd); isdnloop_parse_status() 257 cmd.command = ISDN_STAT_BHUP; isdnloop_parse_status() 260 cmd.arg = 1; isdnloop_parse_status() 261 cmd.driver = card->myid; isdnloop_parse_status() 262 card->interface.statcallb(&cmd); isdnloop_parse_status() 263 cmd.command = ISDN_STAT_DHUP; isdnloop_parse_status() 264 cmd.arg = 1; isdnloop_parse_status() 265 cmd.driver = card->myid; isdnloop_parse_status() 268 card->interface.statcallb(&cmd); isdnloop_parse_status() 318 isdn_ctrl cmd; isdnloop_polldchan() local 365 cmd.command = ISDN_STAT_STAVAIL; isdnloop_polldchan() 366 cmd.driver = card->myid; isdnloop_polldchan() 367 cmd.arg = avail; isdnloop_polldchan() 368 card->interface.statcallb(&cmd); isdnloop_polldchan() 658 * cmd = pointer to struct to be filled when parsing setup. 666 isdnloop_try_call(isdnloop_card *card, char *p, int lch, isdn_ctrl *cmd) isdnloop_try_call() argument 676 isdnloop_parse_setup(p, cmd); isdnloop_try_call() 686 if (!(strcmp(cc->s0num[i], cmd->parm.setup.phone))) isdnloop_try_call() 693 if (!(strcmp(nbuf, cmd->parm.setup.phone))) isdnloop_try_call() 703 if (!(si2bit[cmd->parm.setup.si1] & cc->sil[ch])) { isdnloop_try_call() 780 isdn_ctrl cmd; isdnloop_parse_cmd() local 865 switch (isdnloop_try_call(card, p, ch - 1, &cmd)) { isdnloop_parse_cmd() 870 isdnloop_vstphone(card, cmd.parm.setup.eazmsn, 1), isdnloop_parse_cmd() 871 cmd.parm.setup.si1, isdnloop_parse_cmd() 872 cmd.parm.setup.si2, isdnloop_parse_cmd() 874 cmd.parm.setup.phone, 0)); isdnloop_parse_cmd() 970 isdn_ctrl cmd; isdnloop_writecmd() local 1005 cmd.command = ISDN_STAT_STAVAIL; isdnloop_writecmd() 1006 cmd.driver = card->myid; isdnloop_writecmd() 1007 cmd.arg = ocount; isdnloop_writecmd() 1008 card->interface.statcallb(&cmd); isdnloop_writecmd() 1019 isdn_ctrl cmd; isdnloop_stopcard() local 1028 cmd.command = ISDN_STAT_STOP; isdnloop_stopcard() 1029 cmd.driver = card->myid; isdnloop_stopcard() 1030 card->interface.statcallb(&cmd); isdnloop_stopcard() 1135 isdn_ctrl cmd; isdnloop_command() local 1168 cmd.command = ISDN_STAT_RUN; isdnloop_command() 1169 cmd.driver = card->myid; isdnloop_command() 1170 cmd.arg = 0; isdnloop_command() 1171 card->interface.statcallb(&cmd); isdnloop_command() 1181 cmd.command = ISDN_STAT_RUN; isdnloop_command() 1182 cmd.driver = card->myid; isdnloop_command() 1183 cmd.arg = 0; isdnloop_command() 1184 card->interface.statcallb(&cmd); isdnloop_command() 1510 isdn_ctrl cmd; isdnloop_exit() local 1517 cmd.command = ISDN_STAT_UNLOAD; isdnloop_exit() 1518 cmd.driver = card->myid; isdnloop_exit() 1519 card->interface.statcallb(&cmd); isdnloop_exit()
|
/linux-4.1.27/drivers/net/wireless/mwifiex/ |
H A D | sta_cmd.c | 44 struct host_cmd_ds_command *cmd, u16 cmd_action) mwifiex_cmd_802_11_rssi_info() 46 cmd->command = cpu_to_le16(HostCmd_CMD_RSSI_INFO); mwifiex_cmd_802_11_rssi_info() 47 cmd->size = cpu_to_le16(sizeof(struct host_cmd_ds_802_11_rssi_info) + mwifiex_cmd_802_11_rssi_info() 49 cmd->params.rssi_info.action = cpu_to_le16(cmd_action); mwifiex_cmd_802_11_rssi_info() 50 cmd->params.rssi_info.ndata = cpu_to_le16(priv->data_avg_factor); mwifiex_cmd_802_11_rssi_info() 51 cmd->params.rssi_info.nbcn = cpu_to_le16(priv->bcn_avg_factor); mwifiex_cmd_802_11_rssi_info() 74 struct host_cmd_ds_command *cmd, mwifiex_cmd_mac_control() 77 struct host_cmd_ds_mac_control *mac_ctrl = &cmd->params.mac_ctrl; mwifiex_cmd_mac_control() 81 "mac_control: only support set cmd\n"); mwifiex_cmd_mac_control() 85 cmd->command = cpu_to_le16(HostCmd_CMD_MAC_CONTROL); mwifiex_cmd_mac_control() 86 cmd->size = mwifiex_cmd_mac_control() 109 struct host_cmd_ds_command *cmd, mwifiex_cmd_802_11_snmp_mib() 113 struct host_cmd_ds_802_11_snmp_mib *snmp_mib = &cmd->params.smib; mwifiex_cmd_802_11_snmp_mib() 115 dev_dbg(priv->adapter->dev, "cmd: SNMP_CMD: cmd_oid = 0x%x\n", cmd_oid); mwifiex_cmd_802_11_snmp_mib() 116 cmd->command = cpu_to_le16(HostCmd_CMD_802_11_SNMP_MIB); mwifiex_cmd_802_11_snmp_mib() 117 cmd->size = cpu_to_le16(sizeof(struct host_cmd_ds_802_11_snmp_mib) mwifiex_cmd_802_11_snmp_mib() 124 le16_add_cpu(&cmd->size, MAX_SNMP_BUF_SIZE); mwifiex_cmd_802_11_snmp_mib() 129 le16_add_cpu(&cmd->size, sizeof(u16)); mwifiex_cmd_802_11_snmp_mib() 133 "cmd: SNMP_CMD: Action=0x%x, OID=0x%x, OIDSize=0x%x," mwifiex_cmd_802_11_snmp_mib() 148 mwifiex_cmd_802_11_get_log(struct host_cmd_ds_command *cmd) mwifiex_cmd_802_11_get_log() argument 150 cmd->command = cpu_to_le16(HostCmd_CMD_802_11_GET_LOG); mwifiex_cmd_802_11_get_log() 151 cmd->size = cpu_to_le16(sizeof(struct host_cmd_ds_802_11_get_log) + mwifiex_cmd_802_11_get_log() 166 struct host_cmd_ds_command *cmd, mwifiex_cmd_tx_rate_cfg() 169 struct host_cmd_ds_tx_rate_cfg *rate_cfg = &cmd->params.tx_rate_cfg; mwifiex_cmd_tx_rate_cfg() 174 cmd->command = cpu_to_le16(HostCmd_CMD_TX_RATE_CFG); mwifiex_cmd_tx_rate_cfg() 224 cmd->size = mwifiex_cmd_tx_rate_cfg() 241 static int mwifiex_cmd_tx_power_cfg(struct host_cmd_ds_command *cmd, mwifiex_cmd_tx_power_cfg() argument 246 struct host_cmd_ds_txpwr_cfg *cmd_txp_cfg = &cmd->params.txp_cfg; mwifiex_cmd_tx_power_cfg() 248 cmd->command = cpu_to_le16(HostCmd_CMD_TXPWR_CFG); mwifiex_cmd_tx_power_cfg() 249 cmd->size = mwifiex_cmd_tx_power_cfg() 265 cmd->size = cpu_to_le16(le16_to_cpu(cmd->size) + mwifiex_cmd_tx_power_cfg() 285 struct host_cmd_ds_command *cmd, mwifiex_cmd_rf_tx_power() 288 struct host_cmd_ds_rf_tx_pwr *txp = &cmd->params.txp; mwifiex_cmd_rf_tx_power() 290 cmd->size = cpu_to_le16(sizeof(struct host_cmd_ds_rf_tx_pwr) mwifiex_cmd_rf_tx_power() 292 cmd->command = cpu_to_le16(HostCmd_CMD_RF_TX_PWR); mwifiex_cmd_rf_tx_power() 302 struct host_cmd_ds_command *cmd, mwifiex_cmd_rf_antenna() 306 struct host_cmd_ds_rf_ant_mimo *ant_mimo = &cmd->params.ant_mimo; mwifiex_cmd_rf_antenna() 307 struct host_cmd_ds_rf_ant_siso *ant_siso = &cmd->params.ant_siso; mwifiex_cmd_rf_antenna() 309 cmd->command = cpu_to_le16(HostCmd_CMD_RF_ANTENNA); mwifiex_cmd_rf_antenna() 315 cmd->size = cpu_to_le16(sizeof(struct host_cmd_ds_rf_ant_mimo) + mwifiex_cmd_rf_antenna() 322 cmd->size = cpu_to_le16(sizeof(struct host_cmd_ds_rf_ant_siso) + mwifiex_cmd_rf_antenna() 342 struct host_cmd_ds_command *cmd, mwifiex_cmd_802_11_hs_cfg() 347 struct host_cmd_ds_802_11_hs_cfg_enh *hs_cfg = &cmd->params.opt_hs_cfg; mwifiex_cmd_802_11_hs_cfg() 353 cmd->command = cpu_to_le16(HostCmd_CMD_802_11_HS_CFG_ENH); mwifiex_cmd_802_11_hs_cfg() 360 "cmd: Attach %d bytes ArpFilter to HSCfg cmd\n", mwifiex_cmd_802_11_hs_cfg() 365 cmd->size = cpu_to_le16 mwifiex_cmd_802_11_hs_cfg() 370 cmd->size = cpu_to_le16(S_DS_GEN + sizeof(struct mwifiex_cmd_802_11_hs_cfg() 382 "cmd: HS_CFG_CMD: condition:0x%x gpio:0x%x gap:0x%x\n", mwifiex_cmd_802_11_hs_cfg() 400 struct host_cmd_ds_command *cmd, mwifiex_cmd_802_11_mac_address() 403 cmd->command = cpu_to_le16(HostCmd_CMD_802_11_MAC_ADDRESS); mwifiex_cmd_802_11_mac_address() 404 cmd->size = cpu_to_le16(sizeof(struct host_cmd_ds_802_11_mac_address) + mwifiex_cmd_802_11_mac_address() 406 cmd->result = 0; mwifiex_cmd_802_11_mac_address() 408 cmd->params.mac_addr.action = cpu_to_le16(cmd_action); mwifiex_cmd_802_11_mac_address() 411 memcpy(cmd->params.mac_addr.mac_addr, priv->curr_addr, mwifiex_cmd_802_11_mac_address() 425 mwifiex_cmd_mac_multicast_adr(struct host_cmd_ds_command *cmd, mwifiex_cmd_mac_multicast_adr() argument 429 struct host_cmd_ds_mac_multicast_adr *mcast_addr = &cmd->params.mc_addr; mwifiex_cmd_mac_multicast_adr() 431 cmd->size = cpu_to_le16(sizeof(struct host_cmd_ds_mac_multicast_adr) + mwifiex_cmd_mac_multicast_adr() 433 cmd->command = cpu_to_le16(HostCmd_CMD_MAC_MULTICAST_ADR); mwifiex_cmd_mac_multicast_adr() 453 struct host_cmd_ds_command *cmd, mwifiex_cmd_802_11_deauthenticate() 456 struct host_cmd_ds_802_11_deauthenticate *deauth = &cmd->params.deauth; mwifiex_cmd_802_11_deauthenticate() 458 cmd->command = cpu_to_le16(HostCmd_CMD_802_11_DEAUTHENTICATE); mwifiex_cmd_802_11_deauthenticate() 459 cmd->size = cpu_to_le16(sizeof(struct host_cmd_ds_802_11_deauthenticate) mwifiex_cmd_802_11_deauthenticate() 465 dev_dbg(priv->adapter->dev, "cmd: Deauth: %pM\n", deauth->mac_addr); mwifiex_cmd_802_11_deauthenticate() 479 static int mwifiex_cmd_802_11_ad_hoc_stop(struct host_cmd_ds_command *cmd) mwifiex_cmd_802_11_ad_hoc_stop() argument 481 cmd->command = cpu_to_le16(HostCmd_CMD_802_11_AD_HOC_STOP); mwifiex_cmd_802_11_ad_hoc_stop() 482 cmd->size = cpu_to_le16(S_DS_GEN); mwifiex_cmd_802_11_ad_hoc_stop() 557 struct host_cmd_ds_command *cmd, mwifiex_set_aes_key_v2() 593 cmd->size = cpu_to_le16(size); mwifiex_set_aes_key_v2() 608 struct host_cmd_ds_command *cmd, mwifiex_cmd_802_11_key_material_v2() 616 &cmd->params.key_material_v2; mwifiex_cmd_802_11_key_material_v2() 618 cmd->command = cpu_to_le16(HostCmd_CMD_802_11_KEY_MATERIAL); mwifiex_cmd_802_11_key_material_v2() 639 cmd->size = cpu_to_le16(sizeof(struct mwifiex_ie_types_header) + mwifiex_cmd_802_11_key_material_v2() 657 cmd->size = cpu_to_le16(sizeof(struct mwifiex_ie_types_header) + mwifiex_cmd_802_11_key_material_v2() 702 cmd->size = cpu_to_le16(sizeof(struct mwifiex_ie_types_header) + mwifiex_cmd_802_11_key_material_v2() 730 cmd->size = cpu_to_le16(sizeof(struct mwifiex_ie_types_header) + mwifiex_cmd_802_11_key_material_v2() 750 return mwifiex_set_aes_key_v2(priv, cmd, enc_key, km); mwifiex_cmd_802_11_key_material_v2() 765 cmd->size = cpu_to_le16(sizeof(struct mwifiex_ie_types_header) + mwifiex_cmd_802_11_key_material_v2() 784 struct host_cmd_ds_command *cmd, mwifiex_cmd_802_11_key_material_v1() 789 &cmd->params.key_material; mwifiex_cmd_802_11_key_material_v1() 794 cmd->command = cpu_to_le16(HostCmd_CMD_802_11_KEY_MATERIAL); mwifiex_cmd_802_11_key_material_v1() 798 cmd->size = mwifiex_cmd_802_11_key_material_v1() 810 cmd->size = cpu_to_le16(key_param_len + mwifiex_cmd_802_11_key_material_v1() 857 cmd->size = cpu_to_le16(sizeof(key_material->action) mwifiex_cmd_802_11_key_material_v1() 863 dev_dbg(priv->adapter->dev, "cmd: CMAC_AES\n"); mwifiex_cmd_802_11_key_material_v1() 876 dev_dbg(priv->adapter->dev, "cmd: WPA_AES\n"); mwifiex_cmd_802_11_key_material_v1() 895 dev_dbg(priv->adapter->dev, "cmd: WPA_TKIP\n"); mwifiex_cmd_802_11_key_material_v1() 942 cmd->size = cpu_to_le16(sizeof(key_material->action) + S_DS_GEN mwifiex_cmd_802_11_key_material_v1() 959 cmd->size = cpu_to_le16(cmd_size); mwifiex_cmd_802_11_key_material_v1() 968 struct host_cmd_ds_command *cmd, mwifiex_cmd_802_11_key_material() 973 return mwifiex_cmd_802_11_key_material_v2(priv, cmd, mwifiex_cmd_802_11_key_material() 978 return mwifiex_cmd_802_11_key_material_v1(priv, cmd, mwifiex_cmd_802_11_key_material() 992 struct host_cmd_ds_command *cmd, mwifiex_cmd_802_11d_domain_info() 997 &cmd->params.domain_info; mwifiex_cmd_802_11d_domain_info() 1004 cmd->command = cpu_to_le16(HostCmd_CMD_802_11D_DOMAIN_INFO); mwifiex_cmd_802_11d_domain_info() 1007 cmd->size = cpu_to_le16(sizeof(domain_info->action) + S_DS_GEN); mwifiex_cmd_802_11d_domain_info() 1026 cmd->size = cpu_to_le16(sizeof(domain_info->action) + mwifiex_cmd_802_11d_domain_info() 1031 cmd->size = cpu_to_le16(sizeof(domain_info->action) + S_DS_GEN); mwifiex_cmd_802_11d_domain_info() 1045 static int mwifiex_cmd_ibss_coalescing_status(struct host_cmd_ds_command *cmd, mwifiex_cmd_ibss_coalescing_status() argument 1049 &(cmd->params.ibss_coalescing); mwifiex_cmd_ibss_coalescing_status() 1051 cmd->command = cpu_to_le16(HostCmd_CMD_802_11_IBSS_COALESCING_STATUS); mwifiex_cmd_ibss_coalescing_status() 1052 cmd->size = cpu_to_le16(sizeof(struct host_cmd_ds_802_11_ibss_status) + mwifiex_cmd_ibss_coalescing_status() 1054 cmd->result = 0; mwifiex_cmd_ibss_coalescing_status() 1091 static int mwifiex_cmd_reg_access(struct host_cmd_ds_command *cmd, mwifiex_cmd_reg_access() argument 1096 switch (le16_to_cpu(cmd->command)) { mwifiex_cmd_reg_access() 1101 cmd->size = cpu_to_le16(sizeof(*mac_reg) + S_DS_GEN); mwifiex_cmd_reg_access() 1102 mac_reg = &cmd->params.mac_reg; mwifiex_cmd_reg_access() 1113 cmd->size = cpu_to_le16(sizeof(*bbp_reg) + S_DS_GEN); mwifiex_cmd_reg_access() 1114 bbp_reg = &cmd->params.bbp_reg; mwifiex_cmd_reg_access() 1125 cmd->size = cpu_to_le16(sizeof(*rf_reg) + S_DS_GEN); mwifiex_cmd_reg_access() 1126 rf_reg = &cmd->params.rf_reg; mwifiex_cmd_reg_access() 1136 cmd->size = cpu_to_le16(sizeof(*pmic_reg) + S_DS_GEN); mwifiex_cmd_reg_access() 1137 pmic_reg = &cmd->params.pmic_reg; mwifiex_cmd_reg_access() 1148 cmd->size = cpu_to_le16(sizeof(*cau_reg) + S_DS_GEN); mwifiex_cmd_reg_access() 1149 cau_reg = &cmd->params.rf_reg; mwifiex_cmd_reg_access() 1160 &cmd->params.eeprom; mwifiex_cmd_reg_access() 1162 cmd->size = cpu_to_le16(sizeof(*cmd_eeprom) + S_DS_GEN); mwifiex_cmd_reg_access() 1187 struct host_cmd_ds_command *cmd, u16 action) mwifiex_cmd_pcie_host_spec() 1190 &cmd->params.pcie_host_spec; mwifiex_cmd_pcie_host_spec() 1193 cmd->command = cpu_to_le16(HostCmd_CMD_PCIE_DESC_DETAILS); mwifiex_cmd_pcie_host_spec() 1194 cmd->size = cpu_to_le16(sizeof(struct mwifiex_cmd_pcie_host_spec() 1196 cmd->result = 0; mwifiex_cmd_pcie_host_spec() 1233 struct host_cmd_ds_command *cmd, mwifiex_cmd_802_11_subsc_evt() 1236 struct host_cmd_ds_802_11_subsc_evt *subsc_evt = &cmd->params.subsc_evt; mwifiex_cmd_802_11_subsc_evt() 1241 cmd->command = cpu_to_le16(HostCmd_CMD_802_11_SUBSCRIBE_EVENT); mwifiex_cmd_802_11_subsc_evt() 1242 cmd->size = cpu_to_le16(sizeof(struct host_cmd_ds_802_11_subsc_evt) + mwifiex_cmd_802_11_subsc_evt() 1246 dev_dbg(priv->adapter->dev, "cmd: action: %d\n", subsc_evt_cfg->action); mwifiex_cmd_802_11_subsc_evt() 1255 dev_dbg(priv->adapter->dev, "cmd: event bitmap : %16x\n", mwifiex_cmd_802_11_subsc_evt() 1293 le16_add_cpu(&cmd->size, mwifiex_cmd_802_11_subsc_evt() 1313 le16_add_cpu(&cmd->size, mwifiex_cmd_802_11_subsc_evt() 1369 struct host_cmd_ds_command *cmd, mwifiex_cmd_mef_cfg() 1372 struct host_cmd_ds_mef_cfg *mef_cfg = &cmd->params.mef_cfg; mwifiex_cmd_mef_cfg() 1377 cmd->command = cpu_to_le16(HostCmd_CMD_MEF_CFG); mwifiex_cmd_mef_cfg() 1396 cmd->size = cpu_to_le16((u16) (pos - (u8 *)mef_cfg) + S_DS_GEN); mwifiex_cmd_mef_cfg() 1436 /* property header is 6 bytes, data must fit in cmd buffer */ for_each_property_of_node() 1452 struct host_cmd_ds_command *cmd, void *data_buf) mwifiex_cmd_cfg_data() 1457 u8 *data = (u8 *)cmd + S_DS_GEN; mwifiex_cmd_cfg_data() 1476 cmd->command = cpu_to_le16(HostCmd_CMD_CFG_DATA); mwifiex_cmd_cfg_data() 1477 cmd->size = cpu_to_le16(S_DS_GEN + len); mwifiex_cmd_cfg_data() 1484 struct host_cmd_ds_command *cmd, mwifiex_cmd_coalesce_cfg() 1488 &cmd->params.coalesce_cfg; mwifiex_cmd_coalesce_cfg() 1494 cmd->command = cpu_to_le16(HostCmd_CMD_COALESCE_CFG); mwifiex_cmd_coalesce_cfg() 1495 cmd->size = cpu_to_le16(S_DS_GEN); mwifiex_cmd_coalesce_cfg() 1534 le16_add_cpu(&cmd->size, le16_to_cpu(rule->header.len) + mwifiex_cmd_coalesce_cfg() 1541 le16_add_cpu(&cmd->size, sizeof(u16) + sizeof(u16)); mwifiex_cmd_coalesce_cfg() 1548 struct host_cmd_ds_command *cmd, mwifiex_cmd_tdls_oper() 1551 struct host_cmd_ds_tdls_oper *tdls_oper = &cmd->params.tdls_oper; mwifiex_cmd_tdls_oper() 1565 cmd->command = cpu_to_le16(HostCmd_CMD_TDLS_OPER); mwifiex_cmd_tdls_oper() 1566 cmd->size = cpu_to_le16(S_DS_GEN); mwifiex_cmd_tdls_oper() 1567 le16_add_cpu(&cmd->size, sizeof(struct host_cmd_ds_tdls_oper)); mwifiex_cmd_tdls_oper() 1670 le16_add_cpu(&cmd->size, config_len); mwifiex_cmd_tdls_oper() 1676 static int mwifiex_cmd_sdio_rx_aggr_cfg(struct host_cmd_ds_command *cmd, mwifiex_cmd_sdio_rx_aggr_cfg() argument 1680 &cmd->params.sdio_rx_aggr_cfg; mwifiex_cmd_sdio_rx_aggr_cfg() 1682 cmd->command = cpu_to_le16(HostCmd_CMD_SDIO_SP_RX_AGGR_CFG); mwifiex_cmd_sdio_rx_aggr_cfg() 1683 cmd->size = mwifiex_cmd_sdio_rx_aggr_cfg() 1874 "cmd: WMM: WMM_GET_STATUS cmd sent\n"); mwifiex_sta_prepare_cmd() 1936 "PREP_CMD: unknown cmd- %#x\n", cmd_no); mwifiex_sta_prepare_cmd() 2105 /* Send cmd to FW to enable/disable 11D function */ mwifiex_sta_init_cmd() 2115 /* Send cmd to FW to configure 11n specific configuration mwifiex_sta_init_cmd() 43 mwifiex_cmd_802_11_rssi_info(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 cmd_action) mwifiex_cmd_802_11_rssi_info() argument 73 mwifiex_cmd_mac_control(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 cmd_action, u16 *action) mwifiex_cmd_mac_control() argument 108 mwifiex_cmd_802_11_snmp_mib(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 cmd_action, u32 cmd_oid, u16 *ul_temp) mwifiex_cmd_802_11_snmp_mib() argument 165 mwifiex_cmd_tx_rate_cfg(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 cmd_action, u16 *pbitmap_rates) mwifiex_cmd_tx_rate_cfg() argument 284 mwifiex_cmd_rf_tx_power(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 cmd_action, void *data_buf) mwifiex_cmd_rf_tx_power() argument 301 mwifiex_cmd_rf_antenna(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 cmd_action, struct mwifiex_ds_ant_cfg *ant_cfg) mwifiex_cmd_rf_antenna() argument 341 mwifiex_cmd_802_11_hs_cfg(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 cmd_action, struct mwifiex_hs_config_param *hscfg_param) mwifiex_cmd_802_11_hs_cfg() argument 399 mwifiex_cmd_802_11_mac_address(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 cmd_action) mwifiex_cmd_802_11_mac_address() argument 452 mwifiex_cmd_802_11_deauthenticate(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u8 *mac) mwifiex_cmd_802_11_deauthenticate() argument 556 mwifiex_set_aes_key_v2(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, struct mwifiex_ds_encrypt_key *enc_key, struct host_cmd_ds_802_11_key_material_v2 *km) mwifiex_set_aes_key_v2() argument 607 mwifiex_cmd_802_11_key_material_v2(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 cmd_action, u32 cmd_oid, struct mwifiex_ds_encrypt_key *enc_key) mwifiex_cmd_802_11_key_material_v2() argument 783 mwifiex_cmd_802_11_key_material_v1(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 cmd_action, u32 cmd_oid, struct mwifiex_ds_encrypt_key *enc_key) mwifiex_cmd_802_11_key_material_v1() argument 967 mwifiex_cmd_802_11_key_material(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 cmd_action, u32 cmd_oid, struct mwifiex_ds_encrypt_key *enc_key) mwifiex_cmd_802_11_key_material() argument 991 mwifiex_cmd_802_11d_domain_info(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 cmd_action) mwifiex_cmd_802_11d_domain_info() argument 1186 mwifiex_cmd_pcie_host_spec(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 action) mwifiex_cmd_pcie_host_spec() argument 1232 mwifiex_cmd_802_11_subsc_evt(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, struct mwifiex_ds_misc_subsc_evt *subsc_evt_cfg) mwifiex_cmd_802_11_subsc_evt() argument 1368 mwifiex_cmd_mef_cfg(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, struct mwifiex_ds_mef_cfg *mef) mwifiex_cmd_mef_cfg() argument 1451 mwifiex_cmd_cfg_data(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, void *data_buf) mwifiex_cmd_cfg_data() argument 1483 mwifiex_cmd_coalesce_cfg(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, u16 cmd_action, void *data_buf) mwifiex_cmd_coalesce_cfg() argument 1547 mwifiex_cmd_tdls_oper(struct mwifiex_private *priv, struct host_cmd_ds_command *cmd, void *data_buf) mwifiex_cmd_tdls_oper() argument
|
/linux-4.1.27/drivers/firmware/ |
H A D | qcom_scm.c | 118 struct qcom_scm_command *cmd; alloc_qcom_scm_command() local 119 size_t len = sizeof(*cmd) + sizeof(struct qcom_scm_response) + cmd_size + alloc_qcom_scm_command() 123 cmd = kzalloc(PAGE_ALIGN(len), GFP_KERNEL); alloc_qcom_scm_command() 124 if (cmd) { alloc_qcom_scm_command() 125 cmd->len = cpu_to_le32(len); alloc_qcom_scm_command() 127 cmd->buf_offset = cpu_to_le32(offset); alloc_qcom_scm_command() 128 cmd->resp_hdr_offset = cpu_to_le32(offset + cmd_size); alloc_qcom_scm_command() 130 return cmd; alloc_qcom_scm_command() 135 * @cmd: command to free 139 static inline void free_qcom_scm_command(struct qcom_scm_command *cmd) free_qcom_scm_command() argument 141 kfree(cmd); free_qcom_scm_command() 146 * @cmd: command 151 const struct qcom_scm_command *cmd) qcom_scm_command_to_response() 153 return (void *)cmd + le32_to_cpu(cmd->resp_hdr_offset); qcom_scm_command_to_response() 158 * @cmd: command 162 static inline void *qcom_scm_get_command_buffer(const struct qcom_scm_command *cmd) qcom_scm_get_command_buffer() argument 164 return (void *)cmd->buf; qcom_scm_get_command_buffer() 219 static int __qcom_scm_call(const struct qcom_scm_command *cmd) __qcom_scm_call() argument 222 u32 cmd_addr = virt_to_phys(cmd); __qcom_scm_call() 228 __cpuc_flush_dcache_area((void *)cmd, cmd->len); __qcom_scm_call() 229 outer_flush_range(cmd_addr, cmd_addr + cmd->len); __qcom_scm_call() 279 struct qcom_scm_command *cmd; qcom_scm_call() local 283 cmd = alloc_qcom_scm_command(cmd_len, resp_len); qcom_scm_call() 284 if (!cmd) qcom_scm_call() 287 cmd->id = cpu_to_le32((svc_id << 10) | cmd_id); qcom_scm_call() 289 memcpy(qcom_scm_get_command_buffer(cmd), cmd_buf, cmd_len); qcom_scm_call() 292 ret = __qcom_scm_call(cmd); qcom_scm_call() 297 rsp = qcom_scm_command_to_response(cmd); qcom_scm_call() 310 free_qcom_scm_command(cmd); qcom_scm_call() 316 #define SCM_ATOMIC(svc, cmd, n) (((((svc) << 10)|((cmd) & 0x3ff)) << 12) | \ 330 static s32 qcom_scm_call_atomic1(u32 svc, u32 cmd, u32 arg1) qcom_scm_call_atomic1() argument 334 register u32 r0 asm("r0") = SCM_ATOMIC(svc, cmd, 1); qcom_scm_call_atomic1() 399 } cmd; qcom_scm_set_boot_addr() local 401 cmd.addr = cpu_to_le32(addr); qcom_scm_set_boot_addr() 402 cmd.flags = cpu_to_le32(flags); qcom_scm_set_boot_addr() 404 &cmd, sizeof(cmd), NULL, 0); qcom_scm_set_boot_addr() 150 qcom_scm_command_to_response( const struct qcom_scm_command *cmd) qcom_scm_command_to_response() argument
|
/linux-4.1.27/drivers/scsi/libsas/ |
H A D | sas_scsi_host.c | 148 static struct sas_task *sas_create_task(struct scsi_cmnd *cmd, sas_create_task() argument 158 task->uldd_task = cmd; sas_create_task() 159 ASSIGN_SAS_TASK(cmd, task); sas_create_task() 165 int_to_scsilun(cmd->device->lun, &lun); sas_create_task() 168 task->ssp_task.cmd = cmd; sas_create_task() 170 task->scatter = scsi_sglist(cmd); sas_create_task() 171 task->num_scatter = scsi_sg_count(cmd); sas_create_task() 172 task->total_xfer_len = scsi_bufflen(cmd); sas_create_task() 173 task->data_dir = cmd->sc_data_direction; sas_create_task() 180 int sas_queuecommand(struct Scsi_Host *host, struct scsi_cmnd *cmd) sas_queuecommand() argument 183 struct domain_device *dev = cmd_to_domain_dev(cmd); sas_queuecommand() 189 cmd->result = DID_BAD_TARGET << 16; sas_queuecommand() 195 res = ata_sas_queuecmd(cmd, dev->sata_dev.ap); sas_queuecommand() 200 task = sas_create_task(cmd, dev, GFP_ATOMIC); sas_queuecommand() 211 ASSIGN_SAS_TASK(cmd, NULL); sas_queuecommand() 214 cmd->result = DID_SOFT_ERROR << 16; /* retry */ sas_queuecommand() 216 cmd->result = DID_ERROR << 16; sas_queuecommand() 218 cmd->scsi_done(cmd); sas_queuecommand() 222 static void sas_eh_finish_cmd(struct scsi_cmnd *cmd) sas_eh_finish_cmd() argument 224 struct sas_ha_struct *sas_ha = SHOST_TO_SAS_HA(cmd->device->host); sas_eh_finish_cmd() 225 struct sas_task *task = TO_SAS_TASK(cmd); sas_eh_finish_cmd() 231 sas_end_task(cmd, task); sas_eh_finish_cmd() 237 scsi_eh_finish_cmd(cmd, &sas_ha->eh_done_q); sas_eh_finish_cmd() 240 static void sas_eh_defer_cmd(struct scsi_cmnd *cmd) sas_eh_defer_cmd() argument 242 struct domain_device *dev = cmd_to_domain_dev(cmd); sas_eh_defer_cmd() 244 struct sas_task *task = TO_SAS_TASK(cmd); sas_eh_defer_cmd() 247 sas_eh_finish_cmd(cmd); sas_eh_defer_cmd() 252 sas_end_task(cmd, task); sas_eh_defer_cmd() 253 list_move_tail(&cmd->eh_entry, &ha->eh_ata_q); sas_eh_defer_cmd() 258 struct scsi_cmnd *cmd, *n; sas_scsi_clear_queue_lu() local 260 list_for_each_entry_safe(cmd, n, error_q, eh_entry) { list_for_each_entry_safe() 261 if (cmd->device->sdev_target == my_cmd->device->sdev_target && list_for_each_entry_safe() 262 cmd->device->lun == my_cmd->device->lun) list_for_each_entry_safe() 263 sas_eh_defer_cmd(cmd); list_for_each_entry_safe() 270 struct scsi_cmnd *cmd, *n; sas_scsi_clear_queue_I_T() local 272 list_for_each_entry_safe(cmd, n, error_q, eh_entry) { list_for_each_entry_safe() 273 struct domain_device *x = cmd_to_domain_dev(cmd); list_for_each_entry_safe() 276 sas_eh_finish_cmd(cmd); list_for_each_entry_safe() 283 struct scsi_cmnd *cmd, *n; sas_scsi_clear_queue_port() local 285 list_for_each_entry_safe(cmd, n, error_q, eh_entry) { list_for_each_entry_safe() 286 struct domain_device *dev = cmd_to_domain_dev(cmd); list_for_each_entry_safe() 290 sas_eh_finish_cmd(cmd); list_for_each_entry_safe() 350 static int sas_recover_lu(struct domain_device *dev, struct scsi_cmnd *cmd) sas_recover_lu() argument 357 int_to_scsilun(cmd->device->lun, &lun); sas_recover_lu() 361 cmd->device->lun); sas_recover_lu() 487 int sas_eh_abort_handler(struct scsi_cmnd *cmd) sas_eh_abort_handler() argument 490 struct sas_task *task = TO_SAS_TASK(cmd); sas_eh_abort_handler() 491 struct Scsi_Host *host = cmd->device->host; sas_eh_abort_handler() 509 int sas_eh_device_reset_handler(struct scsi_cmnd *cmd) sas_eh_device_reset_handler() argument 513 struct Scsi_Host *host = cmd->device->host; sas_eh_device_reset_handler() 514 struct domain_device *dev = cmd_to_domain_dev(cmd); sas_eh_device_reset_handler() 518 return sas_queue_reset(dev, SAS_DEV_LU_RESET, cmd->device->lun, 0); sas_eh_device_reset_handler() 520 int_to_scsilun(cmd->device->lun, &lun); sas_eh_device_reset_handler() 532 int sas_eh_bus_reset_handler(struct scsi_cmnd *cmd) sas_eh_bus_reset_handler() argument 535 struct Scsi_Host *host = cmd->device->host; sas_eh_bus_reset_handler() 536 struct domain_device *dev = cmd_to_domain_dev(cmd); sas_eh_bus_reset_handler() 554 static int try_to_reset_cmd_device(struct scsi_cmnd *cmd) try_to_reset_cmd_device() argument 557 struct Scsi_Host *shost = cmd->device->host; try_to_reset_cmd_device() 562 res = shost->hostt->eh_device_reset_handler(cmd); try_to_reset_cmd_device() 568 return shost->hostt->eh_bus_reset_handler(cmd); try_to_reset_cmd_device() 575 struct scsi_cmnd *cmd, *n; sas_eh_handle_sas_errors() local 584 list_for_each_entry_safe(cmd, n, work_q, eh_entry) { list_for_each_entry_safe() 585 struct domain_device *dev = cmd_to_domain_dev(cmd); list_for_each_entry_safe() 593 task = TO_SAS_TASK(cmd); list_for_each_entry_safe() 597 list_move_tail(&cmd->eh_entry, &done); list_for_each_entry_safe() 601 list_for_each_entry_safe(cmd, n, work_q, eh_entry) { list_for_each_entry_safe() 602 struct sas_task *task = TO_SAS_TASK(cmd); list_for_each_entry_safe() 604 list_del_init(&cmd->eh_entry); list_for_each_entry_safe() 619 cmd->eh_eflags = 0; list_for_each_entry_safe() 625 sas_eh_defer_cmd(cmd); list_for_each_entry_safe() 630 sas_eh_defer_cmd(cmd); list_for_each_entry_safe() 635 tmf_resp = sas_recover_lu(task->dev, cmd); list_for_each_entry_safe() 640 cmd->device->lun); list_for_each_entry_safe() 641 sas_eh_defer_cmd(cmd); list_for_each_entry_safe() 642 sas_scsi_clear_queue_lu(work_q, cmd); list_for_each_entry_safe() 656 sas_eh_finish_cmd(cmd); list_for_each_entry_safe() 661 try_to_reset_cmd_device(cmd); list_for_each_entry_safe() 670 sas_eh_finish_cmd(cmd); list_for_each_entry_safe() 682 sas_eh_finish_cmd(cmd); list_for_each_entry_safe() 693 cmd->device->lun); list_for_each_entry_safe() 695 sas_eh_finish_cmd(cmd); list_for_each_entry_safe() 706 list_for_each_entry_safe(cmd, n, work_q, eh_entry) 707 sas_eh_finish_cmd(cmd); 806 enum blk_eh_timer_return sas_scsi_timed_out(struct scsi_cmnd *cmd) sas_scsi_timed_out() argument 808 scmd_dbg(cmd, "command %p timed out\n", cmd); sas_scsi_timed_out() 813 int sas_ioctl(struct scsi_device *sdev, int cmd, void __user *arg) sas_ioctl() argument 818 return ata_sas_scsi_ioctl(dev->sata_dev.ap, sdev, cmd, arg); sas_ioctl()
|
/linux-4.1.27/drivers/media/platform/exynos4-is/ |
H A D | fimc-is-param.c | 296 isp->aa.cmd = ISP_AA_COMMAND_START; __is_set_init_isp_aa() 311 void __is_set_isp_flash(struct fimc_is *is, u32 cmd, u32 redeye) __is_set_isp_flash() argument 316 isp->flash.cmd = cmd; __is_set_isp_flash() 323 void __is_set_isp_awb(struct fimc_is *is, u32 cmd, u32 val) __is_set_isp_awb() argument 330 isp->awb.cmd = cmd; __is_set_isp_awb() 337 void __is_set_isp_effect(struct fimc_is *is, u32 cmd) __is_set_isp_effect() argument 344 isp->effect.cmd = cmd; __is_set_isp_effect() 350 void __is_set_isp_iso(struct fimc_is *is, u32 cmd, u32 val) __is_set_isp_iso() argument 357 isp->iso.cmd = cmd; __is_set_isp_iso() 364 void __is_set_isp_adjust(struct fimc_is *is, u32 cmd, u32 val) __is_set_isp_adjust() argument 373 switch (cmd) { __is_set_isp_adjust() 403 isp->adjust.cmd = cmd; __is_set_isp_adjust() 407 isp->adjust.cmd |= cmd; __is_set_isp_adjust() 422 isp->metering.cmd = val; __is_set_isp_metering() 446 void __is_set_isp_afc(struct fimc_is *is, u32 cmd, u32 val) __is_set_isp_afc() argument 453 isp->afc.cmd = cmd; __is_set_isp_afc() 481 fd->control.cmd = val; __is_set_fd_control() 499 fd->config.cmd = FD_CONFIG_COMMAND_MAXIMUM_NUMBER; __is_set_fd_config_maxface() 503 fd->config.cmd |= FD_CONFIG_COMMAND_MAXIMUM_NUMBER; __is_set_fd_config_maxface() 519 fd->config.cmd = FD_CONFIG_COMMAND_ROLL_ANGLE; __is_set_fd_config_rollangle() 523 fd->config.cmd |= FD_CONFIG_COMMAND_ROLL_ANGLE; __is_set_fd_config_rollangle() 539 fd->config.cmd = FD_CONFIG_COMMAND_YAW_ANGLE; __is_set_fd_config_yawangle() 543 fd->config.cmd |= FD_CONFIG_COMMAND_YAW_ANGLE; __is_set_fd_config_yawangle() 559 fd->config.cmd = FD_CONFIG_COMMAND_SMILE_MODE; __is_set_fd_config_smilemode() 563 fd->config.cmd |= FD_CONFIG_COMMAND_SMILE_MODE; __is_set_fd_config_smilemode() 579 fd->config.cmd = FD_CONFIG_COMMAND_BLINK_MODE; __is_set_fd_config_blinkmode() 583 fd->config.cmd |= FD_CONFIG_COMMAND_BLINK_MODE; __is_set_fd_config_blinkmode() 599 fd->config.cmd = FD_CONFIG_COMMAND_EYES_DETECT; __is_set_fd_config_eyedetect() 603 fd->config.cmd |= FD_CONFIG_COMMAND_EYES_DETECT; __is_set_fd_config_eyedetect() 619 fd->config.cmd = FD_CONFIG_COMMAND_MOUTH_DETECT; __is_set_fd_config_mouthdetect() 623 fd->config.cmd |= FD_CONFIG_COMMAND_MOUTH_DETECT; __is_set_fd_config_mouthdetect() 639 fd->config.cmd = FD_CONFIG_COMMAND_ORIENTATION; __is_set_fd_config_orientation() 643 fd->config.cmd |= FD_CONFIG_COMMAND_ORIENTATION; __is_set_fd_config_orientation() 659 fd->config.cmd = FD_CONFIG_COMMAND_ORIENTATION_VALUE; __is_set_fd_config_orientation_val() 663 fd->config.cmd |= FD_CONFIG_COMMAND_ORIENTATION_VALUE; __is_set_fd_config_orientation_val() 684 global->shotmode.cmd = 1; fimc_is_set_initial_params() 688 isp->control.cmd = CONTROL_COMMAND_START; fimc_is_set_initial_params() 693 isp->otf_input.cmd = OTF_INPUT_COMMAND_ENABLE; fimc_is_set_initial_params() 709 isp->dma1_input.cmd = DMA_INPUT_COMMAND_DISABLE; fimc_is_set_initial_params() 721 isp->dma2_input.cmd = DMA_INPUT_COMMAND_DISABLE; fimc_is_set_initial_params() 733 isp->aa.cmd = ISP_AA_COMMAND_START; fimc_is_set_initial_params() 772 isp->otf_output.cmd = OTF_OUTPUT_COMMAND_ENABLE; fimc_is_set_initial_params() 784 isp->dma1_output.cmd = DMA_OUTPUT_COMMAND_DISABLE; fimc_is_set_initial_params() 800 isp->dma2_output.cmd = DMA_OUTPUT_COMMAND_DISABLE; fimc_is_set_initial_params() 822 drc->control.cmd = CONTROL_COMMAND_START; fimc_is_set_initial_params() 825 drc->otf_input.cmd = OTF_INPUT_COMMAND_ENABLE; fimc_is_set_initial_params() 836 drc->dma_input.cmd = DMA_INPUT_COMMAND_DISABLE; fimc_is_set_initial_params() 848 drc->otf_output.cmd = OTF_OUTPUT_COMMAND_ENABLE; fimc_is_set_initial_params() 863 fd->otf_input.cmd = OTF_INPUT_COMMAND_ENABLE; fimc_is_set_initial_params() 875 fd->dma_input.cmd = DMA_INPUT_COMMAND_DISABLE; fimc_is_set_initial_params()
|
/linux-4.1.27/drivers/irqchip/ |
H A D | irq-gic-v3-its.c | 176 static void its_encode_cmd(struct its_cmd_block *cmd, u8 cmd_nr) its_encode_cmd() argument 178 cmd->raw_cmd[0] &= ~0xffUL; its_encode_cmd() 179 cmd->raw_cmd[0] |= cmd_nr; its_encode_cmd() 182 static void its_encode_devid(struct its_cmd_block *cmd, u32 devid) its_encode_devid() argument 184 cmd->raw_cmd[0] &= BIT_ULL(32) - 1; its_encode_devid() 185 cmd->raw_cmd[0] |= ((u64)devid) << 32; its_encode_devid() 188 static void its_encode_event_id(struct its_cmd_block *cmd, u32 id) its_encode_event_id() argument 190 cmd->raw_cmd[1] &= ~0xffffffffUL; its_encode_event_id() 191 cmd->raw_cmd[1] |= id; its_encode_event_id() 194 static void its_encode_phys_id(struct its_cmd_block *cmd, u32 phys_id) its_encode_phys_id() argument 196 cmd->raw_cmd[1] &= 0xffffffffUL; its_encode_phys_id() 197 cmd->raw_cmd[1] |= ((u64)phys_id) << 32; its_encode_phys_id() 200 static void its_encode_size(struct its_cmd_block *cmd, u8 size) its_encode_size() argument 202 cmd->raw_cmd[1] &= ~0x1fUL; its_encode_size() 203 cmd->raw_cmd[1] |= size & 0x1f; its_encode_size() 206 static void its_encode_itt(struct its_cmd_block *cmd, u64 itt_addr) its_encode_itt() argument 208 cmd->raw_cmd[2] &= ~0xffffffffffffUL; its_encode_itt() 209 cmd->raw_cmd[2] |= itt_addr & 0xffffffffff00UL; its_encode_itt() 212 static void its_encode_valid(struct its_cmd_block *cmd, int valid) its_encode_valid() argument 214 cmd->raw_cmd[2] &= ~(1UL << 63); its_encode_valid() 215 cmd->raw_cmd[2] |= ((u64)!!valid) << 63; its_encode_valid() 218 static void its_encode_target(struct its_cmd_block *cmd, u64 target_addr) its_encode_target() argument 220 cmd->raw_cmd[2] &= ~(0xffffffffUL << 16); its_encode_target() 221 cmd->raw_cmd[2] |= (target_addr & (0xffffffffUL << 16)); its_encode_target() 224 static void its_encode_collection(struct its_cmd_block *cmd, u16 col) its_encode_collection() argument 226 cmd->raw_cmd[2] &= ~0xffffUL; its_encode_collection() 227 cmd->raw_cmd[2] |= col; its_encode_collection() 230 static inline void its_fixup_cmd(struct its_cmd_block *cmd) its_fixup_cmd() argument 233 cmd->raw_cmd[0] = cpu_to_le64(cmd->raw_cmd[0]); its_fixup_cmd() 234 cmd->raw_cmd[1] = cpu_to_le64(cmd->raw_cmd[1]); its_fixup_cmd() 235 cmd->raw_cmd[2] = cpu_to_le64(cmd->raw_cmd[2]); its_fixup_cmd() 236 cmd->raw_cmd[3] = cpu_to_le64(cmd->raw_cmd[3]); its_fixup_cmd() 239 static struct its_collection *its_build_mapd_cmd(struct its_cmd_block *cmd, its_build_mapd_cmd() argument 248 its_encode_cmd(cmd, GITS_CMD_MAPD); its_build_mapd_cmd() 249 its_encode_devid(cmd, desc->its_mapd_cmd.dev->device_id); its_build_mapd_cmd() 250 its_encode_size(cmd, size - 1); its_build_mapd_cmd() 251 its_encode_itt(cmd, itt_addr); its_build_mapd_cmd() 252 its_encode_valid(cmd, desc->its_mapd_cmd.valid); its_build_mapd_cmd() 254 its_fixup_cmd(cmd); its_build_mapd_cmd() 259 static struct its_collection *its_build_mapc_cmd(struct its_cmd_block *cmd, its_build_mapc_cmd() argument 262 its_encode_cmd(cmd, GITS_CMD_MAPC); its_build_mapc_cmd() 263 its_encode_collection(cmd, desc->its_mapc_cmd.col->col_id); its_build_mapc_cmd() 264 its_encode_target(cmd, desc->its_mapc_cmd.col->target_address); its_build_mapc_cmd() 265 its_encode_valid(cmd, desc->its_mapc_cmd.valid); its_build_mapc_cmd() 267 its_fixup_cmd(cmd); its_build_mapc_cmd() 272 static struct its_collection *its_build_mapvi_cmd(struct its_cmd_block *cmd, its_build_mapvi_cmd() argument 280 its_encode_cmd(cmd, GITS_CMD_MAPVI); its_build_mapvi_cmd() 281 its_encode_devid(cmd, desc->its_mapvi_cmd.dev->device_id); its_build_mapvi_cmd() 282 its_encode_event_id(cmd, desc->its_mapvi_cmd.event_id); its_build_mapvi_cmd() 283 its_encode_phys_id(cmd, desc->its_mapvi_cmd.phys_id); its_build_mapvi_cmd() 284 its_encode_collection(cmd, col->col_id); its_build_mapvi_cmd() 286 its_fixup_cmd(cmd); its_build_mapvi_cmd() 291 static struct its_collection *its_build_movi_cmd(struct its_cmd_block *cmd, its_build_movi_cmd() argument 299 its_encode_cmd(cmd, GITS_CMD_MOVI); its_build_movi_cmd() 300 its_encode_devid(cmd, desc->its_movi_cmd.dev->device_id); its_build_movi_cmd() 301 its_encode_event_id(cmd, desc->its_movi_cmd.event_id); its_build_movi_cmd() 302 its_encode_collection(cmd, desc->its_movi_cmd.col->col_id); its_build_movi_cmd() 304 its_fixup_cmd(cmd); its_build_movi_cmd() 309 static struct its_collection *its_build_discard_cmd(struct its_cmd_block *cmd, its_build_discard_cmd() argument 317 its_encode_cmd(cmd, GITS_CMD_DISCARD); its_build_discard_cmd() 318 its_encode_devid(cmd, desc->its_discard_cmd.dev->device_id); its_build_discard_cmd() 319 its_encode_event_id(cmd, desc->its_discard_cmd.event_id); its_build_discard_cmd() 321 its_fixup_cmd(cmd); its_build_discard_cmd() 326 static struct its_collection *its_build_inv_cmd(struct its_cmd_block *cmd, its_build_inv_cmd() argument 334 its_encode_cmd(cmd, GITS_CMD_INV); its_build_inv_cmd() 335 its_encode_devid(cmd, desc->its_inv_cmd.dev->device_id); its_build_inv_cmd() 336 its_encode_event_id(cmd, desc->its_inv_cmd.event_id); its_build_inv_cmd() 338 its_fixup_cmd(cmd); its_build_inv_cmd() 343 static struct its_collection *its_build_invall_cmd(struct its_cmd_block *cmd, its_build_invall_cmd() argument 346 its_encode_cmd(cmd, GITS_CMD_INVALL); its_build_invall_cmd() 347 its_encode_collection(cmd, desc->its_mapc_cmd.col->col_id); its_build_invall_cmd() 349 its_fixup_cmd(cmd); its_build_invall_cmd() 377 struct its_cmd_block *cmd; its_allocate_entry() local 390 cmd = its->cmd_write++; its_allocate_entry() 396 return cmd; its_allocate_entry() 408 static void its_flush_cmd(struct its_node *its, struct its_cmd_block *cmd) its_flush_cmd() argument 415 __flush_dcache_area(cmd, sizeof(*cmd)); its_flush_cmd() 449 struct its_cmd_block *cmd, *sync_cmd, *next_cmd; its_send_single_command() local 455 cmd = its_allocate_entry(its); its_send_single_command() 456 if (!cmd) { /* We're soooooo screewed... */ its_send_single_command() 461 sync_col = builder(cmd, desc); its_send_single_command() 462 its_flush_cmd(its, cmd); its_send_single_command() 480 its_wait_for_range_completion(its, cmd, next_cmd); its_send_single_command() 1515 pr_info("ITS: using cache flushing for cmd queue\n"); its_probe()
|
/linux-4.1.27/drivers/scsi/esas2r/ |
H A D | esas2r_vda.c | 102 if (vi->cmd.flash.sub_func != VDA_FLASH_FREAD esas2r_process_vda_ioctl() 103 && vi->cmd.flash.sub_func != VDA_FLASH_FWRITE esas2r_process_vda_ioctl() 104 && vi->cmd.flash.sub_func != VDA_FLASH_FINFO) { esas2r_process_vda_ioctl() 109 if (vi->cmd.flash.sub_func != VDA_FLASH_FINFO) esas2r_process_vda_ioctl() 113 rq->vrq->flash.sub_func = vi->cmd.flash.sub_func; esas2r_process_vda_ioctl() 116 vi->cmd.flash.data.file.file_name, esas2r_process_vda_ioctl() 117 sizeof(vi->cmd.flash.data.file.file_name)); esas2r_process_vda_ioctl() 127 cpu_to_le32(vi->cmd.cli.cmd_rsp_len); esas2r_process_vda_ioctl() 137 + offsetof(struct atto_ioctl_vda, cmd) esas2r_process_vda_ioctl() 150 if (vi->cmd.mgt.mgt_func == VDAMGT_DEV_HEALTH_REQ esas2r_process_vda_ioctl() 151 || vi->cmd.mgt.mgt_func == VDAMGT_DEV_METRICS) { esas2r_process_vda_ioctl() 157 datalen = vi->cmd.mgt.data_length; esas2r_process_vda_ioctl() 158 } else if (vi->cmd.mgt.mgt_func == VDAMGT_DEV_INFO2 esas2r_process_vda_ioctl() 159 || vi->cmd.mgt.mgt_func == esas2r_process_vda_ioctl() 185 datalen = vi->cmd.mgt.data_length; esas2r_process_vda_ioctl() 198 rq->vrq->mgt.mgt_func = vi->cmd.mgt.mgt_func; esas2r_process_vda_ioctl() 199 rq->vrq->mgt.scan_generation = vi->cmd.mgt.scan_generation; esas2r_process_vda_ioctl() 201 cpu_to_le32(vi->cmd.mgt.dev_index); esas2r_process_vda_ioctl() 203 esas2r_nuxi_mgt_data(rq->vrq->mgt.mgt_func, &vi->cmd.mgt.data); esas2r_process_vda_ioctl() 210 || vi->cmd.cfg.data_length == 0) { esas2r_process_vda_ioctl() 215 if (vi->cmd.cfg.cfg_func == VDA_CFG_INIT) { esas2r_process_vda_ioctl() 220 rq->vrq->cfg.sub_func = vi->cmd.cfg.cfg_func; esas2r_process_vda_ioctl() 221 rq->vrq->cfg.length = cpu_to_le32(vi->cmd.cfg.data_length); esas2r_process_vda_ioctl() 223 if (vi->cmd.cfg.cfg_func == VDA_CFG_GET_INIT) { esas2r_process_vda_ioctl() 225 &vi->cmd.cfg.data, esas2r_process_vda_ioctl() 226 vi->cmd.cfg.data_length); esas2r_process_vda_ioctl() 240 vi->cmd.gsv.rsp_len = vercnt; esas2r_process_vda_ioctl() 242 memcpy(vi->cmd.gsv.version_info, esas2r_vdaioctl_versions, esas2r_process_vda_ioctl() 279 if (vi->cmd.flash.sub_func == VDA_FLASH_FINFO esas2r_complete_vda_ioctl() 280 || vi->cmd.flash.sub_func == VDA_FLASH_FREAD) esas2r_complete_vda_ioctl() 281 vi->cmd.flash.data.file.file_size = esas2r_complete_vda_ioctl() 288 vi->cmd.mgt.scan_generation = esas2r_complete_vda_ioctl() 290 vi->cmd.mgt.dev_index = le16_to_cpu( esas2r_complete_vda_ioctl() 294 vi->cmd.mgt.data_length = esas2r_complete_vda_ioctl() 297 esas2r_nuxi_mgt_data(rq->vrq->mgt.mgt_func, &vi->cmd.mgt.data); esas2r_complete_vda_ioctl() 302 if (vi->cmd.cfg.cfg_func == VDA_CFG_GET_INIT) { esas2r_complete_vda_ioctl() 303 struct atto_ioctl_vda_cfg_cmd *cfg = &vi->cmd.cfg; esas2r_complete_vda_ioctl() 328 &vi->cmd.cfg.data); esas2r_complete_vda_ioctl() 335 vi->cmd.cli.cmd_rsp_len = esas2r_complete_vda_ioctl()
|
/linux-4.1.27/drivers/media/pci/ngene/ |
H A D | ngene-i2c.c | 53 com.cmd.hdr.Opcode = CMD_I2C_READ; ngene_command_i2c_read() 54 com.cmd.hdr.Length = outlen + 3; ngene_command_i2c_read() 55 com.cmd.I2CRead.Device = adr << 1; ngene_command_i2c_read() 56 memcpy(com.cmd.I2CRead.Data, out, outlen); ngene_command_i2c_read() 57 com.cmd.I2CRead.Data[outlen] = inlen; ngene_command_i2c_read() 58 com.cmd.I2CRead.Data[outlen + 1] = 0; ngene_command_i2c_read() 65 if ((com.cmd.raw8[0] >> 1) != adr) ngene_command_i2c_read() 69 memcpy(in, com.cmd.raw8, inlen + 1); ngene_command_i2c_read() 71 memcpy(in, com.cmd.raw8 + 1, inlen); ngene_command_i2c_read() 81 com.cmd.hdr.Opcode = CMD_I2C_WRITE; ngene_command_i2c_write() 82 com.cmd.hdr.Length = outlen + 1; ngene_command_i2c_write() 83 com.cmd.I2CRead.Device = adr << 1; ngene_command_i2c_write() 84 memcpy(com.cmd.I2CRead.Data, out, outlen); ngene_command_i2c_write() 91 if (com.cmd.raw8[0] == 1) ngene_command_i2c_write()
|
/linux-4.1.27/tools/usb/usbip/src/ |
H A D | usbip.c | 107 const struct command *cmd; usbip_help() local 122 for (cmd = cmds; cmd->name != NULL; cmd++) usbip_help() 123 if (cmd->help != NULL) usbip_help() 124 printf(" %-10s %s\n", cmd->name, cmd->help); usbip_help() 139 static int run_command(const struct command *cmd, int argc, char *argv[]) run_command() argument 141 dbg("running command: `%s'", cmd->name); run_command() 142 return cmd->fn(argc, argv); run_command() 154 char *cmd; main() local 185 cmd = argv[optind]; main() 186 if (cmd) { main() 188 if (!strcmp(cmds[i].name, cmd)) { main()
|
/linux-4.1.27/sound/soc/intel/atom/ |
H A D | sst-atom-controls.c | 115 struct sst_param_sba_ssp_slot_map cmd; sst_send_slot_map() local 117 SST_FILL_DEFAULT_DESTINATION(cmd.header.dst); sst_send_slot_map() 118 cmd.header.command_id = SBA_SET_SSP_SLOT_MAP; sst_send_slot_map() 119 cmd.header.length = sizeof(struct sst_param_sba_ssp_slot_map) sst_send_slot_map() 122 cmd.param_id = SBA_SET_SSP_SLOT_MAP; sst_send_slot_map() 123 cmd.param_len = sizeof(cmd.rx_slot_map) + sizeof(cmd.tx_slot_map) sst_send_slot_map() 124 + sizeof(cmd.ssp_index); sst_send_slot_map() 125 cmd.ssp_index = SSP_CODEC; sst_send_slot_map() 127 memcpy(cmd.rx_slot_map, &sst_ssp_tx_map[0], sizeof(cmd.rx_slot_map)); sst_send_slot_map() 128 memcpy(cmd.tx_slot_map, &sst_ssp_rx_map[0], sizeof(cmd.tx_slot_map)); sst_send_slot_map() 131 SST_FLAG_BLOCKED, SST_TASK_SBA, 0, &cmd, sst_send_slot_map() 132 sizeof(cmd.header) + cmd.header.length); sst_send_slot_map() 187 * slot map cmd 268 struct sst_cmd_set_params *cmd; sst_send_algo_cmd() local 271 len = sizeof(cmd->dst) + sizeof(cmd->command_id) + bc->max; sst_send_algo_cmd() 273 cmd = kzalloc(len, GFP_KERNEL); sst_send_algo_cmd() 274 if (cmd == NULL) sst_send_algo_cmd() 277 SST_FILL_DESTINATION(2, cmd->dst, bc->pipe_id, bc->module_id); sst_send_algo_cmd() 278 cmd->command_id = bc->cmd_id; sst_send_algo_cmd() 279 memcpy(cmd->params, bc->params, bc->max); sst_send_algo_cmd() 282 SST_FLAG_BLOCKED, bc->task_id, 0, cmd, len); sst_send_algo_cmd() 283 kfree(cmd); sst_send_algo_cmd() 403 struct sst_cmd_set_gain_dual cmd; sst_send_gain_cmd() local 407 cmd.header.command_id = MMX_SET_GAIN; sst_send_gain_cmd() 408 SST_FILL_DEFAULT_DESTINATION(cmd.header.dst); sst_send_gain_cmd() 409 cmd.gain_cell_num = 1; sst_send_gain_cmd() 412 cmd.cell_gains[0].cell_gain_left = SST_GAIN_MIN_VALUE; sst_send_gain_cmd() 413 cmd.cell_gains[0].cell_gain_right = SST_GAIN_MIN_VALUE; sst_send_gain_cmd() 415 cmd.cell_gains[0].cell_gain_left = gv->l_gain; sst_send_gain_cmd() 416 cmd.cell_gains[0].cell_gain_right = gv->r_gain; sst_send_gain_cmd() 419 SST_FILL_DESTINATION(2, cmd.cell_gains[0].dest, sst_send_gain_cmd() 421 cmd.cell_gains[0].gain_time_constant = gv->ramp_duration; sst_send_gain_cmd() 423 cmd.header.length = sizeof(struct sst_cmd_set_gain_dual) sst_send_gain_cmd() 428 SST_FLAG_BLOCKED, task_id, 0, &cmd, sst_send_gain_cmd() 429 sizeof(cmd.header) + cmd.header.length); sst_send_gain_cmd() 577 dev_warn(cmpnt->dev, "SET_SWM cmd max inputs reached"); fill_swm_input() 614 struct sst_cmd_set_swm cmd; sst_swm_mixer_event() local 654 cmd.switch_state = SST_SWM_ON; sst_swm_mixer_event() 656 cmd.switch_state = SST_SWM_OFF; sst_swm_mixer_event() 658 SST_FILL_DEFAULT_DESTINATION(cmd.header.dst); sst_swm_mixer_event() 660 cmd.header.command_id = SBA_SET_SWM; sst_swm_mixer_event() 662 SST_FILL_DESTINATION(2, cmd.output_id, sst_swm_mixer_event() 664 cmd.nb_inputs = fill_swm_input(cmpnt, &cmd.input[0], val); sst_swm_mixer_event() 665 cmd.header.length = offsetof(struct sst_cmd_set_swm, input) sst_swm_mixer_event() 667 + (cmd.nb_inputs * sizeof(cmd.input[0])); sst_swm_mixer_event() 670 ids->task_id, 0, &cmd, sst_swm_mixer_event() 671 sizeof(cmd.header) + cmd.header.length); sst_swm_mixer_event() 720 * The DSP expects first cmd to be SBA_VB_START, so at first startup send 722 * DSP expects last cmd to be SBA_VB_IDLE, so at last shutdown send that. 731 struct sst_cmd_generic cmd; sst_handle_vb_timer() local 736 cmd.header.command_id = SBA_VB_START; sst_handle_vb_timer() 738 cmd.header.command_id = SBA_IDLE; sst_handle_vb_timer() 741 SST_FILL_DEFAULT_DESTINATION(cmd.header.dst); sst_handle_vb_timer() 742 cmd.header.length = 0; sst_handle_vb_timer() 763 SST_FLAG_BLOCKED, SST_TASK_SBA, 0, &cmd, sst_handle_vb_timer() 764 sizeof(cmd.header) + cmd.header.length); sst_handle_vb_timer() 796 struct sst_cmd_sba_hw_set_ssp cmd; send_ssp_cmd() local 802 SST_FILL_DEFAULT_DESTINATION(cmd.header.dst); send_ssp_cmd() 803 cmd.header.command_id = SBA_HW_SET_SSP; send_ssp_cmd() 804 cmd.header.length = sizeof(struct sst_cmd_sba_hw_set_ssp) send_ssp_cmd() 811 cmd.switch_state = SST_SWITCH_ON; send_ssp_cmd() 813 cmd.switch_state = SST_SWITCH_OFF; send_ssp_cmd() 815 cmd.selection = config->ssp_id; send_ssp_cmd() 816 cmd.nb_bits_per_slots = config->bits_per_slot; send_ssp_cmd() 817 cmd.nb_slots = config->slots; send_ssp_cmd() 818 cmd.mode = config->ssp_mode | (config->pcm_mode << 1); send_ssp_cmd() 819 cmd.duplex = config->duplex; send_ssp_cmd() 820 cmd.active_tx_slot_map = config->active_slot_map; send_ssp_cmd() 821 cmd.active_rx_slot_map = config->active_slot_map; send_ssp_cmd() 822 cmd.frame_sync_frequency = config->fs_frequency; send_ssp_cmd() 823 cmd.frame_sync_polarity = SSP_FS_ACTIVE_HIGH; send_ssp_cmd() 824 cmd.data_polarity = 1; send_ssp_cmd() 825 cmd.frame_sync_width = config->fs_width; send_ssp_cmd() 826 cmd.ssp_protocol = config->ssp_protocol; send_ssp_cmd() 827 cmd.start_delay = config->start_delay; send_ssp_cmd() 828 cmd.reserved1 = cmd.reserved2 = 0xFF; send_ssp_cmd() 831 SST_TASK_SBA, 0, &cmd, send_ssp_cmd() 832 sizeof(cmd.header) + cmd.header.length); send_ssp_cmd() 857 struct sst_cmd_set_media_path cmd; sst_set_media_path() local 867 cmd.switch_state = SST_PATH_ON; sst_set_media_path() 869 cmd.switch_state = SST_PATH_OFF; sst_set_media_path() 871 SST_FILL_DESTINATION(2, cmd.header.dst, sst_set_media_path() 875 cmd.header.command_id = MMX_SET_MEDIA_PATH; sst_set_media_path() 876 cmd.header.length = sizeof(struct sst_cmd_set_media_path) sst_set_media_path() 880 ids->task_id, 0, &cmd, sst_set_media_path() 881 sizeof(cmd.header) + cmd.header.length); sst_set_media_path() 894 struct sst_cmd_sba_set_media_loop_map cmd; sst_set_media_loop() local 901 cmd.switch_state = SST_SWITCH_ON; sst_set_media_loop() 903 cmd.switch_state = SST_SWITCH_OFF; sst_set_media_loop() 905 SST_FILL_DESTINATION(2, cmd.header.dst, sst_set_media_loop() 908 cmd.header.command_id = SBA_SET_MEDIA_LOOP_MAP; sst_set_media_loop() 909 cmd.header.length = sizeof(struct sst_cmd_sba_set_media_loop_map) sst_set_media_loop() 911 cmd.param.part.cfg.rate = 2; /* 48khz */ sst_set_media_loop() 913 cmd.param.part.cfg.format = ids->format; /* stereo/Mono */ sst_set_media_loop() 914 cmd.param.part.cfg.s_length = 1; /* 24bit left justified */ sst_set_media_loop() 915 cmd.map = 0; /* Algo sequence: Gain - DRP - FIR - IIR */ sst_set_media_loop() 918 SST_TASK_SBA, 0, &cmd, sst_set_media_loop() 919 sizeof(cmd.header) + cmd.header.length); sst_set_media_loop()
|
/linux-4.1.27/drivers/iio/pressure/ |
H A D | ms5611_spi.c | 20 u8 cmd = MS5611_RESET; ms5611_spi_reset() local 23 return spi_write_then_read(st->client, &cmd, 1, NULL, 0); ms5611_spi_reset() 58 u8 cmd; ms5611_spi_read_adc_temp_and_pressure() local 62 cmd = MS5611_START_TEMP_CONV; ms5611_spi_read_adc_temp_and_pressure() 63 ret = spi_write_then_read(st->client, &cmd, 1, NULL, 0); ms5611_spi_read_adc_temp_and_pressure() 73 cmd = MS5611_START_PRESSURE_CONV; ms5611_spi_read_adc_temp_and_pressure() 74 ret = spi_write_then_read(st->client, &cmd, 1, NULL, 0); ms5611_spi_read_adc_temp_and_pressure()
|
/linux-4.1.27/arch/s390/hypfs/ |
H A D | hypfs_sprp.c | 25 static unsigned long hypfs_sprp_diag304(void *data, unsigned long cmd) hypfs_sprp_diag304() argument 29 register unsigned long _cmd asm("4") = cmd; hypfs_sprp_diag304() 65 unsigned long cmd; __hypfs_sprp_ioctl() local 87 cmd = *(unsigned long *) &diag304.args[0]; __hypfs_sprp_ioctl() 88 diag304.rc = hypfs_sprp_diag304(data, cmd); __hypfs_sprp_ioctl() 102 static long hypfs_sprp_ioctl(struct file *file, unsigned int cmd, hypfs_sprp_ioctl() argument 113 switch (cmd) { hypfs_sprp_ioctl()
|
/linux-4.1.27/net/nfc/nci/ |
H A D | core.c | 46 struct nci_core_conn_create_cmd *cmd; member in struct:core_conn_create_data 150 struct nci_core_reset_cmd cmd; nci_reset_req() local 152 cmd.reset_type = NCI_RESET_TYPE_RESET_CONFIG; nci_reset_req() 153 nci_send_cmd(ndev, NCI_OP_CORE_RESET_CMD, 1, &cmd); nci_reset_req() 163 struct nci_rf_disc_map_cmd cmd; nci_init_complete_req() local 164 struct disc_map_config *cfg = cmd.mapping_configs; nci_init_complete_req() 165 __u8 *num = &cmd.num_mapping_configs; nci_init_complete_req() 194 (1 + ((*num) * sizeof(struct disc_map_config))), &cmd); nci_init_complete_req() 206 struct nci_core_set_config_cmd cmd; nci_set_config_req() local 210 cmd.num_params = 1; nci_set_config_req() 211 cmd.param.id = param->id; nci_set_config_req() 212 cmd.param.len = param->len; nci_set_config_req() 213 memcpy(cmd.param.val, param->val, param->len); nci_set_config_req() 215 nci_send_cmd(ndev, NCI_OP_CORE_SET_CONFIG_CMD, (3 + param->len), &cmd); nci_set_config_req() 227 struct nci_rf_disc_cmd cmd; nci_rf_discover_req() local 229 cmd.num_disc_configs = 0; nci_rf_discover_req() 231 if ((cmd.num_disc_configs < NCI_MAX_NUM_RF_CONFIGS) && nci_rf_discover_req() 236 cmd.disc_configs[cmd.num_disc_configs].rf_tech_and_mode = nci_rf_discover_req() 238 cmd.disc_configs[cmd.num_disc_configs].frequency = 1; nci_rf_discover_req() 239 cmd.num_disc_configs++; nci_rf_discover_req() 242 if ((cmd.num_disc_configs < NCI_MAX_NUM_RF_CONFIGS) && nci_rf_discover_req() 244 cmd.disc_configs[cmd.num_disc_configs].rf_tech_and_mode = nci_rf_discover_req() 246 cmd.disc_configs[cmd.num_disc_configs].frequency = 1; nci_rf_discover_req() 247 cmd.num_disc_configs++; nci_rf_discover_req() 250 if ((cmd.num_disc_configs < NCI_MAX_NUM_RF_CONFIGS) && nci_rf_discover_req() 253 cmd.disc_configs[cmd.num_disc_configs].rf_tech_and_mode = nci_rf_discover_req() 255 cmd.disc_configs[cmd.num_disc_configs].frequency = 1; nci_rf_discover_req() 256 cmd.num_disc_configs++; nci_rf_discover_req() 259 if ((cmd.num_disc_configs < NCI_MAX_NUM_RF_CONFIGS) && nci_rf_discover_req() 261 cmd.disc_configs[cmd.num_disc_configs].rf_tech_and_mode = nci_rf_discover_req() 263 cmd.disc_configs[cmd.num_disc_configs].frequency = 1; nci_rf_discover_req() 264 cmd.num_disc_configs++; nci_rf_discover_req() 267 if ((cmd.num_disc_configs < NCI_MAX_NUM_RF_CONFIGS - 1) && nci_rf_discover_req() 269 cmd.disc_configs[cmd.num_disc_configs].rf_tech_and_mode = nci_rf_discover_req() 271 cmd.disc_configs[cmd.num_disc_configs].frequency = 1; nci_rf_discover_req() 272 cmd.num_disc_configs++; nci_rf_discover_req() 273 cmd.disc_configs[cmd.num_disc_configs].rf_tech_and_mode = nci_rf_discover_req() 275 cmd.disc_configs[cmd.num_disc_configs].frequency = 1; nci_rf_discover_req() 276 cmd.num_disc_configs++; nci_rf_discover_req() 280 (1 + (cmd.num_disc_configs * sizeof(struct disc_config))), nci_rf_discover_req() 281 &cmd); nci_rf_discover_req() 293 struct nci_rf_discover_select_cmd cmd; nci_rf_discover_select_req() local 295 cmd.rf_discovery_id = param->rf_discovery_id; nci_rf_discover_select_req() 296 cmd.rf_protocol = param->rf_protocol; nci_rf_discover_select_req() 298 switch (cmd.rf_protocol) { nci_rf_discover_select_req() 300 cmd.rf_interface = NCI_RF_INTERFACE_ISO_DEP; nci_rf_discover_select_req() 304 cmd.rf_interface = NCI_RF_INTERFACE_NFC_DEP; nci_rf_discover_select_req() 308 cmd.rf_interface = NCI_RF_INTERFACE_FRAME; nci_rf_discover_select_req() 313 sizeof(struct nci_rf_discover_select_cmd), &cmd); nci_rf_discover_select_req() 318 struct nci_rf_deactivate_cmd cmd; nci_rf_deactivate_req() local 320 cmd.type = opt; nci_rf_deactivate_req() 323 sizeof(struct nci_rf_deactivate_cmd), &cmd); nci_rf_deactivate_req() 414 /* Flush cmd wq */ nci_close_device() 479 struct nci_nfcee_discover_cmd cmd; nci_nfcee_discover_req() local 482 cmd.discovery_action = action; nci_nfcee_discover_req() 484 nci_send_cmd(ndev, NCI_OP_NFCEE_DISCOVER_CMD, 1, &cmd); nci_nfcee_discover_req() 496 struct nci_nfcee_mode_set_cmd *cmd = nci_nfcee_mode_set_req() local 500 sizeof(struct nci_nfcee_mode_set_cmd), cmd); nci_nfcee_mode_set_req() 505 struct nci_nfcee_mode_set_cmd cmd; nci_nfcee_mode_set() local 507 cmd.nfcee_id = nfcee_id; nci_nfcee_mode_set() 508 cmd.nfcee_mode = nfcee_mode; nci_nfcee_mode_set() 510 return nci_request(ndev, nci_nfcee_mode_set_req, (unsigned long)&cmd, nci_nfcee_mode_set() 520 nci_send_cmd(ndev, NCI_OP_CORE_CONN_CREATE_CMD, data->length, data->cmd); nci_core_conn_create_req() 529 struct nci_core_conn_create_cmd *cmd; nci_core_conn_create() local 533 cmd = kzalloc(data.length, GFP_KERNEL); nci_core_conn_create() 534 if (!cmd) nci_core_conn_create() 537 cmd->destination_type = destination_type; nci_core_conn_create() 538 cmd->number_destination_params = number_destination_params; nci_core_conn_create() 539 memcpy(cmd->params, params, params_len); nci_core_conn_create() 541 data.cmd = cmd; nci_core_conn_create() 547 kfree(cmd); nci_core_conn_create() 1268 pr_debug("NCI TX: MT=cmd, PBF=%d, GID=0x%x, OID=0x%x, plen=%d\n", nci_cmd_work()
|
/linux-4.1.27/drivers/staging/i2o/ |
H A D | debug.c | 6 static void i2o_report_util_cmd(u8 cmd); 7 static void i2o_report_exec_cmd(u8 cmd); 20 u8 cmd = (msg[1] >> 24) & 0xFF; i2o_report_status() local 24 if (cmd == I2O_CMD_UTIL_EVT_REGISTER) i2o_report_status() 29 if (cmd < 0x1F) // Utility cmd i2o_report_status() 30 i2o_report_util_cmd(cmd); i2o_report_status() 32 else if (cmd >= 0xA0 && cmd <= 0xEF) // Executive cmd i2o_report_status() 33 i2o_report_exec_cmd(cmd); i2o_report_status() 35 printk("Cmd = %0#2x, ", cmd); // Other cmds i2o_report_status() 44 if (cmd < 0x1F || (cmd >= 0xA0 && cmd <= 0xEF)) i2o_report_status() 200 static void i2o_report_util_cmd(u8 cmd) i2o_report_util_cmd() argument 202 switch (cmd) { i2o_report_util_cmd() 246 printk("Cmd = %0#2x, ", cmd); i2o_report_util_cmd() 253 static void i2o_report_exec_cmd(u8 cmd) i2o_report_exec_cmd() argument 255 switch (cmd) { i2o_report_exec_cmd() 356 printk("Cmd = %#02x, ", cmd); i2o_report_exec_cmd()
|
/linux-4.1.27/drivers/scsi/megaraid/ |
H A D | megaraid_sas_base.c | 158 megasas_complete_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd, 183 wait_and_poll(struct megasas_instance *instance, struct megasas_cmd *cmd, 194 megasas_issue_dcmd(struct megasas_instance *instance, struct megasas_cmd *cmd) megasas_issue_dcmd() argument 197 cmd->frame_phys_addr, 0, instance->reg_set); megasas_issue_dcmd() 210 struct megasas_cmd *cmd = NULL; megasas_get_cmd() local 215 cmd = list_entry((&instance->cmd_pool)->next, megasas_get_cmd() 217 list_del_init(&cmd->list); megasas_get_cmd() 218 atomic_set(&cmd->mfi_mpt_pthr, MFI_MPT_DETACHED); megasas_get_cmd() 224 return cmd; megasas_get_cmd() 228 * __megasas_return_cmd - Return a cmd to free command pool 230 * @cmd: Command packet to be returned to free command pool 233 __megasas_return_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd) __megasas_return_cmd() argument 239 * frame will have cmd->mfi_mpt_mpthr set to MFI_MPT_DETACHED __megasas_return_cmd() 241 if (atomic_read(&cmd->mfi_mpt_pthr) != MFI_MPT_DETACHED) __megasas_return_cmd() 244 cmd->scmd = NULL; __megasas_return_cmd() 245 cmd->frame_count = 0; __megasas_return_cmd() 246 cmd->is_wait_event = 0; __megasas_return_cmd() 247 cmd->mpt_pthr_cmd_blocked = NULL; __megasas_return_cmd() 253 cmd->frame->hdr.cmd = MFI_CMD_INVALID; __megasas_return_cmd() 255 atomic_set(&cmd->mfi_mpt_pthr, MFI_LIST_ADDED); __megasas_return_cmd() 256 list_add(&cmd->list, (&instance->cmd_pool)->next); __megasas_return_cmd() 260 * megasas_return_cmd - Return a cmd to free command pool 262 * @cmd: Command packet to be returned to free command pool 265 megasas_return_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd) megasas_return_cmd() argument 270 __megasas_return_cmd(instance, cmd); megasas_return_cmd() 352 * @frame_phys_addr : Physical address of cmd 526 * @frame_phys_addr : Physical address of cmd 658 * @frame_phys_addr : Physical address of cmd 790 * @frame_phys_addr : Physical address of cmd 911 * @cmd: Command packet to be issued 916 megasas_issue_polled(struct megasas_instance *instance, struct megasas_cmd *cmd) megasas_issue_polled() argument 920 struct megasas_header *frame_hdr = &cmd->frame->hdr; megasas_issue_polled() 928 instance->instancet->issue_dcmd(instance, cmd); megasas_issue_polled() 937 return wait_and_poll(instance, cmd, seconds); megasas_issue_polled() 943 * @cmd: Command to be issued 952 struct megasas_cmd *cmd, int timeout) megasas_issue_blocked_cmd() 955 cmd->cmd_status = ENODATA; megasas_issue_blocked_cmd() 957 cmd->is_wait_event = 1; megasas_issue_blocked_cmd() 958 instance->instancet->issue_dcmd(instance, cmd); megasas_issue_blocked_cmd() 961 cmd->cmd_status != ENODATA, timeout * HZ); megasas_issue_blocked_cmd() 966 cmd->cmd_status != ENODATA); megasas_issue_blocked_cmd() 972 * megasas_issue_blocked_abort_cmd - Aborts previously issued cmd 974 * @cmd_to_abort: Previously issued cmd to be aborted 979 * cmd and waits for return status. 986 struct megasas_cmd *cmd; megasas_issue_blocked_abort_cmd() local 990 cmd = megasas_get_cmd(instance); megasas_issue_blocked_abort_cmd() 992 if (!cmd) megasas_issue_blocked_abort_cmd() 995 abort_fr = &cmd->frame->abort; megasas_issue_blocked_abort_cmd() 1000 abort_fr->cmd = MFI_CMD_ABORT; megasas_issue_blocked_abort_cmd() 1009 cmd->sync_cmd = 1; megasas_issue_blocked_abort_cmd() 1010 cmd->cmd_status = ENODATA; megasas_issue_blocked_abort_cmd() 1012 instance->instancet->issue_dcmd(instance, cmd); megasas_issue_blocked_abort_cmd() 1016 cmd->cmd_status != ENODATA, timeout * HZ); megasas_issue_blocked_abort_cmd() 1024 cmd->cmd_status != ENODATA); megasas_issue_blocked_abort_cmd() 1026 cmd->sync_cmd = 0; megasas_issue_blocked_abort_cmd() 1028 megasas_return_cmd(instance, cmd); megasas_issue_blocked_abort_cmd() 1184 * @cmd: Command to be prepared in 1191 struct megasas_cmd *cmd) megasas_build_dcdb() 1200 pthru = (struct megasas_pthru_frame *)cmd->frame; megasas_build_dcdb() 1216 pthru->cmd = (is_logical) ? MFI_CMD_LD_SCSI_IO : MFI_CMD_PD_SCSI_IO; megasas_build_dcdb() 1266 cpu_to_le32(upper_32_bits(cmd->sense_phys_addr)); megasas_build_dcdb() 1268 cpu_to_le32(lower_32_bits(cmd->sense_phys_addr)); megasas_build_dcdb() 1274 cmd->frame_count = megasas_get_frame_count(instance, pthru->sge_count, megasas_build_dcdb() 1277 return cmd->frame_count; megasas_build_dcdb() 1284 * @cmd: Command to be prepared 1290 struct megasas_cmd *cmd) megasas_build_ldio() 1298 ldio = (struct megasas_io_frame *)cmd->frame; megasas_build_ldio() 1312 ldio->cmd = (sc & 0x02) ? MFI_CMD_LD_WRITE : MFI_CMD_LD_READ; megasas_build_ldio() 1407 ldio->sense_buf_phys_addr_lo = cpu_to_le32(cmd->sense_phys_addr); megasas_build_ldio() 1413 cmd->frame_count = megasas_get_frame_count(instance, megasas_build_ldio() 1416 return cmd->frame_count; megasas_build_ldio() 1420 * megasas_cmd_type - Checks if the cmd is for logical drive/sysPD 1425 inline int megasas_cmd_type(struct scsi_cmnd *cmd) megasas_cmd_type() argument 1429 switch (cmd->cmnd[0]) { megasas_cmd_type() 1438 ret = (MEGASAS_IS_LOGICAL(cmd)) ? megasas_cmd_type() 1442 ret = (MEGASAS_IS_LOGICAL(cmd)) ? megasas_cmd_type() 1456 struct megasas_cmd *cmd; megasas_dump_pending_frames() local 1473 cmd = instance->cmd_list[i]; megasas_dump_pending_frames() 1474 if(!cmd->scmd) megasas_dump_pending_frames() 1476 printk(KERN_ERR "megasas[%d]: Frame addr :0x%08lx : ",instance->host->host_no,(unsigned long)cmd->frame_phys_addr); megasas_dump_pending_frames() 1477 if (megasas_cmd_type(cmd->scmd) == READ_WRITE_LDIO) { megasas_dump_pending_frames() 1478 ldio = (struct megasas_io_frame *)cmd->frame; megasas_dump_pending_frames() 1483 instance->host->host_no, cmd->frame_count, ldio->cmd, ldio->target_id, megasas_dump_pending_frames() 1488 pthru = (struct megasas_pthru_frame *) cmd->frame; megasas_dump_pending_frames() 1493 instance->host->host_no, cmd->frame_count, pthru->cmd, pthru->target_id, megasas_dump_pending_frames() 1514 cmd = instance->cmd_list[i]; megasas_dump_pending_frames() 1516 if(cmd->sync_cmd == 1){ megasas_dump_pending_frames() 1517 printk(KERN_ERR "0x%08lx : ", (unsigned long)cmd->frame_phys_addr); megasas_dump_pending_frames() 1527 struct megasas_cmd *cmd; megasas_build_and_issue_cmd() local 1530 cmd = megasas_get_cmd(instance); megasas_build_and_issue_cmd() 1531 if (!cmd) megasas_build_and_issue_cmd() 1538 frame_count = megasas_build_ldio(instance, scmd, cmd); megasas_build_and_issue_cmd() 1540 frame_count = megasas_build_dcdb(instance, scmd, cmd); megasas_build_and_issue_cmd() 1545 cmd->scmd = scmd; megasas_build_and_issue_cmd() 1546 scmd->SCp.ptr = (char *)cmd; megasas_build_and_issue_cmd() 1553 instance->instancet->fire_cmd(instance, cmd->frame_phys_addr, megasas_build_and_issue_cmd() 1554 cmd->frame_count-1, instance->reg_set); megasas_build_and_issue_cmd() 1558 megasas_return_cmd(instance, cmd); megasas_build_and_issue_cmd() 1715 cmd_mfi->frame->hdr.cmd != MFI_CMD_ABORT) megasas_complete_outstanding_ioctls() 1723 if (cmd_mfi->sync_cmd && cmd_mfi->frame->hdr.cmd != megasas_complete_outstanding_ioctls() 1792 struct megasas_cmd *cmd; megasas_complete_cmd_dpc() local 1814 cmd = instance->cmd_list[context]; megasas_complete_cmd_dpc() 1816 megasas_complete_cmd(instance, cmd, DID_OK); megasas_complete_cmd_dpc() 1878 struct megasas_cmd *cmd; megasas_get_ld_vf_affiliation_111() local 1885 cmd = megasas_get_cmd(instance); megasas_get_ld_vf_affiliation_111() 1887 if (!cmd) { megasas_get_ld_vf_affiliation_111() 1889 "Failed to get cmd for scsi%d.\n", megasas_get_ld_vf_affiliation_111() 1894 dcmd = &cmd->frame->dcmd; megasas_get_ld_vf_affiliation_111() 1899 megasas_return_cmd(instance, cmd); megasas_get_ld_vf_affiliation_111() 1915 megasas_return_cmd(instance, cmd); megasas_get_ld_vf_affiliation_111() 1924 dcmd->cmd = MFI_CMD_DCMD; megasas_get_ld_vf_affiliation_111() 1945 megasas_issue_blocked_cmd(instance, cmd, 0); megasas_get_ld_vf_affiliation_111() 1979 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) megasas_get_ld_vf_affiliation_111() 1980 megasas_return_mfi_mpt_pthr(instance, cmd, megasas_get_ld_vf_affiliation_111() 1981 cmd->mpt_pthr_cmd_blocked); megasas_get_ld_vf_affiliation_111() 1983 megasas_return_cmd(instance, cmd); megasas_get_ld_vf_affiliation_111() 1991 struct megasas_cmd *cmd; megasas_get_ld_vf_affiliation_12() local 1999 cmd = megasas_get_cmd(instance); megasas_get_ld_vf_affiliation_12() 2001 if (!cmd) { megasas_get_ld_vf_affiliation_12() 2003 "Failed to get cmd for scsi%d.\n", megasas_get_ld_vf_affiliation_12() 2008 dcmd = &cmd->frame->dcmd; megasas_get_ld_vf_affiliation_12() 2013 megasas_return_cmd(instance, cmd); megasas_get_ld_vf_affiliation_12() 2030 megasas_return_cmd(instance, cmd); megasas_get_ld_vf_affiliation_12() 2039 dcmd->cmd = MFI_CMD_DCMD; megasas_get_ld_vf_affiliation_12() 2060 megasas_issue_blocked_cmd(instance, cmd, 0); megasas_get_ld_vf_affiliation_12() 2150 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) megasas_get_ld_vf_affiliation_12() 2151 megasas_return_mfi_mpt_pthr(instance, cmd, megasas_get_ld_vf_affiliation_12() 2152 cmd->mpt_pthr_cmd_blocked); megasas_get_ld_vf_affiliation_12() 2154 megasas_return_cmd(instance, cmd); megasas_get_ld_vf_affiliation_12() 2176 struct megasas_cmd *cmd; megasas_sriov_start_heartbeat() local 2180 cmd = megasas_get_cmd(instance); megasas_sriov_start_heartbeat() 2182 if (!cmd) { megasas_sriov_start_heartbeat() 2184 "Failed to get cmd for scsi%d.\n", megasas_sriov_start_heartbeat() 2189 dcmd = &cmd->frame->dcmd; megasas_sriov_start_heartbeat() 2208 dcmd->cmd = MFI_CMD_DCMD; megasas_sriov_start_heartbeat() 2222 if (!megasas_issue_polled(instance, cmd)) { megasas_sriov_start_heartbeat() 2243 megasas_return_cmd(instance, cmd); megasas_sriov_start_heartbeat() 2361 * Call cmd completion routine. Cmd to be megasas_wait_for_outstanding() 2451 scmd_printk(KERN_NOTICE, scmd, "megasas: RESET cmd=%x retries=%x\n", megasas_generic_reset() 2474 * cmd has not been completed within the timeout period. 2587 * @cmd: AEN command completed by the ISR 2597 megasas_service_aen(struct megasas_instance *instance, struct megasas_cmd *cmd) megasas_service_aen() argument 2603 if ((!cmd->abort_aen) && (instance->unload == 0)) { megasas_service_aen() 2611 cmd->abort_aen = 0; megasas_service_aen() 2615 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) megasas_service_aen() 2616 megasas_return_mfi_mpt_pthr(instance, cmd, megasas_service_aen() 2617 cmd->mpt_pthr_cmd_blocked); megasas_service_aen() 2619 megasas_return_cmd(instance, cmd); megasas_service_aen() 2808 * @cmd: Command to be completed 2816 struct megasas_cmd *cmd) megasas_complete_int_cmd() 2818 cmd->cmd_status = cmd->frame->io.cmd_status; megasas_complete_int_cmd() 2820 if (cmd->cmd_status == ENODATA) { megasas_complete_int_cmd() 2821 cmd->cmd_status = 0; megasas_complete_int_cmd() 2829 * @cmd: Cmd that was issued to abort another cmd 2837 struct megasas_cmd *cmd) megasas_complete_abort() 2839 if (cmd->sync_cmd) { megasas_complete_abort() 2840 cmd->sync_cmd = 0; megasas_complete_abort() 2841 cmd->cmd_status = 0; megasas_complete_abort() 2851 * @cmd: Command to be completed 2859 megasas_complete_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd, megasas_complete_cmd() argument 2863 struct megasas_header *hdr = &cmd->frame->hdr; megasas_complete_cmd() 2869 cmd->retry_for_fw_reset = 0; megasas_complete_cmd() 2871 if (cmd->scmd) megasas_complete_cmd() 2872 cmd->scmd->SCp.ptr = NULL; megasas_complete_cmd() 2874 switch (hdr->cmd) { megasas_complete_cmd() 2893 if (cmd->sync_cmd) { megasas_complete_cmd() 2894 cmd->sync_cmd = 0; megasas_complete_cmd() 2895 megasas_complete_int_cmd(instance, cmd); megasas_complete_cmd() 2903 cmd->scmd->result = alt_status << 16; megasas_complete_cmd() 2911 scsi_dma_unmap(cmd->scmd); megasas_complete_cmd() 2912 cmd->scmd->scsi_done(cmd->scmd); megasas_complete_cmd() 2913 megasas_return_cmd(instance, cmd); megasas_complete_cmd() 2921 cmd->scmd->result = DID_OK << 16; megasas_complete_cmd() 2926 cmd->scmd->result = megasas_complete_cmd() 2932 cmd->scmd->result = (DID_OK << 16) | hdr->scsi_status; megasas_complete_cmd() 2935 memset(cmd->scmd->sense_buffer, 0, megasas_complete_cmd() 2937 memcpy(cmd->scmd->sense_buffer, cmd->sense, megasas_complete_cmd() 2940 cmd->scmd->result |= DRIVER_SENSE << 24; megasas_complete_cmd() 2947 cmd->scmd->result = DID_BAD_TARGET << 16; megasas_complete_cmd() 2953 cmd->scmd->result = DID_ERROR << 16; megasas_complete_cmd() 2959 scsi_dma_unmap(cmd->scmd); megasas_complete_cmd() 2960 cmd->scmd->scsi_done(cmd->scmd); megasas_complete_cmd() 2961 megasas_return_cmd(instance, cmd); megasas_complete_cmd() 2968 opcode = le32_to_cpu(cmd->frame->dcmd.opcode); megasas_complete_cmd() 2971 && (cmd->frame->dcmd.mbox.b[1] == 1)) { megasas_complete_cmd() 2974 if (cmd->frame->hdr.cmd_status != 0) { megasas_complete_cmd() 2975 if (cmd->frame->hdr.cmd_status != megasas_complete_cmd() 2979 cmd->frame->hdr.cmd_status); megasas_complete_cmd() 2982 cmd, cmd->mpt_pthr_cmd_blocked); megasas_complete_cmd() 2990 megasas_return_mfi_mpt_pthr(instance, cmd, megasas_complete_cmd() 2991 cmd->mpt_pthr_cmd_blocked); megasas_complete_cmd() 3018 megasas_service_aen(instance, cmd); megasas_complete_cmd() 3020 megasas_complete_int_cmd(instance, cmd); megasas_complete_cmd() 3026 * Cmd issued to abort another cmd returned megasas_complete_cmd() 3028 megasas_complete_abort(instance, cmd); megasas_complete_cmd() 3033 hdr->cmd); megasas_complete_cmd() 3046 struct megasas_cmd *cmd; megasas_issue_pending_cmds_again() local 3058 cmd = list_entry((&clist_local)->next, megasas_issue_pending_cmds_again() 3060 list_del_init(&cmd->list); megasas_issue_pending_cmds_again() 3062 if (cmd->sync_cmd || cmd->scmd) { megasas_issue_pending_cmds_again() 3065 cmd, cmd->scmd, cmd->sync_cmd); megasas_issue_pending_cmds_again() 3067 cmd->retry_for_fw_reset++; megasas_issue_pending_cmds_again() 3069 if (cmd->retry_for_fw_reset == 3) { megasas_issue_pending_cmds_again() 3070 printk(KERN_NOTICE "megaraid_sas: cmd %p, %p:%d" megasas_issue_pending_cmds_again() 3073 cmd, cmd->scmd, cmd->sync_cmd); megasas_issue_pending_cmds_again() 3081 if (cmd->sync_cmd == 1) { megasas_issue_pending_cmds_again() 3082 if (cmd->scmd) { megasas_issue_pending_cmds_again() 3084 "cmd attached to internal command!\n"); megasas_issue_pending_cmds_again() 3086 printk(KERN_NOTICE "megasas: %p synchronous cmd" megasas_issue_pending_cmds_again() 3088 "issue it again.\n", cmd); megasas_issue_pending_cmds_again() 3089 cmd->cmd_status = ENODATA; megasas_issue_pending_cmds_again() 3091 cmd->frame_phys_addr , megasas_issue_pending_cmds_again() 3093 } else if (cmd->scmd) { megasas_issue_pending_cmds_again() 3094 printk(KERN_NOTICE "megasas: %p scsi cmd [%02x]" megasas_issue_pending_cmds_again() 3096 cmd, cmd->scmd->cmnd[0]); megasas_issue_pending_cmds_again() 3100 cmd->frame_phys_addr, megasas_issue_pending_cmds_again() 3101 cmd->frame_count-1, instance->reg_set); megasas_issue_pending_cmds_again() 3103 printk(KERN_NOTICE "megasas: %p unexpected cmd on the" megasas_issue_pending_cmds_again() 3105 cmd); megasas_issue_pending_cmds_again() 3139 struct megasas_cmd *cmd; megasas_internal_reset_defer_cmds() local 3148 cmd = instance->cmd_list[i]; megasas_internal_reset_defer_cmds() 3149 if (cmd->sync_cmd == 1 || cmd->scmd) { megasas_internal_reset_defer_cmds() 3150 printk(KERN_NOTICE "megasas: moving cmd[%d]:%p:%d:%p" megasas_internal_reset_defer_cmds() 3152 defer_index, cmd, cmd->sync_cmd, cmd->scmd); megasas_internal_reset_defer_cmds() 3154 if (!list_empty(&cmd->list)) { megasas_internal_reset_defer_cmds() 3156 " moving this cmd:%p, %d %p, it was" megasas_internal_reset_defer_cmds() 3158 cmd, cmd->sync_cmd, cmd->scmd); megasas_internal_reset_defer_cmds() 3160 list_del_init(&cmd->list); megasas_internal_reset_defer_cmds() 3163 list_add_tail(&cmd->list, megasas_internal_reset_defer_cmds() 3540 * megasas_teardown_frame_pool - Destroy the cmd frame DMA pool 3547 struct megasas_cmd *cmd; megasas_teardown_frame_pool() local 3557 cmd = instance->cmd_list[i]; megasas_teardown_frame_pool() 3559 if (cmd->frame) megasas_teardown_frame_pool() 3560 pci_pool_free(instance->frame_dma_pool, cmd->frame, megasas_teardown_frame_pool() 3561 cmd->frame_phys_addr); megasas_teardown_frame_pool() 3563 if (cmd->sense) megasas_teardown_frame_pool() 3564 pci_pool_free(instance->sense_dma_pool, cmd->sense, megasas_teardown_frame_pool() 3565 cmd->sense_phys_addr); megasas_teardown_frame_pool() 3579 * megasas_create_frame_pool - Creates DMA pool for cmd frames 3594 struct megasas_cmd *cmd; megasas_create_frame_pool() local 3647 * By making cmd->index as the context instead of the &cmd, we can megasas_create_frame_pool() 3652 cmd = instance->cmd_list[i]; megasas_create_frame_pool() 3654 cmd->frame = pci_pool_alloc(instance->frame_dma_pool, megasas_create_frame_pool() 3655 GFP_KERNEL, &cmd->frame_phys_addr); megasas_create_frame_pool() 3657 cmd->sense = pci_pool_alloc(instance->sense_dma_pool, megasas_create_frame_pool() 3658 GFP_KERNEL, &cmd->sense_phys_addr); megasas_create_frame_pool() 3664 if (!cmd->frame || !cmd->sense) { megasas_create_frame_pool() 3670 memset(cmd->frame, 0, total_sz); megasas_create_frame_pool() 3671 cmd->frame->io.context = cpu_to_le32(cmd->index); megasas_create_frame_pool() 3672 cmd->frame->io.pad_0 = 0; megasas_create_frame_pool() 3678 cmd->frame->hdr.cmd = MFI_CMD_INVALID; megasas_create_frame_pool() 3685 * megasas_free_cmds - Free all the cmds in the free cmd pool 3729 struct megasas_cmd *cmd; megasas_alloc_cmds() local 3766 cmd = instance->cmd_list[i]; megasas_alloc_cmds() 3767 memset(cmd, 0, sizeof(struct megasas_cmd)); megasas_alloc_cmds() 3768 cmd->index = i; megasas_alloc_cmds() 3769 atomic_set(&cmd->mfi_mpt_pthr, MFI_LIST_ADDED); megasas_alloc_cmds() 3770 cmd->scmd = NULL; megasas_alloc_cmds() 3771 cmd->instance = instance; megasas_alloc_cmds() 3773 list_add_tail(&cmd->list, &instance->cmd_pool); megasas_alloc_cmds() 3777 * Create a frame pool and assign one frame to each cmd megasas_alloc_cmds() 3800 struct megasas_cmd *cmd; megasas_get_pd_list() local 3806 cmd = megasas_get_cmd(instance); megasas_get_pd_list() 3808 if (!cmd) { megasas_get_pd_list() 3809 printk(KERN_DEBUG "megasas (get_pd_list): Failed to get cmd\n"); megasas_get_pd_list() 3813 dcmd = &cmd->frame->dcmd; megasas_get_pd_list() 3820 megasas_return_cmd(instance, cmd); megasas_get_pd_list() 3829 dcmd->cmd = MFI_CMD_DCMD; megasas_get_pd_list() 3841 ret = megasas_issue_blocked_cmd(instance, cmd, megasas_get_pd_list() 3844 ret = megasas_issue_polled(instance, cmd); megasas_get_pd_list() 3877 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) megasas_get_pd_list() 3878 megasas_return_mfi_mpt_pthr(instance, cmd, megasas_get_pd_list() 3879 cmd->mpt_pthr_cmd_blocked); megasas_get_pd_list() 3881 megasas_return_cmd(instance, cmd); megasas_get_pd_list() 3899 struct megasas_cmd *cmd; megasas_get_ld_list() local 3905 cmd = megasas_get_cmd(instance); megasas_get_ld_list() 3907 if (!cmd) { megasas_get_ld_list() 3908 printk(KERN_DEBUG "megasas_get_ld_list: Failed to get cmd\n"); megasas_get_ld_list() 3912 dcmd = &cmd->frame->dcmd; megasas_get_ld_list() 3920 megasas_return_cmd(instance, cmd); megasas_get_ld_list() 3929 dcmd->cmd = MFI_CMD_DCMD; megasas_get_ld_list() 3941 ret = megasas_issue_blocked_cmd(instance, cmd, megasas_get_ld_list() 3944 ret = megasas_issue_polled(instance, cmd); megasas_get_ld_list() 3968 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) megasas_get_ld_list() 3969 megasas_return_mfi_mpt_pthr(instance, cmd, megasas_get_ld_list() 3970 cmd->mpt_pthr_cmd_blocked); megasas_get_ld_list() 3972 megasas_return_cmd(instance, cmd); megasas_get_ld_list() 3989 struct megasas_cmd *cmd; megasas_ld_list_query() local 3995 cmd = megasas_get_cmd(instance); megasas_ld_list_query() 3997 if (!cmd) { megasas_ld_list_query() 3999 "megasas:(megasas_ld_list_query): Failed to get cmd\n"); megasas_ld_list_query() 4003 dcmd = &cmd->frame->dcmd; megasas_ld_list_query() 4011 megasas_return_cmd(instance, cmd); megasas_ld_list_query() 4022 dcmd->cmd = MFI_CMD_DCMD; megasas_ld_list_query() 4034 ret = megasas_issue_blocked_cmd(instance, cmd, megasas_ld_list_query() 4037 ret = megasas_issue_polled(instance, cmd); megasas_ld_list_query() 4053 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) megasas_ld_list_query() 4054 megasas_return_mfi_mpt_pthr(instance, cmd, megasas_ld_list_query() 4055 cmd->mpt_pthr_cmd_blocked); megasas_ld_list_query() 4057 megasas_return_cmd(instance, cmd); megasas_ld_list_query() 4131 struct megasas_cmd *cmd; megasas_get_ctrl_info() local 4139 cmd = megasas_get_cmd(instance); megasas_get_ctrl_info() 4141 if (!cmd) { megasas_get_ctrl_info() 4142 printk(KERN_DEBUG "megasas: Failed to get a free cmd\n"); megasas_get_ctrl_info() 4146 dcmd = &cmd->frame->dcmd; megasas_get_ctrl_info() 4153 megasas_return_cmd(instance, cmd); megasas_get_ctrl_info() 4160 dcmd->cmd = MFI_CMD_DCMD; megasas_get_ctrl_info() 4173 ret = megasas_issue_blocked_cmd(instance, cmd, megasas_get_ctrl_info() 4176 ret = megasas_issue_polled(instance, cmd); megasas_get_ctrl_info() 4189 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) megasas_get_ctrl_info() 4190 megasas_return_mfi_mpt_pthr(instance, cmd, megasas_get_ctrl_info() 4191 cmd->mpt_pthr_cmd_blocked); megasas_get_ctrl_info() 4193 megasas_return_cmd(instance, cmd); megasas_get_ctrl_info() 4216 struct megasas_cmd *cmd; megasas_set_crash_dump_params() local 4219 cmd = megasas_get_cmd(instance); megasas_set_crash_dump_params() 4221 if (!cmd) { megasas_set_crash_dump_params() 4222 dev_err(&instance->pdev->dev, "Failed to get a free cmd\n"); megasas_set_crash_dump_params() 4227 dcmd = &cmd->frame->dcmd; megasas_set_crash_dump_params() 4231 dcmd->cmd = MFI_CMD_DCMD; megasas_set_crash_dump_params() 4243 ret = megasas_issue_blocked_cmd(instance, cmd, megasas_set_crash_dump_params() 4246 ret = megasas_issue_polled(instance, cmd); megasas_set_crash_dump_params() 4248 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) megasas_set_crash_dump_params() 4249 megasas_return_mfi_mpt_pthr(instance, cmd, megasas_set_crash_dump_params() 4250 cmd->mpt_pthr_cmd_blocked); megasas_set_crash_dump_params() 4252 megasas_return_cmd(instance, cmd); megasas_set_crash_dump_params() 4260 * Issues the INIT MFI cmd 4267 struct megasas_cmd *cmd; megasas_issue_init_mfi() local 4282 cmd = megasas_get_cmd(instance); megasas_issue_init_mfi() 4284 init_frame = (struct megasas_init_frame *)cmd->frame; megasas_issue_init_mfi() 4288 init_frame_h = cmd->frame_phys_addr; megasas_issue_init_mfi() 4302 init_frame->cmd = MFI_CMD_INIT; megasas_issue_init_mfi() 4320 if (megasas_issue_polled(instance, cmd)) { megasas_issue_init_mfi() 4322 megasas_return_cmd(instance, cmd); megasas_issue_init_mfi() 4326 megasas_return_cmd(instance, cmd); megasas_issue_init_mfi() 4349 * reply_q_sz (1 more than the max cmd that driver may send) megasas_init_adapter_mfi() 4573 /* Get operational params, sge flags, send init cmd to controller */ megasas_init_fw() 4717 * Setup tasklet for cmd completion megasas_init_fw() 4775 * by issuing a direct fw cmd (DCMD). For the future events (beyond latest seq 4783 struct megasas_cmd *cmd; megasas_get_seq_num() local 4788 cmd = megasas_get_cmd(instance); megasas_get_seq_num() 4790 if (!cmd) { megasas_get_seq_num() 4794 dcmd = &cmd->frame->dcmd; megasas_get_seq_num() 4800 megasas_return_cmd(instance, cmd); megasas_get_seq_num() 4807 dcmd->cmd = MFI_CMD_DCMD; megasas_get_seq_num() 4818 if (megasas_issue_blocked_cmd(instance, cmd, 30)) megasas_get_seq_num() 4835 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) megasas_get_seq_num() 4836 megasas_return_mfi_mpt_pthr(instance, cmd, megasas_get_seq_num() 4837 cmd->mpt_pthr_cmd_blocked); megasas_get_seq_num() 4839 megasas_return_cmd(instance, cmd); megasas_get_seq_num() 4858 struct megasas_cmd *cmd; megasas_register_aen() local 4920 cmd = megasas_get_cmd(instance); megasas_register_aen() 4922 if (!cmd) megasas_register_aen() 4925 dcmd = &cmd->frame->dcmd; megasas_register_aen() 4934 dcmd->cmd = MFI_CMD_DCMD; megasas_register_aen() 4949 megasas_return_cmd(instance, cmd); megasas_register_aen() 4954 * Store reference to the cmd used to register for AEN. When an megasas_register_aen() 4956 * cmd and re-register with a new EVENT LOCALE supplied by that app megasas_register_aen() 4958 instance->aen_cmd = cmd; megasas_register_aen() 4963 instance->instancet->issue_dcmd(instance, cmd); megasas_register_aen() 5461 struct megasas_cmd *cmd; megasas_flush_cache() local 5467 cmd = megasas_get_cmd(instance); megasas_flush_cache() 5469 if (!cmd) megasas_flush_cache() 5472 dcmd = &cmd->frame->dcmd; megasas_flush_cache() 5476 dcmd->cmd = MFI_CMD_DCMD; megasas_flush_cache() 5486 if (megasas_issue_blocked_cmd(instance, cmd, 30)) megasas_flush_cache() 5490 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) megasas_flush_cache() 5491 megasas_return_mfi_mpt_pthr(instance, cmd, megasas_flush_cache() 5492 cmd->mpt_pthr_cmd_blocked); megasas_flush_cache() 5494 megasas_return_cmd(instance, cmd); megasas_flush_cache() 5507 struct megasas_cmd *cmd; megasas_shutdown_controller() local 5513 cmd = megasas_get_cmd(instance); megasas_shutdown_controller() 5515 if (!cmd) megasas_shutdown_controller() 5524 dcmd = &cmd->frame->dcmd; megasas_shutdown_controller() 5528 dcmd->cmd = MFI_CMD_DCMD; megasas_shutdown_controller() 5537 if (megasas_issue_blocked_cmd(instance, cmd, 30)) megasas_shutdown_controller() 5541 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) megasas_shutdown_controller() 5542 megasas_return_mfi_mpt_pthr(instance, cmd, megasas_shutdown_controller() 5543 cmd->mpt_pthr_cmd_blocked); megasas_shutdown_controller() 5545 megasas_return_cmd(instance, cmd); megasas_shutdown_controller() 5999 * @cmd: MFI command frame 6003 struct megasas_cmd *cmd) megasas_set_crash_dump_params_ioctl() 6009 crash_support = cmd->frame->dcmd.mbox.w[0]; megasas_set_crash_dump_params_ioctl() 6046 struct megasas_cmd *cmd; megasas_mgmt_fw_ioctl() local 6062 cmd = megasas_get_cmd(instance); megasas_mgmt_fw_ioctl() 6063 if (!cmd) { megasas_mgmt_fw_ioctl() 6064 printk(KERN_DEBUG "megasas: Failed to get a cmd packet\n"); megasas_mgmt_fw_ioctl() 6070 * frames into our cmd's frames. cmd->frame's context will get megasas_mgmt_fw_ioctl() 6074 memcpy(cmd->frame, ioc->frame.raw, 2 * MEGAMFI_FRAME_SIZE); megasas_mgmt_fw_ioctl() 6075 cmd->frame->hdr.context = cpu_to_le32(cmd->index); megasas_mgmt_fw_ioctl() 6076 cmd->frame->hdr.pad_0 = 0; megasas_mgmt_fw_ioctl() 6077 cmd->frame->hdr.flags &= cpu_to_le16(~(MFI_FRAME_IEEE | megasas_mgmt_fw_ioctl() 6081 if (cmd->frame->dcmd.opcode == MR_DRIVER_SET_APP_CRASHDUMP_MODE) { megasas_mgmt_fw_ioctl() 6082 error = megasas_set_crash_dump_params_ioctl(cmd); megasas_mgmt_fw_ioctl() 6083 megasas_return_cmd(instance, cmd); megasas_mgmt_fw_ioctl() 6096 ((unsigned long)cmd->frame + ioc->sgl_off); megasas_mgmt_fw_ioctl() 6142 (unsigned long *) ((unsigned long)cmd->frame + ioc->sense_off); megasas_mgmt_fw_ioctl() 6148 * cmd to the SCSI mid-layer megasas_mgmt_fw_ioctl() 6150 cmd->sync_cmd = 1; megasas_mgmt_fw_ioctl() 6151 megasas_issue_blocked_cmd(instance, cmd, 0); megasas_mgmt_fw_ioctl() 6152 cmd->sync_cmd = 0; megasas_mgmt_fw_ioctl() 6194 &cmd->frame->hdr.cmd_status, sizeof(u8))) { megasas_mgmt_fw_ioctl() 6214 if (instance->ctrl_context && cmd->mpt_pthr_cmd_blocked) megasas_mgmt_fw_ioctl() 6215 megasas_return_mfi_mpt_pthr(instance, cmd, megasas_mgmt_fw_ioctl() 6216 cmd->mpt_pthr_cmd_blocked); megasas_mgmt_fw_ioctl() 6218 megasas_return_cmd(instance, cmd); megasas_mgmt_fw_ioctl() 6381 megasas_mgmt_ioctl(struct file *file, unsigned int cmd, unsigned long arg) megasas_mgmt_ioctl() argument 6383 switch (cmd) { megasas_mgmt_ioctl() 6450 megasas_mgmt_compat_ioctl(struct file *file, unsigned int cmd, megasas_mgmt_compat_ioctl() argument 6453 switch (cmd) { megasas_mgmt_compat_ioctl() 951 megasas_issue_blocked_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd, int timeout) megasas_issue_blocked_cmd() argument 1190 megasas_build_dcdb(struct megasas_instance *instance, struct scsi_cmnd *scp, struct megasas_cmd *cmd) megasas_build_dcdb() argument 1289 megasas_build_ldio(struct megasas_instance *instance, struct scsi_cmnd *scp, struct megasas_cmd *cmd) megasas_build_ldio() argument 2815 megasas_complete_int_cmd(struct megasas_instance *instance, struct megasas_cmd *cmd) megasas_complete_int_cmd() argument 2836 megasas_complete_abort(struct megasas_instance *instance, struct megasas_cmd *cmd) megasas_complete_abort() argument 6002 megasas_set_crash_dump_params_ioctl( struct megasas_cmd *cmd) megasas_set_crash_dump_params_ioctl() argument
|
/linux-4.1.27/net/core/ |
H A D | dev_ioctl.c | 121 static int dev_ifsioc_locked(struct net *net, struct ifreq *ifr, unsigned int cmd) dev_ifsioc_locked() argument 129 switch (cmd) { dev_ifsioc_locked() 241 static int dev_ifsioc(struct net *net, struct ifreq *ifr, unsigned int cmd) dev_ifsioc() argument 252 switch (cmd) { dev_ifsioc() 319 if ((cmd >= SIOCDEVPRIVATE && dev_ifsioc() 320 cmd <= SIOCDEVPRIVATE + 15) || dev_ifsioc() 321 cmd == SIOCBONDENSLAVE || dev_ifsioc() 322 cmd == SIOCBONDRELEASE || dev_ifsioc() 323 cmd == SIOCBONDSETHWADDR || dev_ifsioc() 324 cmd == SIOCBONDSLAVEINFOQUERY || dev_ifsioc() 325 cmd == SIOCBONDINFOQUERY || dev_ifsioc() 326 cmd == SIOCBONDCHANGEACTIVE || dev_ifsioc() 327 cmd == SIOCGMIIPHY || dev_ifsioc() 328 cmd == SIOCGMIIREG || dev_ifsioc() 329 cmd == SIOCSMIIREG || dev_ifsioc() 330 cmd == SIOCBRADDIF || dev_ifsioc() 331 cmd == SIOCBRDELIF || dev_ifsioc() 332 cmd == SIOCSHWTSTAMP || dev_ifsioc() 333 cmd == SIOCGHWTSTAMP || dev_ifsioc() 334 cmd == SIOCWANDEV) { dev_ifsioc() 338 err = ops->ndo_do_ioctl(dev, ifr, cmd); dev_ifsioc() 384 * @cmd: command to issue 393 int dev_ioctl(struct net *net, unsigned int cmd, void __user *arg) dev_ioctl() argument 404 if (cmd == SIOCGIFCONF) { dev_ioctl() 410 if (cmd == SIOCGIFNAME) dev_ioctl() 426 switch (cmd) { dev_ioctl() 443 ret = dev_ifsioc_locked(net, &ifr, cmd); dev_ioctl() 481 ret = dev_ifsioc(net, &ifr, cmd); dev_ioctl() 532 ret = dev_ifsioc(net, &ifr, cmd); dev_ioctl() 549 if (cmd == SIOCWANDEV || dev_ioctl() 550 cmd == SIOCGHWTSTAMP || dev_ioctl() 551 (cmd >= SIOCDEVPRIVATE && dev_ioctl() 552 cmd <= SIOCDEVPRIVATE + 15)) { dev_ioctl() 555 ret = dev_ifsioc(net, &ifr, cmd); dev_ioctl() 563 if (cmd >= SIOCIWFIRST && cmd <= SIOCIWLAST) dev_ioctl() 564 return wext_handle_ioctl(net, &ifr, cmd, arg); dev_ioctl()
|