Lines Matching refs:cmd

97 				struct scsi_cmnd *cmd)  in ps3rom_atapi_request()  argument
100 unsigned char opcode = cmd->cmnd[0]; in ps3rom_atapi_request()
108 memcpy(&atapi_cmnd.pkt, cmd->cmnd, 12); in ps3rom_atapi_request()
111 atapi_cmnd.blocks = atapi_cmnd.arglen = scsi_bufflen(cmd); in ps3rom_atapi_request()
114 switch (cmd->sc_data_direction) { in ps3rom_atapi_request()
116 if (scsi_bufflen(cmd) >= CD_FRAMESIZE) in ps3rom_atapi_request()
124 if (scsi_bufflen(cmd) >= CD_FRAMESIZE) in ps3rom_atapi_request()
129 scsi_sg_copy_to_buffer(cmd, dev->bounce_buf, dev->bounce_size); in ps3rom_atapi_request()
160 static inline unsigned int srb10_lba(const struct scsi_cmnd *cmd) in srb10_lba() argument
162 return cmd->cmnd[2] << 24 | cmd->cmnd[3] << 16 | cmd->cmnd[4] << 8 | in srb10_lba()
163 cmd->cmnd[5]; in srb10_lba()
166 static inline unsigned int srb10_len(const struct scsi_cmnd *cmd) in srb10_len() argument
168 return cmd->cmnd[7] << 8 | cmd->cmnd[8]; in srb10_len()
172 struct scsi_cmnd *cmd, u32 start_sector, in ps3rom_read_request() argument
193 struct scsi_cmnd *cmd, u32 start_sector, in ps3rom_write_request() argument
201 scsi_sg_copy_to_buffer(cmd, dev->bounce_buf, dev->bounce_size); in ps3rom_write_request()
215 static int ps3rom_queuecommand_lck(struct scsi_cmnd *cmd, in ps3rom_queuecommand_lck() argument
218 struct ps3rom_private *priv = shost_priv(cmd->device->host); in ps3rom_queuecommand_lck()
223 priv->curr_cmd = cmd; in ps3rom_queuecommand_lck()
224 cmd->scsi_done = done; in ps3rom_queuecommand_lck()
226 opcode = cmd->cmnd[0]; in ps3rom_queuecommand_lck()
234 res = ps3rom_read_request(dev, cmd, srb10_lba(cmd), in ps3rom_queuecommand_lck()
235 srb10_len(cmd)); in ps3rom_queuecommand_lck()
239 res = ps3rom_write_request(dev, cmd, srb10_lba(cmd), in ps3rom_queuecommand_lck()
240 srb10_len(cmd)); in ps3rom_queuecommand_lck()
244 res = ps3rom_atapi_request(dev, cmd); in ps3rom_queuecommand_lck()
249 memset(cmd->sense_buffer, 0, SCSI_SENSE_BUFFERSIZE); in ps3rom_queuecommand_lck()
250 cmd->result = res; in ps3rom_queuecommand_lck()
251 cmd->sense_buffer[0] = 0x70; in ps3rom_queuecommand_lck()
252 cmd->sense_buffer[2] = ILLEGAL_REQUEST; in ps3rom_queuecommand_lck()
254 cmd->scsi_done(cmd); in ps3rom_queuecommand_lck()
279 struct scsi_cmnd *cmd; in ps3rom_interrupt() local
304 cmd = priv->curr_cmd; in ps3rom_interrupt()
308 if (cmd->sc_data_direction == DMA_FROM_DEVICE) { in ps3rom_interrupt()
311 len = scsi_sg_copy_from_buffer(cmd, in ps3rom_interrupt()
315 scsi_set_resid(cmd, scsi_bufflen(cmd) - len); in ps3rom_interrupt()
317 cmd->result = DID_OK << 16; in ps3rom_interrupt()
321 if (cmd->cmnd[0] == REQUEST_SENSE) { in ps3rom_interrupt()
325 cmd->result = DID_ERROR << 16 | SAM_STAT_CHECK_CONDITION; in ps3rom_interrupt()
330 cmd->result = DID_ERROR << 16; in ps3rom_interrupt()
334 scsi_build_sense_buffer(0, cmd->sense_buffer, sense_key, asc, ascq); in ps3rom_interrupt()
335 cmd->result = SAM_STAT_CHECK_CONDITION; in ps3rom_interrupt()
339 cmd->scsi_done(cmd); in ps3rom_interrupt()