mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
usb: properly detect empty mass storage media reader
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. Signed-off-by: Vincent Palatin <vpalatin@chromium.org> Signed-off-by: Vadim Bendebury <vbendeb@chromium.org> Signed-off-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
359439d288
commit
8b57e2f081
1 changed files with 10 additions and 0 deletions
|
@ -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--);
|
||||
|
||||
|
|
Loading…
Reference in a new issue