summaryrefslogtreecommitdiff
path: root/drivers/scsi/sd.c
diff options
context:
space:
mode:
authorMaya Erez <merez@codeaurora.org>2014-11-13 12:55:04 +0200
committerDavid Keitel <dkeitel@codeaurora.org>2016-03-22 11:00:53 -0700
commit36c183b7430f9170497c4467e60a70d07fce239c (patch)
tree5744beadc0f96179288753de5a043a40159401bd /drivers/scsi/sd.c
parent3abbdb57e3f3461646821cb7b56178643261f0b5 (diff)
scsi: Adjust DBD setting in mode sense for caching mode page per LLD
Host sends MODE_SENSE_10 with caching mode page, to check if the device supports the cache feature. Some LLD standards requires DBD field to be set to 1. This patch allows LLD to define the setting of DBD if required. Change-Id: I7f6c0ff6613516c3ef49aacc0679b96b8bd9ccc8 Signed-off-by: Maya Erez <merez@codeaurora.org> [mattw@codeaurora.org: resolved a trivial context conflict in Scsi_Host struct definition] Signed-off-by: Matt Wagantall <mattw@codeaurora.org> [subhashj@codeaurora.org: resolved trivial merge conflicts] Signed-off-by: Subhash Jadavani <subhashj@codeaurora.org>
Diffstat (limited to 'drivers/scsi/sd.c')
-rw-r--r--drivers/scsi/sd.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
index 0a92b9547adb..9b63d5d7b73c 100644
--- a/drivers/scsi/sd.c
+++ b/drivers/scsi/sd.c
@@ -2456,6 +2456,7 @@ sd_read_cache_type(struct scsi_disk *sdkp, unsigned char *buffer)
{
int len = 0, res;
struct scsi_device *sdp = sdkp->device;
+ struct Scsi_Host *host = sdp->host;
int dbd;
int modepage;
@@ -2487,7 +2488,10 @@ sd_read_cache_type(struct scsi_disk *sdkp, unsigned char *buffer)
dbd = 8;
} else {
modepage = 8;
- dbd = 0;
+ if (host->set_dbd_for_caching)
+ dbd = 8;
+ else
+ dbd = 0;
}
/* cautiously ask */