summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrank Gevaerts <frank@gevaerts.be>2008-03-04 00:55:26 +0000
committerFrank Gevaerts <frank@gevaerts.be>2008-03-04 00:55:26 +0000
commit931ceed47f2add560e1b221e9bcc1e12454231b0 (patch)
tree3ec3c40f93e8cb384c0b6ddea20239ea6d03c9f0
parent19815f81973306250daa07a8d5d251e25b34f685 (diff)
downloadrockbox-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
-rw-r--r--firmware/usbstack/usb_storage.c4
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);