Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b81478d8 authored by Namjae Jeon's avatar Namjae Jeon Committed by James Bottomley
Browse files

[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: default avatarNamjae Jeon <namjae.jeon@samsung.com>
Signed-off-by: default avatarPankaj Kumar <pankaj.km@samsung.com>
Signed-off-by: default avatarAmit Sahrawat <a.sahrawat@samsung.com>
Signed-off-by: default avatarJames Bottomley <JBottomley@Parallels.com>
parent 365a7150
Loading
Loading
Loading
Loading
+7 −2
Original line number Diff line number Diff line
@@ -2261,8 +2261,13 @@ sd_read_cache_type(struct scsi_disk *sdkp, unsigned char *buffer)
		sd_printk(KERN_ERR, sdkp, "Asking for cache data failed\n");

defaults:
	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;
}
+1 −0
Original line number Diff line number Diff line
@@ -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 */