buf[2] = 0x5; buf[3] = (buf[3] & 0xf0) | 2; 
 /* ATAPI devices typically report zero for their SCSI version, * and sometimes deviate from the spec WRT response data * format.  If SCSI version is reported as zero like normal, * then we make the following fixups:  1) Fake MMC-5 version, * to indicate to the Linux scsi midlayer this is a modern * device.  2) Ensure response data format / ATAPI information * are always correct. */ /* FIXME: do we ever override EVPD pages and the like, with * this code? */ if (buf[2] == 0) { buf[2] = 0x5; buf[3] = 0x32; }  
static int atapi_qc_complete(struct ata_queued_cmd *qc, u8 drv_stat){	struct scsi_cmnd *cmd = qc->scsicmd;	if (unlikely(drv_stat & (ATA_ERR | ATA_BUSY | ATA_DRQ))) {		DPRINTK("request check condition\n");		cmd->result = SAM_STAT_CHECK_CONDITION;		qc->scsidone(cmd);		return 1;	} else {		u8 *scsicmd = cmd->cmnd;		if (scsicmd[0] == INQUIRY) {			u8 *buf = NULL;			unsigned int buflen;			buflen = ata_scsi_rbuf_get(cmd, &buf);			buf[2] = 0x5;			buf[3] = (buf[3] & 0xf0) | 2;			ata_scsi_rbuf_put(cmd, buf);		}		cmd->result = SAM_STAT_GOOD;	}	qc->scsidone(cmd);	return 0;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/a15dbeb4772626a015337dea06da67095aec3862/libata-scsi.c/clean/drivers/scsi/libata-scsi.c