[SCSI] set to WCE if usb cache quirk is present.
Make use of USB quirk method to identify such HDD while reading the cache status in sd_probe(). If cache quirk is present for the HDD, lets assume that cache is enabled and make WCE bit equal to 1. Signed-off-by: Namjae Jeon <namjae.jeon@samsung.com> Signed-off-by: Pankaj Kumar <pankaj.km@samsung.com> Signed-off-by: Amit Sahrawat <a.sahrawat@samsung.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
This commit is contained in:
parent
365a715009
commit
b81478d82e
|
@ -2261,8 +2261,13 @@ bad_sense:
|
|||
sd_printk(KERN_ERR, sdkp, "Asking for cache data failed\n");
|
||||
|
||||
defaults:
|
||||
sd_printk(KERN_ERR, sdkp, "Assuming drive cache: write through\n");
|
||||
sdkp->WCE = 0;
|
||||
if (sdp->wce_default_on) {
|
||||
sd_printk(KERN_NOTICE, sdkp, "Assuming drive cache: write back\n");
|
||||
sdkp->WCE = 1;
|
||||
} else {
|
||||
sd_printk(KERN_ERR, sdkp, "Assuming drive cache: write through\n");
|
||||
sdkp->WCE = 0;
|
||||
}
|
||||
sdkp->RCD = 0;
|
||||
sdkp->DPOFUA = 0;
|
||||
}
|
||||
|
|
|
@ -154,6 +154,7 @@ struct scsi_device {
|
|||
unsigned no_read_capacity_16:1; /* Avoid READ_CAPACITY_16 cmds */
|
||||
unsigned try_rc_10_first:1; /* Try READ_CAPACACITY_10 first */
|
||||
unsigned is_visible:1; /* is the device visible in sysfs */
|
||||
unsigned wce_default_on:1; /* Cache is ON by default */
|
||||
|
||||
DECLARE_BITMAP(supported_events, SDEV_EVT_MAXBITS); /* supported events */
|
||||
struct list_head event_list; /* asserted events */
|
||||
|
|
Loading…
Reference in New Issue