Message ID | 1355363731-10103-10-git-send-email-sjg@chromium.org |
---|---|
State | Superseded, archived |
Delegated to: | Marek Vasut |
Headers | show |
Dear Simon Glass, > From: Vincent Palatin <vpalatin@chromium.org> > > When a USB card reader is empty, it will return "Not Ready - medium not > present" as Key Code Qualifier. In that situation, it's useless waiting > for the full timeout since the result won't change until the user > inserts a card. Applied, thanks! > Signed-off-by: Vincent Palatin <vpalatin@chromium.org> > Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> > Signed-off-by: Simon Glass <sjg@chromium.org> > --- > common/usb_storage.c | 10 ++++++++++ > 1 files changed, 10 insertions(+), 0 deletions(-) > > diff --git a/common/usb_storage.c b/common/usb_storage.c > index 2d92ee1..fb322b4 100644 > --- a/common/usb_storage.c > +++ b/common/usb_storage.c > @@ -970,6 +970,16 @@ static int usb_test_unit_ready(ccb *srb, struct > us_data *ss) return 0; > } > usb_request_sense(srb, ss); > + /* > + * Check the Key Code Qualifier, if it matches > + * "Not Ready - medium not present" > + * (the sense Key equals 0x2 and the ASC is 0x3a) > + * return immediately as the medium being absent won't change > + * unless there is a user action. > + */ > + if ((srb->sense_buf[2] == 0x02) && > + (srb->sense_buf[12] == 0x3a)) > + return -1; > mdelay(100); > } while (retries--); Best regards, Marek Vasut
diff --git a/common/usb_storage.c b/common/usb_storage.c index 2d92ee1..fb322b4 100644 --- a/common/usb_storage.c +++ b/common/usb_storage.c @@ -970,6 +970,16 @@ static int usb_test_unit_ready(ccb *srb, struct us_data *ss) return 0; } usb_request_sense(srb, ss); + /* + * Check the Key Code Qualifier, if it matches + * "Not Ready - medium not present" + * (the sense Key equals 0x2 and the ASC is 0x3a) + * return immediately as the medium being absent won't change + * unless there is a user action. + */ + if ((srb->sense_buf[2] == 0x02) && + (srb->sense_buf[12] == 0x3a)) + return -1; mdelay(100); } while (retries--);