lkml.org 
[lkml]   [2020]   [Jun]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRe: [PATCH v1 1/3] scsi: ufs: add write booster feature support
Hi Stanley,

On 6/24/20, Stanley Chu <stanley.chu@mediatek.com> wrote:
> Hi Steev,
>
> On Tue, 2020-06-23 at 20:10 -0500, Steev Klimaszewski wrote:
>> On 6/23/20 1:51 AM, Kyuho Choi wrote:
>> > Hi Avri,
>> >
>> > On 6/23/20, Avri Altman <Avri.Altman@wdc.com> wrote:
>> >>> AFAIK, this device are ufs 2.1. It's not support writebooster.
>> >>>
>> >>> I'd check latest linux scsi branch and ufshcd_wb_config function's
>> >>> called without device capability check.
>> >> Please grep ufshcd_wb_probe.
>> >>
>> > I got your point, but as I mentioned, this device not support wb, this
>> > is old products.
>> >
>> > I'm not sure ufshcd_wb_probe are called or not in Rob and Steev's
>> > platform.
>> > If it's called, hba->caps are setted with wb diable and this error not
>> > occured.
>> > But (it looks) not called, same query error will be occured in
>> > ufshcd_wb_config/ctrl.
>> >
>> > BR,
>> > Kyuho Choi
>>
>> I do show ufshcd_wb_probe in my sources - I'm based on 5.8-rc2 with a
>> few extra patches for the c630, and the inline encryption patches.
>>
>> I this is the output that I see -
>>
>> 1.
>> [ 0.702501] ufshcd-qcom 1d84000.ufshc: ufshcd_populate_vreg:
>> Unable to find vdd-hba-supply regulator, assuming enabled
>> 2.
>> [ 0.702506] ufshcd-qcom 1d84000.ufshc: ufshcd_populate_vreg:
>> Unable to find vccq-supply regulator, assuming enabled
>> 3.
>> [ 0.702508] ufshcd-qcom 1d84000.ufshc: ufshcd_populate_vreg:
>> Unable to find vccq2-supply regulator, assuming enabled
>> 4.
>> [ 0.703296] ufshcd-qcom 1d84000.ufshc: Found QC Inline Crypto
>> Engine (ICE) v3.1.75
>> 5.
>> [ 0.705121] scsi host0: ufshcd
>> 6.
>> [ 0.720163] ALSA device list:
>> 7.
>> [ 0.720171] No soundcards found.
>> 8.
>> [ 0.731393] ufshcd-qcom 1d84000.ufshc: ufshcd_print_pwr_info:[RX,
>> TX]: gear=[1, 1], lane[1, 1], pwr[SLOWAUTO_MODE, SLOWAUTO_MODE],
>> rate = 0
>> 9.
>> [ 0.893738] ufshcd-qcom 1d84000.ufshc: ufshcd_print_pwr_info:[RX,
>> TX]: gear=[3, 3], lane[2, 2], pwr[FAST MODE, FAST MODE], rate = 2
>> 10.
>> [ 0.894703] ufshcd-qcom 1d84000.ufshc:
>> ufshcd_find_max_sup_active_icc_level: Regulator capability was not
>> set, actvIccLevel=0
>> 11.
>> [ 0.896032] ufshcd-qcom 1d84000.ufshc: ufshcd_query_flag: Sending
>> flag query for idn 14 failed, err = 253
>> 12.
>> [ 0.896919] ufshcd-qcom 1d84000.ufshc: ufshcd_query_flag: Sending
>> flag query for idn 14 failed, err = 253
>> 13.
>> [ 0.897798] ufshcd-qcom 1d84000.ufshc: ufshcd_query_flag: Sending
>> flag query for idn 14 failed, err = 253
>> 14.
>> [ 0.898227] ufshcd-qcom 1d84000.ufshc: ufshcd_query_flag_retry:
>> query attribute, opcode 6, idn 14, failed with error 253 after 3
>> retires
>> 15.
>> [ 0.898798] ufshcd-qcom 1d84000.ufshc: ufshcd_wb_ctrl write
>> booster enable failed 253
>> 16.
>> [ 0.899150] ufshcd-qcom 1d84000.ufshc: ufshcd_wb_config: Enable
>> WB failed: 253
>> 17.
>> [ 0.899918] ufshcd-qcom 1d84000.ufshc: ufshcd_query_flag: Sending
>> flag query for idn 16 failed, err = 253
>> 18.
>> [ 0.900448] ufshcd-qcom 1d84000.ufshc: ufshcd_query_flag: Sending
>> flag query for idn 16 failed, err = 253
>> 19.
>> [ 0.901290] ufshcd-qcom 1d84000.ufshc: ufshcd_query_flag: Sending
>> flag query for idn 16 failed, err = 253
>> 20.
>> [ 0.901749] ufshcd-qcom 1d84000.ufshc: ufshcd_query_flag_retry:
>> query attribute, opcode 6, idn 16, failed with error 253 after 3
>> retires
>> 21.
>> [ 0.902285] ufshcd-qcom 1d84000.ufshc: ufshcd_wb_config: En WB
>> flush during H8: failed: 253
>> 22.
>> [ 0.903105] ufshcd-qcom 1d84000.ufshc: ufshcd_query_flag: Sending
>> flag query for idn 15 failed, err = 253
>> 23.
>> [ 0.903988] ufshcd-qcom 1d84000.ufshc: ufshcd_query_flag: Sending
>> flag query for idn 15 failed, err = 253
>> 24.
>> [ 0.904866] ufshcd-qcom 1d84000.ufshc: ufshcd_query_flag: Sending
>> flag query for idn 15 failed, err = 253
>> 25.
>> [ 0.905294] ufshcd-qcom 1d84000.ufshc: ufshcd_query_flag_retry:
>> query attribute, opcode 6, idn 15, failed with error 253 after 3
>> retires
>> 26.
>> [ 0.905859] ufshcd-qcom 1d84000.ufshc: ufshcd_wb_buf_flush_enable
>> WB - buf flush enable failed 253
>
> Please help try below simple patch to see if above WriteBooster messages
> can be eliminated.
>
>
> ---
> drivers/scsi/ufs/ufshcd.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/scsi/ufs/ufshcd.c b/drivers/scsi/ufs/ufshcd.c
> index f173ad1bd79f..089c0785f0b3 100644
> --- a/drivers/scsi/ufs/ufshcd.c
> +++ b/drivers/scsi/ufs/ufshcd.c
> @@ -6985,6 +6985,8 @@ static int ufs_get_device_desc(struct ufs_hba
> *hba)
> dev_info->wspecversion == 0x220 ||
> (hba->dev_quirks & UFS_DEVICE_QUIRK_SUPPORT_EXTENDED_FEATURES))
> ufshcd_wb_probe(hba, desc_buf);
> + else
> + hba->caps &= ~UFSHCD_CAP_WB_EN;

