openwrt/target/linux/ipq806x/patches-4.19
Ansuel Smith 5ab9c0b388 ipq806x: fix bug in L2 cache scaling
It has been notice a buf in L2 cache scaling where the scaling is not
done proprely if the frequency is set to the initial state before
the new frequency.

From: https://patchwork.kernel.org/patch/10565443/

* The clocks are set to aux clock rate first to make sure the
* secondary mux is not sourcing off of QSB. The rate is then set to
* two different rates to force a HFPLL reinit under all
* circumstances.

In the initial stage of boot to force a new frequency to apply, is
needed to first set the frequency back to the lowest one (aux_rate)
and then to the target one. This force and make sure the controller
actually switch the frequency to the right one. Apply the same
mechanism to L2 frequency scaling. Before scaling to the target
frequency, first set the frequency to the aux_rate to force the
transition, then scale it to the target frequency. Doing the wrong way
can produce unexpected results and could lock the scaling mechanism
until a full reboot is done (Causing a full reset by the krait-cc driver)

From: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=77612720a2362230af726baa4149c40ec7a7fb05

When the Hfplls are reprogrammed during the rate change,
the primary muxes which are sourced from the same hfpll
for higher frequencies, needs to be switched to the 'safe
secondary mux' as the parent for that small window. This
is done by registering a clk notifier for the muxes and
switching to the safe parent in the PRE_RATE_CHANGE notifier
and back to the original parent in the POST_RATE_CHANGE notifier.

This should apply also to L2 scaling... as we can't relly use
the notifier, we manually do this on L2 scaling.

Tested-by: Stefan Lippers-Hollmann <s.l-h@gmx.de> [nbg6817/ipq8065]
Signed-off-by: Ansuel Smith <ansuelsmth@gmail.com>
2019-12-26 08:31:41 +01:00
..
080-ARM-dts-qcom-add-gpio-ranges-property.patch kernel: bump 4.19 to 4.19.91 2019-12-24 17:45:33 +01:00
850-soc-add-qualcomm-syscon.patch
0001-dtbindings-qcom_adm-Fix-channel-specifiers.patch
0002-dmaengine-Add-ADM-driver.patch
0030-clk-Disable-i2c-device-on-gsbi4.patch
0031-mtd-add-SMEM-parser-for-QCOM-platforms.patch
0032-phy-add-qcom-dwc3-phy.patch
0033-ARM-qcom-automatically-select-PCI_DOMAINS-if-PCI-is-.patch
0034-0001-ARM-Add-Krait-L2-register-accessor-functions.patch
0034-0002-clk-qcom-Add-support-for-High-Frequency-PLLs-HFPLLs.patch
0034-0003-clk-qcom-Add-HFPLL-driver.patch
0034-0004-dt-bindings-clock-Document-qcom-hfpll.patch
0034-0005-clk-qcom-Add-MSM8960-APQ8064-s-HFPLLs.patch
0034-0006-clk-qcom-Add-IPQ806X-s-HFPLLs.patch
0034-0007-clk-qcom-Add-support-for-Krait-clocks.patch
0034-0008-clk-qcom-Add-KPSS-ACC-GCC-driver.patch
0034-0009-dt-bindings-arm-Document-qcom-kpss-gcc.patch
0034-0010-clk-qcom-Add-Krait-clock-controller-driver.patch
0034-0011-dt-bindings-clock-Document-qcom-krait-cc.patch
0034-0012-clk-qcom-Add-safe-switch-hook-for-krait-mux-clocks.patch
0045-cpufreq-Add-module-to-register-cpufreq-on-Krait-CPUs.patch
0046-cpufreq-qcom-independent-core-clocks.patch
0048-PM-OPP-HACK-Allow-to-set-regulator-without-opp_list.patch
0049-PM-OPP-Support-adjusting-OPP-voltages-at-runtime.patch
0051-PM-OPP-Add-a-helper-to-get-an-opp-regulator-for-devi.patch
0052-PM-OPP-Update-the-voltage-tolerance-when-adjusting-t.patch
0053-regulator-add-smb208-support.patch
0054-cpufreq-dt-Handle-OPP-voltage-adjust-events.patch
0055-cpufreq-dt-Add-L2-frequency-scaling-support.patch ipq806x: fix bug in L2 cache scaling 2019-12-26 08:31:41 +01:00
0056-cpufreq-dt-Add-missing-rcu-locks.patch
0059-ARM-cpuidle-Add-cpuidle-support-for-QCOM-cpus.patch
0060-HACK-arch-arm-force-ZRELADDR-on-arch-qcom.patch
0061-mtd-rootfs-conflicts-with-OpenWrt-auto-mounting.patch
0062-ipq806x-gcc-Added-the-enable-regs-and-mask-for-PRNG.patch
0063-1-ipq806x-tsens-driver.patch
0063-2-tsens-support-configurable-interrupts.patch
0063-3-tsens-fix-kernel-4_19.patch kernel: bump 4.19 to 4.19.91 2019-12-24 17:45:33 +01:00
0064-clk-clk-rpm-fixes.patch
0065-arm-override-compiler-flags.patch
0067-generic-Mangle-bootloader-s-kernel-arguments.patch kernel: bump 4.19 to 4.19.91 2019-12-24 17:45:33 +01:00
0069-arm-boot-add-dts-files.patch
0070-qcom-spm-fix-probe-order.patch
0071-1-PCI-qcom-Fixed-IPQ806x-specific-clocks.patch
0071-2-PCI-qcom-Fixed-IPQ806x-PCIE-reset-changes.patch
0071-3-PCI-qcom-Fixed-IPQ806x-PCIE-init-changes.patch
0071-5-PCI-qcom-Programming-the-PCIE-iATU-for-IPQ806x.patch
0071-6-PCI-qcom-Force-GEN1-support.patch kernel: bump 4.19 to 4.19.91 2019-12-24 17:45:33 +01:00
0071-7-pcie-Set-PCIE-MRRS-and-MPS-to-256B.patch kernel: bump 4.19 to 4.19.91 2019-12-24 17:45:33 +01:00
0071-8-pcie-qcom-Fixed-pcie_phy_clk-branch-issue.patch
0071-9-pcie-qcom-change-duplicate-pci-reset-to-phy-reset.patch
0072-add-ipq806x-with-no-clocks.patch kernel: bump 4.19 to 4.19.91 2019-12-24 17:45:33 +01:00
0073-pinctrl-qom-use-scm_call-to-route-GPIO-irq-to-Apps.patch
0075-ipq8064-pinctrl-Fixed-missing-RGMII-pincontrol-defin.patch