Messages in this thread | | | Subject | Re: [PATCH v2 1/5] scsi: Adjust DBD setting in mode sense for caching mode page per LLD | From | Mark Salyzyn <> | Date | Thu, 31 Oct 2019 08:40:21 -0700 |
| |
On 10/31/19 8:20 AM, Mark Salyzyn wrote: > On 10/28/19 8:10 PM, Can Guo wrote: >> Host sends MODE_SENSE_10 with caching mode page, to check if the device >> supports the cache feature. >> UFS JEDEC standards require DBD field to be set to 1. >> >> This patch allows LLD to define the setting of DBD if required. >> >> Signed-off-by: Can Guo <cang@codeaurora.org> >> --- >> drivers/scsi/sd.c | 6 +++++- >> include/scsi/scsi_host.h | 6 ++++++ >> 2 files changed, 11 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c >> index aab4ed8..6d8194f 100644 >> --- a/drivers/scsi/sd.c >> +++ b/drivers/scsi/sd.c >> @@ -2629,6 +2629,7 @@ static int sd_try_rc16_first(struct scsi_device >> *sdp) >> { >> int len = 0, res; >> struct scsi_device *sdp = sdkp->device; >> + struct Scsi_Host *host = sdp->host; > variable locality >> int dbd; >> int modepage; >> @@ -2660,7 +2661,10 @@ static int sd_try_rc16_first(struct >> scsi_device *sdp) >> dbd = 8; >> } else { >> modepage = 8; >> - dbd = 0; >> + if (host->set_dbd_for_caching) >> + dbd = 8; >> + else >> + dbd = 0; >> } > > This simplifies to: > > - } else if (sdp->type == TYPE_RBC) { > > + } else if (sdp->type == TYPE_RBC || sdp->host->set_dbd_for_caching) {
IDK what happened with my mailer sending out an older infant copy (blame on fumble fingers). My final copy was instead the simplification:
+ dbd = sdp->host->set_dbd_for_caching ? 8 : 0;
| |