IMO, hba->caps about WB_EN is already set in ufs-vendor.c. So for
writebooster didn't support ufs devices, need to clear this caps.

>
> /*
> * ufshcd_read_string_desc returns size of the string
> --
>
>
>
>> 27.
>> [ 0.907659] scsi 0:0:0:49488: Well-known LUN SAMSUNG
>> KLUDG4U1EA-B0C1 0500 PQ: 0 ANSI: 6
>> 28.
>> [ 0.911082] scsi 0:0:0:49476: Well-known LUN SAMSUNG
>> KLUDG4U1EA-B0C1 0500 PQ: 0 ANSI: 6
>> 29.
>> [ 0.913268] scsi 0:0:0:49456: Well-known LUN SAMSUNG
>> KLUDG4U1EA-B0C1 0500 PQ: 0 ANSI: 6
>> 30.
>> [ 0.914580] scsi 0:0:0:0: Direct-Access SAMSUNG
>> KLUDG4U1EA-B0C1 0500 PQ: 0 ANSI: 6
>> 31.
>> [ 0.915156] sd 0:0:0:0: Power-on or device reset occurred
>> 32.
>> [ 0.915311] scsi 0:0:0:1: Direct-Access SAMSUNG
>> KLUDG4U1EA-B0C1 0500 PQ: 0 ANSI: 6
>> 33.
>> [ 0.916104] scsi 0:0:0:2: Direct-Access SAMSUNG
>> KLUDG4U1EA-B0C1 0500 PQ: 0 ANSI: 6
>> 34.
>> [ 0.916318] sd 0:0:0:0: [sda] 29765632 4096-byte logical blocks:
>> (122 GB/114 GiB)
>> 35.
>> [ 0.916417] sd 0:0:0:0: [sda] Write Protect is off
>> 36.
>> [ 0.916424] sd 0:0:0:0: [sda] Mode Sense: 00 32 00 10
>> 37.
>> [ 0.916589] sd 0:0:0:0: [sda] Write cache: enabled, read cache:
>> enabled, supports DPO and FUA
>> 38.
>> [ 0.916667] sd 0:0:0:0: [sda] Optimal transfer size 8192 bytes
>> 39.
>> [ 0.916897] sd 0:0:0:1: Power-on or device reset occurred
>> 40.
>> [ 0.917131] scsi 0:0:0:3: Direct-Access SAMSUNG
>> KLUDG4U1EA-B0C1 0500 PQ: 0 ANSI: 6
>> 41.
>> [ 0.917498] sd 0:0:0:2: Power-on or device reset occurred
>> 42.
>> [ 0.917994] sd 0:0:0:3: Power-on or device reset occurred
>> 43.
>> [ 0.919301] scsi 0:0:0:4: Direct-Access SAMSUNG
>> KLUDG4U1EA-B0C1 0500 PQ: 0 ANSI: 6
>> 44.
>> [ 0.920207] sd 0:0:0:2: [sdc] 1024 4096-byte logical blocks:
>> (4.19 MB/4.00 MiB)
>> 45.
>> [ 0.920310] sd 0:0:0:3: [sdd] 32768 4096-byte logical blocks:
>> (134 MB/128 MiB)
>> 46.
>> [ 0.920312] sd 0:0:0:2: [sdc] Write Protect is off
>> 47.
>> [ 0.920317] sd 0:0:0:2: [sdc] Mode Sense: 00 32 00 10
>> 48.
>> [ 0.920405] sd 0:0:0:3: [sdd] Write Protect is off
>> 49.
>> [ 0.920410] sd 0:0:0:3: [sdd] Mode Sense: 00 32 00 10
>> 50.
>> [ 0.920642] sd 0:0:0:2: [sdc] Write cache: enabled, read cache:
>> enabled, supports DPO and FUA
>> 51.
>> [ 0.921151] sd 0:0:0:2: [sdc] Optimal transfer size 8192 bytes
>> 52.
>> [ 0.921212] sd 0:0:0:3: [sdd] Write cache: enabled, read cache:
>> enabled, supports DPO and FUA
>> 53.
>> [ 0.921526] sd 0:0:0:3: [sdd] Optimal transfer size 8192 bytes
>> 54.
>> [ 0.922585] sd 0:0:0:4: Power-on or device reset occurred
>> 55.
>> [ 0.922983] scsi 0:0:0:5: Direct-Access SAMSUNG
>> KLUDG4U1EA-B0C1 0500 PQ: 0 ANSI: 6
>> 56.
>> [ 0.923490] sd 0:0:0:1: [sdb] 1024 4096-byte logical blocks:
>> (4.19 MB/4.00 MiB)
>> 57.
>> [ 0.928867] sd 0:0:0:1: [sdb] Write Protect is off
>> 58.
>> [ 0.928870] sd 0:0:0:1: [sdb] Mode Sense: 00 32 00 10
>> 59.
>> [ 0.930887] sd 0:0:0:4: [sde] 1048576 4096-byte logical blocks:
>> (4.29 GB/4.00 GiB)
>> 60.
>> [ 0.931179] sd 0:0:0:1: [sdb] Write cache: enabled, read cache:
>> enabled, supports DPO and FUA
>> 61.
>> [ 0.932015] random: fast init done
>> 62.
>> [ 0.932022] sd 0:0:0:5: Power-on or device reset occurred
>> 63.
>> [ 0.935289] sd 0:0:0:4: [sde] Write Protect is off
>> 64.
>> [ 0.935293] sd 0:0:0:4: [sde] Mode Sense: 00 32 00 10
>> 65.
>> [ 0.935396] sda: sda1 sda2 sda3 sda4 sda5
>> 66.
>> [ 0.936047] sd 0:0:0:1: [sdb] Optimal transfer size 8192 bytes
>> 67.
>> [ 0.936358] sd 0:0:0:4: [sde] Write cache: enabled, read cache:
>> enabled, supports DPO and FUA
>> 68.
>> [ 0.936865] sd 0:0:0:4: [sde] Optimal transfer size 8192 bytes
>> 69.
>> [ 0.938448] sdc: sdc1 sdc2
>> 70.
>> [ 0.939470] sd 0:0:0:5: [sdf] 393216 4096-byte logical blocks:
>> (1.61 GB/1.50 GiB)
>> 71.
>> [ 0.939743] sd 0:0:0:5: [sdf] Write Protect is off
>> 72.
>> [ 0.939747] sd 0:0:0:5: [sdf] Mode Sense: 00 32 00 10
>> 73.
>> [ 0.940609] sd 0:0:0:5: [sdf] Write cache: enabled, read cache:
>> enabled, supports DPO and FUA
>> 74.
>> [ 0.940837] sd 0:0:0:5: [sdf] Optimal transfer size 8192 bytes
>> 75.
>> [ 0.940984] sd 0:0:0:0: [sda] Attached SCSI disk
>> 76.
>> [ 0.941150] sd 0:0:0:2: [sdc] Attached SCSI disk
>> 77.
>> [ 0.945814] sdd: sdd2 sdd3
>> 78.
>> [ 0.945983] sdf: sdf2 sdf3 sdf4 sdf5
>> 79.
>> [ 0.946701] sde: sde1 sde2 sde3 sde4 sde5 sde6 sde7 sde8 sde9
>> sde10 sde11 sde12 sde13 sde14 sde15 sde16 sde17 sde18 sde19 sde20
>> sde21 sde22 sde23 sde24 sde25 sde26 sde27
>> 80.
>> [ 0.953610] sdb: sdb1 sdb2
>> 81.
>> [ 0.954035] sd 0:0:0:5: [sdf] Attached SCSI disk
>> 82.
>> [ 0.954131] sd 0:0:0:4: [sde] Attached SCSI disk
>> 83.
>> [ 0.954177] sd 0:0:0:3: [sdd] Attached SCSI disk
>> 84.
>> [ 0.955316] sd 0:0:0:1: [sdb] Attached SCSI disk
>>
>> Full dmesg output at https://pastebin.com/azWahunu
>>
>>
>> -- Steev
>>
>
>

\
 
 \ /
  Last update: 2020-06-24 04:07    [W:0.110 / U:22.944 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site