Re: [PATCH v2 1/3] scsi: ufshcd: Update the set frequency to devfreq

From: Asutosh Das (asd)
Date: Tue May 26 2020 - 13:17:40 EST


Hi Jeffrey
On 5/25/2020 3:19 PM, Jeffrey Hugo wrote:
On Wed, Mar 25, 2020 at 12:29 PM Asutosh Das <asutoshd@xxxxxxxxxxxxxx> wrote:

Currently, the frequency that devfreq provides the
driver to set always leads the clocks to be scaled up.
Hence, round the clock-rate to the nearest frequency
before deciding to scale.

Also update the devfreq statistics of current frequency.

Signed-off-by: Asutosh Das <asutoshd@xxxxxxxxxxxxxx>

This change appears to cause issues for the Lenovo Miix 630, as
identified by git bisect.


Thanks for reporting this.

On 5.6-final, My boot log looks normal. On 5.7-rc7, the Lenovo Miix
630 rarely boots, usually stuck in some kind of infinite printk loop.

If I disable some of the UFS logging, I can capture this from the
logs, as soon as UFS inits -

[ 4.353860] ufshcd-qcom 1da4000.ufshc: ufshcd_intr: Unhandled
interrupt 0x00000000
[ 4.359605] ufshcd-qcom 1da4000.ufshc: ufshcd_intr: Unhandled
interrupt 0x00000000
[ 4.365412] ufshcd-qcom 1da4000.ufshc: ufshcd_check_errors:
saved_err 0x4 saved_uic_err 0x2
[ 4.371121] ufshcd-qcom 1da4000.ufshc: hba->ufs_version = 0x210,
hba->capabilities = 0x1587001f
[ 4.376846] ufshcd-qcom 1da4000.ufshc: hba->outstanding_reqs =
0x100000, hba->outstanding_tasks = 0x0
[ 4.382636] ufshcd-qcom 1da4000.ufshc: last_hibern8_exit_tstamp at
0 us, hibern8_exit_cnt = 0
[ 4.388368] ufshcd-qcom 1da4000.ufshc: No record of pa_err
[ 4.394001] ufshcd-qcom 1da4000.ufshc: dl_err[0] = 0x80000001 at 3873626 us
[ 4.399577] ufshcd-qcom 1da4000.ufshc: No record of nl_err
[ 4.405053] ufshcd-qcom 1da4000.ufshc: No record of tl_err
[ 4.410464] ufshcd-qcom 1da4000.ufshc: No record of dme_err
[ 4.415747] ufshcd-qcom 1da4000.ufshc: No record of auto_hibern8_err
[ 4.420950] ufshcd-qcom 1da4000.ufshc: No record of fatal_err
[ 4.426013] ufshcd-qcom 1da4000.ufshc: No record of link_startup_fail
[ 4.430950] ufshcd-qcom 1da4000.ufshc: No record of resume_fail
[ 4.435786] ufshcd-qcom 1da4000.ufshc: No record of suspend_fail
[ 4.440538] ufshcd-qcom 1da4000.ufshc: dev_reset[0] = 0x0 at 3031009 us
[ 4.445199] ufshcd-qcom 1da4000.ufshc: No record of host_reset
[ 4.449750] ufshcd-qcom 1da4000.ufshc: No record of task_abort
[ 4.454214] ufshcd-qcom 1da4000.ufshc: clk: core_clk, rate: 50000000
[ 4.458590] ufshcd-qcom 1da4000.ufshc: clk: core_clk_unipro, rate: 37500000

I don't understand how this change is breaking things, but it clearly is for me.

What kind of additional data would be useful to get to the bottom of this?


++

Let me take a look and get back on this.

--
The Qualcomm Innovation Center, Inc. is a member of the Code Aurora Forum,
Linux Foundation Collaborative Project