Lines Matching refs:vi
66 struct atto_ioctl_vda *vi,
74 vi->status = ATTO_STS_SUCCESS;
75 vi->vda_status = RS_PENDING;
77 if (vi->function >= vercnt) {
78 vi->status = ATTO_STS_INV_FUNC;
82 if (vi->version > esas2r_vdaioctl_versions[vi->function]) {
83 vi->status = ATTO_STS_INV_VERSION;
88 vi->status = ATTO_STS_DEGRADED;
92 if (vi->function != VDA_FUNC_SCSI)
95 rq->vrq->scsi.function = vi->function;
97 rq->interrupt_cx = vi;
99 switch (vi->function) {
102 if (vi->cmd.flash.sub_func != VDA_FLASH_FREAD
103 && vi->cmd.flash.sub_func != VDA_FLASH_FWRITE
104 && vi->cmd.flash.sub_func != VDA_FLASH_FINFO) {
105 vi->status = ATTO_STS_INV_FUNC;
109 if (vi->cmd.flash.sub_func != VDA_FLASH_FINFO)
110 datalen = vi->data_length;
113 rq->vrq->flash.sub_func = vi->cmd.flash.sub_func;
116 vi->cmd.flash.data.file.file_name,
117 sizeof(vi->cmd.flash.data.file.file_name));
124 datalen = vi->data_length;
127 cpu_to_le32(vi->cmd.cli.cmd_rsp_len);
147 if (vi->data_length) {
150 if (vi->cmd.mgt.mgt_func == VDAMGT_DEV_HEALTH_REQ
151 || vi->cmd.mgt.mgt_func == VDAMGT_DEV_METRICS) {
156 payldlen = vi->data_length;
157 datalen = vi->cmd.mgt.data_length;
158 } else if (vi->cmd.mgt.mgt_func == VDAMGT_DEV_INFO2
159 || vi->cmd.mgt.mgt_func ==
161 datalen = vi->data_length;
164 vi->status = ATTO_STS_INV_PARAM;
180 vi->status = ATTO_STS_OUT_OF_RSRC;
185 datalen = vi->cmd.mgt.data_length;
198 rq->vrq->mgt.mgt_func = vi->cmd.mgt.mgt_func;
199 rq->vrq->mgt.scan_generation = vi->cmd.mgt.scan_generation;
201 cpu_to_le32(vi->cmd.mgt.dev_index);
203 esas2r_nuxi_mgt_data(rq->vrq->mgt.mgt_func, &vi->cmd.mgt.data);
209 if (vi->data_length
210 || vi->cmd.cfg.data_length == 0) {
211 vi->status = ATTO_STS_INV_PARAM;
215 if (vi->cmd.cfg.cfg_func == VDA_CFG_INIT) {
216 vi->status = ATTO_STS_INV_FUNC;
220 rq->vrq->cfg.sub_func = vi->cmd.cfg.cfg_func;
221 rq->vrq->cfg.length = cpu_to_le32(vi->cmd.cfg.data_length);
223 if (vi->cmd.cfg.cfg_func == VDA_CFG_GET_INIT) {
225 &vi->cmd.cfg.data,
226 vi->cmd.cfg.data_length);
231 vi->status = ATTO_STS_INV_FUNC;
240 vi->cmd.gsv.rsp_len = vercnt;
242 memcpy(vi->cmd.gsv.version_info, esas2r_vdaioctl_versions,
245 vi->vda_status = RS_SUCCESS;
250 vi->status = ATTO_STS_INV_FUNC;
259 vi->status = ATTO_STS_OUT_OF_RSRC;
272 struct atto_ioctl_vda *vi = (struct atto_ioctl_vda *)rq->interrupt_cx;
274 vi->vda_status = rq->req_stat;
276 switch (vi->function) {
279 if (vi->cmd.flash.sub_func == VDA_FLASH_FINFO
280 || vi->cmd.flash.sub_func == VDA_FLASH_FREAD)
281 vi->cmd.flash.data.file.file_size =
288 vi->cmd.mgt.scan_generation =
290 vi->cmd.mgt.dev_index = le16_to_cpu(
293 if (vi->data_length == 0)
294 vi->cmd.mgt.data_length =
297 esas2r_nuxi_mgt_data(rq->vrq->mgt.mgt_func, &vi->cmd.mgt.data);
302 if (vi->cmd.cfg.cfg_func == VDA_CFG_GET_INIT) {
303 struct atto_ioctl_vda_cfg_cmd *cfg = &vi->cmd.cfg;
328 &vi->cmd.cfg.data);
335 vi->cmd.cli.cmd_rsp_len =