Frequency switching stability issues on Q820

Hi @Loic,

Is there QCOM CPR support is implemented for Q820?

I have checked kernel source 4.14.96 and found that QCOM CPR is supported for Q410 (drivers/power/avs/qcom-cpr.c). But it is not implemented for Q820.

So is there any possibility that we can improve boot freeze issue if we add QCOM CPR support in Q820?

Thanks,
Hiren

I appear to have gotten the Android kernel to boot reliably with a pull up to 4.14.165 from the Android common kernel. The issue I was having appeared to be tied to ufshcd-qcom.

I’ve done about 20 successful boots and have been unable so far to reproduce either the freeze on clock or the freeze on ufs initialization. I was getting a freeze up rate of about 75% (i.e., 3 failed boots to one successful), and of those, about 1/3 of them were on the frequency.

… although I did manage to break USB in the process.

I recently discovered that UFS is the only client voting for LN_BB, which is used as reference clock for all PHYs. The result was that if UFS was probe deferred with any other PHY operational we would suffer a restart due to clock issues in e.g. PCI or USB.

I’ve gotten the below patch merged for v5.6 to fix this particular problem:
https://lore.kernel.org/linux-arm-msm/20200106080546.3192125-1-bjorn.andersson@linaro.org/

Regards,
Bjorn

No, we unfortunately do not have a driver for the version of CPR found in 820, yet. We also need a regulator driver for the in-core power controller found on this SoC.

What qcom-cpr.c does give us is a conclusion on how CPR should be integrated in the system, so now it’s just a matter of writing the code :wink:

Regards,
Bjorn

Hi @bamse ; that’s great. I’ll try to pull in that patch.

As a matter of fact, I’ve also been trying to get a more recent kernel to run on the board (genuine db820c limited “brown mask” edition), but I’ve been unable to get drm-msm working.

I have started another thread on the issue here; DRM MSM on recent kernels (5.4+) – wonder if you could recommend a good starting point?

EDIT: Looks like while the patch can be applied to 4.14, it doesn’t actually compile. Lots changed since then.