Message ID | 0101016ed3d643f9-ffd45d6c-c593-4a13-a18f-a32da3d3bb97-000000@us-west-2.amazonses.com (mailing list archive) |
---|---|
State | Accepted |
Headers | show |
Series | UFS driver general fixes bundle 1 | expand |
> > UFS JEDEC standards require DBD field to be set to 1 in mode sense command. > This patch allows LLD to define the setting of DBD if required. > > Signed-off-by: Can Guo <cang@codeaurora.org> Reviewed-by: Avri Altman <avri.altman@wdc.com> > --- > drivers/scsi/scsi_lib.c | 2 ++ > include/scsi/scsi_device.h | 1 + > 2 files changed, 3 insertions(+) > > diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index > 5447738..3812e90 100644 > --- a/drivers/scsi/scsi_lib.c > +++ b/drivers/scsi/scsi_lib.c > @@ -2108,6 +2108,8 @@ void scsi_exit_queue(void) > > memset(data, 0, sizeof(*data)); > memset(&cmd[0], 0, 12); > + > + dbd = sdev->set_dbd_for_ms ? 8 : dbd; > cmd[1] = dbd & 0x18; /* allows DBD and LLBA bits */ > cmd[2] = modepage; > > diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index > 3ed836d..f8312a3 100644 > --- a/include/scsi/scsi_device.h > +++ b/include/scsi/scsi_device.h > @@ -172,6 +172,7 @@ struct scsi_device { > * because we did a bus reset. */ > unsigned use_10_for_rw:1; /* first try 10-byte read / write */ > unsigned use_10_for_ms:1; /* first try 10-byte mode sense/select */ > + unsigned set_dbd_for_ms:1; /* Set "DBD" field in mode sense */ > unsigned no_report_opcodes:1; /* no REPORT SUPPORTED OPERATION > CODES */ > unsigned no_write_same:1; /* no WRITE SAME command */ > unsigned use_16_for_rw:1; /* Use read/write(16) over read/write(10) */ > -- > The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum, > a Linux Foundation Collaborative Project
diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c index 5447738..3812e90 100644 --- a/drivers/scsi/scsi_lib.c +++ b/drivers/scsi/scsi_lib.c @@ -2108,6 +2108,8 @@ void scsi_exit_queue(void) memset(data, 0, sizeof(*data)); memset(&cmd[0], 0, 12); + + dbd = sdev->set_dbd_for_ms ? 8 : dbd; cmd[1] = dbd & 0x18; /* allows DBD and LLBA bits */ cmd[2] = modepage; diff --git a/include/scsi/scsi_device.h b/include/scsi/scsi_device.h index 3ed836d..f8312a3 100644 --- a/include/scsi/scsi_device.h +++ b/include/scsi/scsi_device.h @@ -172,6 +172,7 @@ struct scsi_device { * because we did a bus reset. */ unsigned use_10_for_rw:1; /* first try 10-byte read / write */ unsigned use_10_for_ms:1; /* first try 10-byte mode sense/select */ + unsigned set_dbd_for_ms:1; /* Set "DBD" field in mode sense */ unsigned no_report_opcodes:1; /* no REPORT SUPPORTED OPERATION CODES */ unsigned no_write_same:1; /* no WRITE SAME command */ unsigned use_16_for_rw:1; /* Use read/write(16) over read/write(10) */
UFS JEDEC standards require DBD field to be set to 1 in mode sense command. This patch allows LLD to define the setting of DBD if required. Signed-off-by: Can Guo <cang@codeaurora.org> --- drivers/scsi/scsi_lib.c | 2 ++ include/scsi/scsi_device.h | 1 + 2 files changed, 3 insertions(+)