===================================================================
@@ -174,6 +174,7 @@ struct scsi_device {
unsigned no_dif:1; /* T10 PI (DIF) should be disabled */
unsigned broken_fua:1; /* Don't set FUA bit */
unsigned lun_in_cdb:1; /* Store LUN bits in CDB[1] */
+ unsigned broken_synch_cache:1; /* SYNCHRONIZE_CACHE is broken */
atomic_t disk_events_disable_depth; /* disable depth for disk events */
===================================================================
@@ -2929,6 +2929,13 @@ static void sd_probe_async(void *data, a
sdkp->first_scan = 1;
sdkp->max_medium_access_timeouts = SD_MAX_MEDIUM_TIMEOUTS;
+ /*
+ * Some buggy USB bridges don't implement SYNCHRONIZE_CACHE
+ * but still claim to be write-back. Override them.
+ */
+ if (sdp->broken_synch_cache)
+ sdkp->cache_override = 1;
+
sd_revalidate_disk(gd);
gd->driverfs_dev = &sdp->sdev_gendev;
===================================================================
@@ -79,6 +79,8 @@
/* Cannot handle MI_REPORT_SUPPORTED_OPERATION_CODES */ \
US_FLAG(MAX_SECTORS_240, 0x08000000) \
/* Sets max_sectors to 240 */ \
+ US_FLAG(NO_SYNCHRONIZE_CACHE, 0x10000000) \
+ /* Cannot handle SYNCHRONIZE CACHE */ \
#define US_FLAG(name, value) US_FL_##name = value ,
enum { US_DO_ALL_FLAGS };
===================================================================
@@ -260,6 +260,10 @@ static int slave_configure(struct scsi_d
if (us->fflags & US_FL_BROKEN_FUA)
sdev->broken_fua = 1;
+ /* Likewise for SYNCHRONIZE CACHE */
+ if (us->fflags & US_FL_NO_SYNCHRONIZE_CACHE)
+ sdev->broken_synch_cache = 1;
+
} else {
/* Non-disk-type devices don't need to blacklist any pages
===================================================================
@@ -392,6 +392,13 @@ UNUSUAL_DEV( 0x04b8, 0x0602, 0x0110, 0x
"785EPX Storage",
USB_SC_SCSI, USB_PR_BULK, NULL, US_FL_SINGLE_LUN),
+/* Reported by Jun Itou <itou_jun@infoseek.jp> */
+UNUSUAL_DEV( 0x04bb, 0x0109, 0x0100, 0x0100,
+ "I-O DATA DEVICE INC.",
+ "I-O DATA HDZ-UES",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_NO_SYNCHRONIZE_CACHE),
+
/* Not sure who reported this originally but
* Pavel Machek <pavel@ucw.cz> reported that the extra US_FL_SINGLE_LUN
* flag be added */
@@ -409,6 +416,13 @@ UNUSUAL_DEV( 0x04ce, 0x0002, 0x026c, 0x
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
US_FL_FIX_CAPACITY),
+/* Reported by Markus Rathgeb <maggu2810@gmail.com> */
+UNUSUAL_DEV( 0x04cf, 0x8818, 0xb007, 0xb007,
+ "Myson Century, Inc.",
+ "USB Mass Storage Device",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_NO_SYNCHRONIZE_CACHE),
+
/* Reported by Kriston Fincher <kriston@airmail.net>
* Patch submitted by Sean Millichamp <sean@bruenor.org>
* This is to support the Panasonic PalmCam PV-SD4090
@@ -1372,6 +1386,13 @@ UNUSUAL_DEV( 0x0bc2, 0x3010, 0x0000, 0x0
USB_SC_DEVICE, USB_PR_DEVICE, NULL,
US_FL_SANE_SENSE ),
+/* Reported by matt <vickm78@hotmail.com> */
+UNUSUAL_DEV( 0x0bc2, 0x3332, 0x0012, 0x0012,
+ "Seagate",
+ "External",
+ USB_SC_DEVICE, USB_PR_DEVICE, NULL,
+ US_FL_NO_SYNCHRONIZE_CACHE),
+
UNUSUAL_DEV( 0x0d49, 0x7310, 0x0000, 0x9999,
"Maxtor",
"USB to SATA",