diff options
Diffstat (limited to 'uClinux-2.4.20-uc1/drivers/scsi/scsi_obsolete.c')
-rw-r--r-- | uClinux-2.4.20-uc1/drivers/scsi/scsi_obsolete.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/uClinux-2.4.20-uc1/drivers/scsi/scsi_obsolete.c b/uClinux-2.4.20-uc1/drivers/scsi/scsi_obsolete.c index 488bb26..9c4361e 100644 --- a/uClinux-2.4.20-uc1/drivers/scsi/scsi_obsolete.c +++ b/uClinux-2.4.20-uc1/drivers/scsi/scsi_obsolete.c @@ -220,12 +220,21 @@ static void scsi_request_sense(Scsi_Cmnd * SCpnt) memcpy((void *) SCpnt->cmnd, (void *) generic_sense, sizeof(generic_sense)); +#ifndef CONFIG_BOARD_W90N745 + memcpy((void *)((unsigned char *)((unsigned long)SCpnt->cmnd | 0x80000000)), + (void *) generic_sense, + sizeof(generic_sense)); +#endif memset((void *) SCpnt->sense_buffer, 0, sizeof(SCpnt->sense_buffer)); if (SCpnt->device->scsi_level <= SCSI_2) SCpnt->cmnd[1] = SCpnt->lun << 5; SCpnt->cmnd[4] = sizeof(SCpnt->sense_buffer); +#ifdef CONFIG_BOARD_W90N745 + ((unsigned char *)((unsigned long)SCpnt->cmnd | 0x80000000))[1] = SCpnt->lun << 5; + ((unsigned char *)((unsigned long)SCpnt->cmnd | 0x80000000))[4] = sizeof(SCpnt->sense_buffer); +#endif SCpnt->request_buffer = &SCpnt->sense_buffer; SCpnt->request_bufflen = sizeof(SCpnt->sense_buffer); @@ -647,6 +656,11 @@ void scsi_old_done(Scsi_Cmnd * SCpnt) memcpy((void *) SCpnt->cmnd, (void *) SCpnt->data_cmnd, sizeof(SCpnt->data_cmnd)); +#ifdef CONFIG_BOARD_W90N745 + memcpy((void *)((unsigned char *)((unsigned long)SCpnt->cmnd|0x80000000)), + (void *) SCpnt->data_cmnd, + sizeof(SCpnt->data_cmnd)); +#endif memset((void *) SCpnt->sense_buffer, 0, sizeof(SCpnt->sense_buffer)); SCpnt->request_buffer = SCpnt->buffer; |