[U-Boot] [PATCH 09/11] usb: properly detect empty mass storage media reader
Marek Vasut
marex at denx.de
Thu Dec 13 18:37:31 CET 2012
Dear Simon Glass,
> From: Vincent Palatin <vpalatin at 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 at chromium.org>
> Signed-off-by: Vadim Bendebury <vbendeb at chromium.org>
> Signed-off-by: Simon Glass <sjg at 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
More information about the U-Boot
mailing list