summaryrefslogtreecommitdiffstats
path: root/uClinux-2.4.20-uc1/drivers/scsi/scsi_obsolete.c
diff options
context:
space:
mode:
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.c14
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;