Lines Matching refs:cmd

85 				struct scsi_cmnd *cmd)  in ps3rom_atapi_request()  argument
88 unsigned char opcode = cmd->cmnd[0]; in ps3rom_atapi_request()
96 memcpy(&atapi_cmnd.pkt, cmd->cmnd, 12); in ps3rom_atapi_request()
99 atapi_cmnd.blocks = atapi_cmnd.arglen = scsi_bufflen(cmd); in ps3rom_atapi_request()
102 switch (cmd->sc_data_direction) { in ps3rom_atapi_request()
104 if (scsi_bufflen(cmd) >= CD_FRAMESIZE) in ps3rom_atapi_request()
112 if (scsi_bufflen(cmd) >= CD_FRAMESIZE) in ps3rom_atapi_request()
117 scsi_sg_copy_to_buffer(cmd, dev->bounce_buf, dev->bounce_size); in ps3rom_atapi_request()
148 static inline unsigned int srb10_lba(const struct scsi_cmnd *cmd) in srb10_lba() argument
150 return cmd->cmnd[2] << 24 | cmd->cmnd[3] << 16 | cmd->cmnd[4] << 8 | in srb10_lba()
151 cmd->cmnd[5]; in srb10_lba()
154 static inline unsigned int srb10_len(const struct scsi_cmnd *cmd) in srb10_len() argument
156 return cmd->cmnd[7] << 8 | cmd->cmnd[8]; in srb10_len()
160 struct scsi_cmnd *cmd, u32 start_sector, in ps3rom_read_request() argument
181 struct scsi_cmnd *cmd, u32 start_sector, in ps3rom_write_request() argument
189 scsi_sg_copy_to_buffer(cmd, dev->bounce_buf, dev->bounce_size); in ps3rom_write_request()
203 static int ps3rom_queuecommand_lck(struct scsi_cmnd *cmd) in ps3rom_queuecommand_lck() argument
205 struct ps3rom_private *priv = shost_priv(cmd->device->host); in ps3rom_queuecommand_lck()
210 priv->curr_cmd = cmd; in ps3rom_queuecommand_lck()
212 opcode = cmd->cmnd[0]; in ps3rom_queuecommand_lck()
220 res = ps3rom_read_request(dev, cmd, srb10_lba(cmd), in ps3rom_queuecommand_lck()
221 srb10_len(cmd)); in ps3rom_queuecommand_lck()
225 res = ps3rom_write_request(dev, cmd, srb10_lba(cmd), in ps3rom_queuecommand_lck()
226 srb10_len(cmd)); in ps3rom_queuecommand_lck()
230 res = ps3rom_atapi_request(dev, cmd); in ps3rom_queuecommand_lck()
235 scsi_build_sense(cmd, 0, ILLEGAL_REQUEST, 0, 0); in ps3rom_queuecommand_lck()
236 cmd->result = res; in ps3rom_queuecommand_lck()
238 scsi_done(cmd); in ps3rom_queuecommand_lck()
263 struct scsi_cmnd *cmd; in ps3rom_interrupt() local
288 cmd = priv->curr_cmd; in ps3rom_interrupt()
292 if (cmd->sc_data_direction == DMA_FROM_DEVICE) { in ps3rom_interrupt()
295 len = scsi_sg_copy_from_buffer(cmd, in ps3rom_interrupt()
299 scsi_set_resid(cmd, scsi_bufflen(cmd) - len); in ps3rom_interrupt()
301 cmd->result = DID_OK << 16; in ps3rom_interrupt()
305 if (cmd->cmnd[0] == REQUEST_SENSE) { in ps3rom_interrupt()
309 cmd->result = DID_ERROR << 16 | SAM_STAT_CHECK_CONDITION; in ps3rom_interrupt()
314 cmd->result = DID_ERROR << 16; in ps3rom_interrupt()
318 scsi_build_sense(cmd, 0, sense_key, asc, ascq); in ps3rom_interrupt()
322 scsi_done(cmd); in ps3rom_interrupt()