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

Bryan Wu bryan.wu at canonical.com
Wed Dec 16 09:21:12 UTC 2009


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>
---
 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 */
-- 
1.6.3.3





More information about the kernel-team mailing list