Add various UAS quirks (rhbz 1124119)
This commit is contained in:
parent
fe651573b7
commit
e11b645fcd
11
kernel.spec
11
kernel.spec
@ -617,6 +617,11 @@ Patch26094: uas-Add-US_FL_NO_REPORT_OPCODES-for-JMicron-JMS566-w.patch
|
|||||||
#rhbz 1178975
|
#rhbz 1178975
|
||||||
Patch26125: x86-vdso-Use-asm-volatile-in-__getcpu.patch
|
Patch26125: x86-vdso-Use-asm-volatile-in-__getcpu.patch
|
||||||
|
|
||||||
|
#rhbz 1124119
|
||||||
|
Patch26126: uas-Do-not-blacklist-ASM1153-disk-enclosures.patch
|
||||||
|
Patch26127: uas-Add-US_FL_NO_ATA_1X-for-2-more-Seagate-disk-encl.patch
|
||||||
|
Patch26128: uas-Add-no-report-opcodes-quirk-for-Simpletech-devic.patch
|
||||||
|
|
||||||
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
|
# git clone ssh://git.fedorahosted.org/git/kernel-arm64.git, git diff master...devel
|
||||||
Patch30000: kernel-arm64.patch
|
Patch30000: kernel-arm64.patch
|
||||||
|
|
||||||
@ -1342,6 +1347,11 @@ ApplyPatch uas-Add-US_FL_NO_REPORT_OPCODES-for-JMicron-JMS566-w.patch
|
|||||||
#rhbz 1178975
|
#rhbz 1178975
|
||||||
ApplyPatch x86-vdso-Use-asm-volatile-in-__getcpu.patch
|
ApplyPatch x86-vdso-Use-asm-volatile-in-__getcpu.patch
|
||||||
|
|
||||||
|
#rhbz 1124119
|
||||||
|
ApplyPatch uas-Do-not-blacklist-ASM1153-disk-enclosures.patch
|
||||||
|
ApplyPatch uas-Add-US_FL_NO_ATA_1X-for-2-more-Seagate-disk-encl.patch
|
||||||
|
ApplyPatch uas-Add-no-report-opcodes-quirk-for-Simpletech-devic.patch
|
||||||
|
|
||||||
%if 0%{?aarch64patches}
|
%if 0%{?aarch64patches}
|
||||||
ApplyPatch kernel-arm64.patch
|
ApplyPatch kernel-arm64.patch
|
||||||
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
|
%ifnarch aarch64 # this is stupid, but i want to notice before secondary koji does.
|
||||||
@ -2209,6 +2219,7 @@ fi
|
|||||||
# || ||
|
# || ||
|
||||||
%changelog
|
%changelog
|
||||||
* Mon Jan 12 2015 Josh Boyer <jwboyer@fedoraproject.org>
|
* Mon Jan 12 2015 Josh Boyer <jwboyer@fedoraproject.org>
|
||||||
|
- Add various UAS quirks (rhbz 1124119)
|
||||||
- Add patch to fix loop in VDSO (rhbz 1178975)
|
- Add patch to fix loop in VDSO (rhbz 1178975)
|
||||||
|
|
||||||
* Fri Jan 09 2015 Josh Boyer <jwboyer@fedoraproject.org> - 3.19.0-0.rc3.git2.1
|
* Fri Jan 09 2015 Josh Boyer <jwboyer@fedoraproject.org> - 3.19.0-0.rc3.git2.1
|
||||||
|
48
uas-Add-US_FL_NO_ATA_1X-for-2-more-Seagate-disk-encl.patch
Normal file
48
uas-Add-US_FL_NO_ATA_1X-for-2-more-Seagate-disk-encl.patch
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Thu, 8 Jan 2015 14:54:03 +0100
|
||||||
|
Subject: [PATCH] uas: Add US_FL_NO_ATA_1X for 2 more Seagate disk enclosures
|
||||||
|
|
||||||
|
Just like all previous UAS capable Seagate disk enclosures, these need the
|
||||||
|
US_FL_NO_ATA_1X to not crash when udev probes them.
|
||||||
|
|
||||||
|
Cc: stable@vger.kernel.org # 3.16
|
||||||
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/usb/storage/unusual_uas.h | 14 ++++++++++++++
|
||||||
|
1 file changed, 14 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
|
||||||
|
index f8492c1fd0e8..9ec4561f6c2c 100644
|
||||||
|
--- a/drivers/usb/storage/unusual_uas.h
|
||||||
|
+++ b/drivers/usb/storage/unusual_uas.h
|
||||||
|
@@ -75,6 +75,13 @@ UNUSUAL_DEV(0x0bc2, 0xa013, 0x0000, 0x9999,
|
||||||
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||||
|
US_FL_NO_ATA_1X),
|
||||||
|
|
||||||
|
+/* Reported-by: Hans de Goede <hdegoede@redhat.com> */
|
||||||
|
+UNUSUAL_DEV(0x0bc2, 0xa0a4, 0x0000, 0x9999,
|
||||||
|
+ "Seagate",
|
||||||
|
+ "Backup Plus Desk",
|
||||||
|
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||||
|
+ US_FL_NO_ATA_1X),
|
||||||
|
+
|
||||||
|
/* https://bbs.archlinux.org/viewtopic.php?id=183190 */
|
||||||
|
UNUSUAL_DEV(0x0bc2, 0xab20, 0x0000, 0x9999,
|
||||||
|
"Seagate",
|
||||||
|
@@ -89,6 +96,13 @@ UNUSUAL_DEV(0x0bc2, 0xab21, 0x0000, 0x9999,
|
||||||
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||||
|
US_FL_NO_ATA_1X),
|
||||||
|
|
||||||
|
+/* Reported-by: G. Richard Bellamy <rbellamy@pteradigm.com> */
|
||||||
|
+UNUSUAL_DEV(0x0bc2, 0xab2a, 0x0000, 0x9999,
|
||||||
|
+ "Seagate",
|
||||||
|
+ "BUP Fast HDD",
|
||||||
|
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||||
|
+ US_FL_NO_ATA_1X),
|
||||||
|
+
|
||||||
|
/* Reported-by: Claudio Bizzarri <claudio.bizzarri@gmail.com> */
|
||||||
|
UNUSUAL_DEV(0x152d, 0x0567, 0x0000, 0x9999,
|
||||||
|
"JMicron",
|
||||||
|
--
|
||||||
|
2.1.0
|
||||||
|
|
33
uas-Add-no-report-opcodes-quirk-for-Simpletech-devic.patch
Normal file
33
uas-Add-no-report-opcodes-quirk-for-Simpletech-devic.patch
Normal file
@ -0,0 +1,33 @@
|
|||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Mon, 12 Jan 2015 13:24:31 +0100
|
||||||
|
Subject: [PATCH] uas: Add no-report-opcodes quirk for Simpletech devices with
|
||||||
|
id 4971:8017
|
||||||
|
|
||||||
|
Like some other uas devices these devices hang when a report-opcodes scsi
|
||||||
|
command is send to them.
|
||||||
|
|
||||||
|
BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1124119
|
||||||
|
Cc: stable@vger.kernel.org # 3.16
|
||||||
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/usb/storage/unusual_uas.h | 7 +++++++
|
||||||
|
1 file changed, 7 insertions(+)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
|
||||||
|
index 9ec4561f6c2c..da3d98c72db1 100644
|
||||||
|
--- a/drivers/usb/storage/unusual_uas.h
|
||||||
|
+++ b/drivers/usb/storage/unusual_uas.h
|
||||||
|
@@ -130,3 +130,10 @@ UNUSUAL_DEV(0x4971, 0x1012, 0x0000, 0x9999,
|
||||||
|
"External HDD",
|
||||||
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||||
|
US_FL_IGNORE_UAS),
|
||||||
|
+
|
||||||
|
+/* Reported-by: Richard Henderson <rth@redhat.com> */
|
||||||
|
+UNUSUAL_DEV(0x4971, 0x8017, 0x0000, 0x9999,
|
||||||
|
+ "SimpleTech",
|
||||||
|
+ "External HDD",
|
||||||
|
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||||
|
+ US_FL_NO_REPORT_OPCODES),
|
||||||
|
--
|
||||||
|
2.1.0
|
||||||
|
|
94
uas-Do-not-blacklist-ASM1153-disk-enclosures.patch
Normal file
94
uas-Do-not-blacklist-ASM1153-disk-enclosures.patch
Normal file
@ -0,0 +1,94 @@
|
|||||||
|
From: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
Date: Thu, 8 Jan 2015 14:42:01 +0100
|
||||||
|
Subject: [PATCH] uas: Do not blacklist ASM1153 disk enclosures
|
||||||
|
|
||||||
|
Our detection logic to avoid doing UAS on ASM1051 bridge chips causes problems
|
||||||
|
with newer ASM1153 disk enclosures in 2 ways:
|
||||||
|
|
||||||
|
1) Some ASM1153 disk enclosures re-use the ASM1051 device-id of 5106, which
|
||||||
|
we assume is always an ASM1051, so remove the quirk for 5106, and instead
|
||||||
|
use the same detection logic as we already use for device-id 55aa, which is
|
||||||
|
used for all of ASM1051, ASM1053 and ASM1153 devices <sigh>.
|
||||||
|
|
||||||
|
2) Our detection logic to differentiate between ASM1051 and ASM1053 sees
|
||||||
|
ASM1153 devices as ASM1051 because they have 32 streams like ASM1051 devs.
|
||||||
|
Luckily the ASM1153 descriptors are not 100% identical, unlike the previous
|
||||||
|
models the ASM1153 has bMaxPower == 0, so use that to differentiate it.
|
||||||
|
|
||||||
|
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
|
||||||
|
---
|
||||||
|
drivers/usb/storage/uas-detect.h | 33 ++++++++++++++++++++++++++++-----
|
||||||
|
drivers/usb/storage/unusual_uas.h | 8 --------
|
||||||
|
2 files changed, 28 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/drivers/usb/storage/uas-detect.h b/drivers/usb/storage/uas-detect.h
|
||||||
|
index 8a6f371ed6e7..9893d696fc97 100644
|
||||||
|
--- a/drivers/usb/storage/uas-detect.h
|
||||||
|
+++ b/drivers/usb/storage/uas-detect.h
|
||||||
|
@@ -69,16 +69,39 @@ static int uas_use_uas_driver(struct usb_interface *intf,
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
- * ASM1051 and older ASM1053 devices have the same usb-id, and UAS is
|
||||||
|
- * broken on the ASM1051, use the number of streams to differentiate.
|
||||||
|
- * New ASM1053-s also support 32 streams, but have a different prod-id.
|
||||||
|
+ * ASMedia has a number of usb3 to sata bridge chips, at the time of
|
||||||
|
+ * this writing the following versions exist:
|
||||||
|
+ * ASM1051 - no uas support version
|
||||||
|
+ * ASM1051 - with broken (*) uas support
|
||||||
|
+ * ASM1053 - with working uas support
|
||||||
|
+ * ASM1153 - with working uas support
|
||||||
|
+ *
|
||||||
|
+ * Devices with these chips re-use a number of device-ids over the
|
||||||
|
+ * entire line, so the device-id is useless to determine if we're
|
||||||
|
+ * dealing with an ASM1051 (which we want to avoid).
|
||||||
|
+ *
|
||||||
|
+ * The ASM1153 can be identified by config.MaxPower == 0,
|
||||||
|
+ * where as the ASM105x models have config.MaxPower == 36.
|
||||||
|
+ *
|
||||||
|
+ * Differentiating between the ASM1053 and ASM1051 is trickier, when
|
||||||
|
+ * connected over USB-3 we can look at the number of streams supported,
|
||||||
|
+ * ASM1051 supports 32 streams, where as early ASM1053 versions support
|
||||||
|
+ * 16 streams, newer ASM1053-s also support 32 streams, but have a
|
||||||
|
+ * different prod-id.
|
||||||
|
+ *
|
||||||
|
+ * (*) ASM1051 chips do work with UAS with some disks (with the
|
||||||
|
+ * US_FL_NO_REPORT_OPCODES quirk), but are broken with other disks
|
||||||
|
*/
|
||||||
|
if (le16_to_cpu(udev->descriptor.idVendor) == 0x174c &&
|
||||||
|
- le16_to_cpu(udev->descriptor.idProduct) == 0x55aa) {
|
||||||
|
- if (udev->speed < USB_SPEED_SUPER) {
|
||||||
|
+ (le16_to_cpu(udev->descriptor.idProduct) == 0x5106 ||
|
||||||
|
+ le16_to_cpu(udev->descriptor.idProduct) == 0x55aa)) {
|
||||||
|
+ if (udev->actconfig->desc.bMaxPower == 0) {
|
||||||
|
+ /* ASM1153, do nothing */
|
||||||
|
+ } else if (udev->speed < USB_SPEED_SUPER) {
|
||||||
|
/* No streams info, assume ASM1051 */
|
||||||
|
flags |= US_FL_IGNORE_UAS;
|
||||||
|
} else if (usb_ss_max_streams(&eps[1]->ss_ep_comp) == 32) {
|
||||||
|
+ /* Possibly an ASM1051, disable uas */
|
||||||
|
flags |= US_FL_IGNORE_UAS;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/drivers/usb/storage/unusual_uas.h b/drivers/usb/storage/unusual_uas.h
|
||||||
|
index 2f0a3d35269a..f8492c1fd0e8 100644
|
||||||
|
--- a/drivers/usb/storage/unusual_uas.h
|
||||||
|
+++ b/drivers/usb/storage/unusual_uas.h
|
||||||
|
@@ -96,14 +96,6 @@ UNUSUAL_DEV(0x152d, 0x0567, 0x0000, 0x9999,
|
||||||
|
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||||
|
US_FL_NO_REPORT_OPCODES),
|
||||||
|
|
||||||
|
-/* Most ASM1051 based devices have issues with uas, blacklist them all */
|
||||||
|
-/* Reported-by: Hans de Goede <hdegoede@redhat.com> */
|
||||||
|
-UNUSUAL_DEV(0x174c, 0x5106, 0x0000, 0x9999,
|
||||||
|
- "ASMedia",
|
||||||
|
- "ASM1051",
|
||||||
|
- USB_SC_DEVICE, USB_PR_DEVICE, NULL,
|
||||||
|
- US_FL_IGNORE_UAS),
|
||||||
|
-
|
||||||
|
/* Reported-by: Hans de Goede <hdegoede@redhat.com> */
|
||||||
|
UNUSUAL_DEV(0x2109, 0x0711, 0x0000, 0x9999,
|
||||||
|
"VIA",
|
||||||
|
--
|
||||||
|
2.1.0
|
||||||
|
|
Loading…
Reference in New Issue
Block a user