44 lines
2.2 KiB
Diff
44 lines
2.2 KiB
Diff
|
X-Git-Url: http://git.0pointer.de/?p=libatasmart.git;a=blobdiff_plain;f=atasmart.c;h=01d3cb2cca0817963b91f7f1c9cd72fde8b10b91;hp=b6bcb90b1662ca0a99fe89cf5c8aeb4cdbcc7e49;hb=HEAD;hpb=7e8f3350aea65ed203305c8e7e4fc1cfd4656393
|
||
|
|
||
|
diff --git a/atasmart.c b/atasmart.c
|
||
|
index b6bcb90..01d3cb2 100644
|
||
|
--- a/atasmart.c
|
||
|
+++ b/atasmart.c
|
||
|
@@ -2474,15 +2474,30 @@ static int disk_find_type(SkDisk *d, dev_t devnum) {
|
||
|
goto finish;
|
||
|
}
|
||
|
|
||
|
- if ((vid == 0x0c0b && pid == 0xb159) ||
|
||
|
- (vid == 0x04fc && pid == 0x0c25) ||
|
||
|
- (vid == 0x04fc && pid == 0x0c15))
|
||
|
- d->type = SK_DISK_TYPE_SUNPLUS;
|
||
|
- else if ((vid == 0x152d && pid == 0x2329) ||
|
||
|
- (vid == 0x152d && pid == 0x2336) ||
|
||
|
+ if ((vid == 0x152d && pid == 0x2329) ||
|
||
|
(vid == 0x152d && pid == 0x2338) ||
|
||
|
(vid == 0x152d && pid == 0x2339))
|
||
|
+ /* Some JMicron bridges seem to choke on SMART
|
||
|
+ * commands, so let's explicitly black list
|
||
|
+ * them here.
|
||
|
+ *
|
||
|
+ * https://bugzilla.redhat.com/show_bug.cgi?id=515881
|
||
|
+ *
|
||
|
+ * At least some of the JMicron bridges with
|
||
|
+ * these vids/pids choke on the jmicron access
|
||
|
+ * mode. To make sure we don't break things
|
||
|
+ * for people we now disable this by
|
||
|
+ * default.*/
|
||
|
+ d->type = SK_DISK_TYPE_NONE;
|
||
|
+ else if ((vid == 0x152d && pid == 0x2336))
|
||
|
+ /* This JMicron bridge seems to always work
|
||
|
+ * with SMART commands send with the jmicron
|
||
|
+ * access mode. */
|
||
|
d->type = SK_DISK_TYPE_JMICRON;
|
||
|
+ else if ((vid == 0x0c0b && pid == 0xb159) ||
|
||
|
+ (vid == 0x04fc && pid == 0x0c25) ||
|
||
|
+ (vid == 0x04fc && pid == 0x0c15))
|
||
|
+ d->type = SK_DISK_TYPE_SUNPLUS;
|
||
|
else
|
||
|
d->type = SK_DISK_TYPE_ATA_PASSTHROUGH_12;
|
||
|
|