[PATCH 1/1] Ubuntu: SAUCE: Workaround for SATA drive failure on Ubuntu installation

Stefan Bader stefan.bader at canonical.com
Wed Dec 16 10:36:43 UTC 2009


Ok, at least this really really only affects imx51. Just
remember this if you ever get a board in imx51 with a different
controller. ;-)


Bryan Wu wrote:
> From: Dinh Nguyen <r00091 at freescale.com>
> 
> BugLink: http://bugs.launchpad.net/bugs/431963
> 
> Original patch was from Dinh Nguyen. That one find the root cause
> of this SATA drive failure issue. The USB2SATA chip GL830 can not
> accept the ATA PASS THROUGH command.
> 
> This patch will skip the ATA PASS THROUGH command only for GL830
> USB device. So it will not effect other USB devices.
> 
> Signed-off-by: Dinh Nguyen <r00091 at freescale.com>
> Signed-off-by: Bryan Wu <bryan.wu at canonical.com>
Acked-by: Stefan Bader <stefan.bader at canonical.com>
> ---
>  drivers/usb/storage/usb.c |   17 +++++++++++++++--
>  1 files changed, 15 insertions(+), 2 deletions(-)
> 
> diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
> index 8060b85..d538511 100644
> --- a/drivers/usb/storage/usb.c
> +++ b/drivers/usb/storage/usb.c
> @@ -329,8 +329,21 @@ static int usb_stor_control_thread(void * __us)
>  
>  		/* we've got a command, let's do it! */
>  		else {
> -			US_DEBUG(usb_stor_show_command(us->srb));
> -			us->proto_handler(us->srb, us);
> +#ifdef CONFIG_MACH_MX51_BABBAGE
> +			u16 vid =
> +				le16_to_cpu(us->pusb_dev->descriptor.idVendor);
> +			u16 pid =
> +				le16_to_cpu(us->pusb_dev->descriptor.idProduct);
> +#endif
> +			US_DEBUGP(usb_stor_show_command(us->srb));
> +#ifdef CONFIG_MACH_MX51_BABBAGE
> +			if ((us->srb->cmnd[0] == 0x85) &&
> +				(vid == 0x05e3) &&
> +				(pid == 0x0718))
> +				US_DEBUGP("Skip ATA PASS-THROUGH command\n");
> +			else
> +#endif
> +				us->proto_handler(us->srb, us);
>  		}
>  
>  		/* lock access to the state */





More information about the kernel-team mailing list