diff options
author | Frank Gevaerts <frank@gevaerts.be> | 2008-03-04 00:55:26 +0000 |
---|---|---|
committer | Frank Gevaerts <frank@gevaerts.be> | 2008-03-04 00:55:26 +0000 |
commit | 931ceed47f2add560e1b221e9bcc1e12454231b0 (patch) | |
tree | 3ec3c40f93e8cb384c0b6ddea20239ea6d03c9f0 /firmware | |
parent | 19815f81973306250daa07a8d5d251e25b34f685 (diff) | |
download | rockbox-931ceed47f2add560e1b221e9bcc1e12454231b0.tar.gz rockbox-931ceed47f2add560e1b221e9bcc1e12454231b0.zip |
MODE SENSE output data length field has to be the length of the response excluding the length field.
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@16508 a1c6a512-1295-4272-9138-f99709370657
Diffstat (limited to 'firmware')
-rw-r--r-- | firmware/usbstack/usb_storage.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/firmware/usbstack/usb_storage.c b/firmware/usbstack/usb_storage.c index 7e2f40fb5b..f1029c3c93 100644 --- a/firmware/usbstack/usb_storage.c +++ b/firmware/usbstack/usb_storage.c | |||
@@ -564,7 +564,7 @@ static void handle_scsi(struct command_block_wrapper* cbw) | |||
564 | logf("scsi mode_sense_10 %d %X",lun,page_code); | 564 | logf("scsi mode_sense_10 %d %X",lun,page_code); |
565 | switch(page_code) { | 565 | switch(page_code) { |
566 | case 0x3f: | 566 | case 0x3f: |
567 | tb.mode_sense_data_10->mode_data_length=htobe16(sizeof(struct mode_sense_data_10)); | 567 | tb.mode_sense_data_10->mode_data_length=htobe16(sizeof(struct mode_sense_data_10)-2); |
568 | tb.mode_sense_data_10->medium_type=0; | 568 | tb.mode_sense_data_10->medium_type=0; |
569 | tb.mode_sense_data_10->device_specific=0; | 569 | tb.mode_sense_data_10->device_specific=0; |
570 | tb.mode_sense_data_10->reserved=0; | 570 | tb.mode_sense_data_10->reserved=0; |
@@ -607,7 +607,7 @@ static void handle_scsi(struct command_block_wrapper* cbw) | |||
607 | switch(page_code) { | 607 | switch(page_code) { |
608 | case 0x3f: | 608 | case 0x3f: |
609 | /* All supported pages Since we support only one this is easy*/ | 609 | /* All supported pages Since we support only one this is easy*/ |
610 | tb.mode_sense_data_6->mode_data_length=sizeof(struct mode_sense_data_6); | 610 | tb.mode_sense_data_6->mode_data_length=sizeof(struct mode_sense_data_6)-1; |
611 | tb.mode_sense_data_6->medium_type=0; | 611 | tb.mode_sense_data_6->medium_type=0; |
612 | tb.mode_sense_data_6->device_specific=0; | 612 | tb.mode_sense_data_6->device_specific=0; |
613 | tb.mode_sense_data_6->block_descriptor_length=sizeof(struct mode_sense_block_descriptor_shortlba); | 613 | tb.mode_sense_data_6->block_descriptor_length=sizeof(struct mode_sense_block_descriptor_shortlba); |