ARM: dts: exynos: Disable frequency scaling for FSYS bus

Message ID 20200714064759.31772-1-m.szyprowski@samsung.com
State New
Headers show
Series
  • ARM: dts: exynos: Disable frequency scaling for FSYS bus
Related show

Commit Message

Marek Szyprowski July 14, 2020, 6:47 a.m.
Commit 1019fe2c7280 ("ARM: dts: exynos: Adjust bus related OPPs to the
values correct for Exynos5422 Odroids") changed the parameters of the
OPPs for the FSYS bus. Besides the frequency adjustments, it also removed
the 'shared-opp' property from the OPP table used for FSYS_APB and FSYS
busses.

This revealed that in fact the FSYS bus frequency scaling never worked.
When one OPP table is marked as 'opp-shared', only the first bus which
selects the OPP sets the rate of its clock. Then OPP core assumes that
the other busses have been changed to that OPP and no change to their
clock rates are needed. Thus when FSYS_APB bus, which was registered
first, set the rate for its clock, the OPP core did not change the FSYS
bus clock later.

The mentioned commit removed that behavior, what introduced a regression
on some OdroidXU3 boards. Frequency scaling of the FSYS bus causes
instability of the USB host operation, what can be observed as network
hangs. To restore old behavior, simply disable frequency scaling for the
FSYS bus.

Reported-by: Willy Wolff <willy.mh.wolff.ml@gmail.com>
Fixes: 1019fe2c7280 ("ARM: dts: exynos: Adjust bus related OPPs to the values correct for Exynos5422 Odroids")
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>

---
 arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 6 ------
 1 file changed, 6 deletions(-)

-- 
2.17.1

Comments

Krzysztof Kozlowski July 20, 2020, 8:06 a.m. | #1
On Tue, Jul 14, 2020 at 08:47:59AM +0200, Marek Szyprowski wrote:
> Commit 1019fe2c7280 ("ARM: dts: exynos: Adjust bus related OPPs to the

> values correct for Exynos5422 Odroids") changed the parameters of the

> OPPs for the FSYS bus. Besides the frequency adjustments, it also removed

> the 'shared-opp' property from the OPP table used for FSYS_APB and FSYS

> busses.

> 

> This revealed that in fact the FSYS bus frequency scaling never worked.

> When one OPP table is marked as 'opp-shared', only the first bus which

> selects the OPP sets the rate of its clock. Then OPP core assumes that

> the other busses have been changed to that OPP and no change to their

> clock rates are needed. Thus when FSYS_APB bus, which was registered

> first, set the rate for its clock, the OPP core did not change the FSYS

> bus clock later.

> 

> The mentioned commit removed that behavior, what introduced a regression

> on some OdroidXU3 boards. Frequency scaling of the FSYS bus causes

> instability of the USB host operation, what can be observed as network

> hangs. To restore old behavior, simply disable frequency scaling for the

> FSYS bus.

> 

> Reported-by: Willy Wolff <willy.mh.wolff.ml@gmail.com>

> Fixes: 1019fe2c7280 ("ARM: dts: exynos: Adjust bus related OPPs to the values correct for Exynos5422 Odroids")

> Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>

> ---

>  arch/arm/boot/dts/exynos5422-odroid-core.dtsi | 6 ------

>  1 file changed, 6 deletions(-)


Thanks Willy and Marek for digging into this, applied.

A follow up question would be if other boards (Exynos4412) require the
same?

Best regards,
Krzysztof

Patch

diff --git a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
index ab27ff8bc3dc..afe090578e8f 100644
--- a/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
+++ b/arch/arm/boot/dts/exynos5422-odroid-core.dtsi
@@ -411,12 +411,6 @@ 
 	status = "okay";
 };
 
-&bus_fsys {
-	operating-points-v2 = <&bus_fsys2_opp_table>;
-	devfreq = <&bus_wcore>;
-	status = "okay";
-};
-
 &bus_fsys2 {
 	operating-points-v2 = <&bus_fsys2_opp_table>;
 	devfreq = <&bus_wcore>;