All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv1] ARM: dts/imx6q-bx50v3: Set display interface clock parents
@ 2020-05-14 17:02 Sebastian Reichel
  2020-05-19 11:49 ` Sasha Levin
  2020-05-20  2:48 ` Shawn Guo
  0 siblings, 2 replies; 4+ messages in thread
From: Sebastian Reichel @ 2020-05-14 17:02 UTC (permalink / raw)
  To: Sebastian Reichel, Shawn Guo, Sascha Hauer,
	Pengutronix Kernel Team, Fabio Estevam, NXP Linux Team
  Cc: Rob Herring, devicetree, linux-kernel, kernel, Robert Beckett,
	stable, Ian Ray, Sebastian Reichel

From: Robert Beckett <bob.beckett@collabora.com>

Avoid LDB and IPU DI clocks both using the same parent. LDB requires
pasthrough clock to avoid breaking timing while IPU DI does not.

Force IPU DI clocks to use IMX6QDL_CLK_PLL2_PFD0_352M as parent
and LDB to use IMX6QDL_CLK_PLL5_VIDEO_DIV.

This fixes an issue where attempting atomic modeset while using
HDMI and display port at the same time causes LDB clock programming
to destroy the programming of HDMI that was done during the same
modeset.

Cc: stable@vger.kernel.org
Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
[Use IMX6QDL_CLK_PLL2_PFD0_352M instead of IMX6QDL_CLK_PLL2_PFD2_396M
 originally chosen by Robert Beckett to avoid affecting eMMC clock
 by DRM atomic updates]
Signed-off-by: Ian Ray <ian.ray@ge.com>
[Squash Robert's and Ian's commits for bisectability, update patch
 description and add stable tag]
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
---
 arch/arm/boot/dts/imx6q-b450v3.dts  |  7 -------
 arch/arm/boot/dts/imx6q-b650v3.dts  |  7 -------
 arch/arm/boot/dts/imx6q-b850v3.dts  | 11 -----------
 arch/arm/boot/dts/imx6q-bx50v3.dtsi | 15 +++++++++++++++
 4 files changed, 15 insertions(+), 25 deletions(-)

diff --git a/arch/arm/boot/dts/imx6q-b450v3.dts b/arch/arm/boot/dts/imx6q-b450v3.dts
index 95b8f2d71821..fb0980190aa0 100644
--- a/arch/arm/boot/dts/imx6q-b450v3.dts
+++ b/arch/arm/boot/dts/imx6q-b450v3.dts
@@ -65,13 +65,6 @@ panel_in_lvds0: endpoint {
 	};
 };
 
-&clks {
-	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
-			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
-	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
-				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
-};
-
 &ldb {
 	status = "okay";
 
diff --git a/arch/arm/boot/dts/imx6q-b650v3.dts b/arch/arm/boot/dts/imx6q-b650v3.dts
index 611cb7ae7e55..8f762d9c5ae9 100644
--- a/arch/arm/boot/dts/imx6q-b650v3.dts
+++ b/arch/arm/boot/dts/imx6q-b650v3.dts
@@ -65,13 +65,6 @@ panel_in_lvds0: endpoint {
 	};
 };
 
-&clks {
-	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
-			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>;
-	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL3_USB_OTG>,
-				 <&clks IMX6QDL_CLK_PLL3_USB_OTG>;
-};
-
 &ldb {
 	status = "okay";
 
diff --git a/arch/arm/boot/dts/imx6q-b850v3.dts b/arch/arm/boot/dts/imx6q-b850v3.dts
index e4cb118f88c6..1ea64ecf4291 100644
--- a/arch/arm/boot/dts/imx6q-b850v3.dts
+++ b/arch/arm/boot/dts/imx6q-b850v3.dts
@@ -53,17 +53,6 @@ chosen {
 	};
 };
 
-&clks {
-	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
-			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
-			  <&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
-			  <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>;
-	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
-				 <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
-				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>,
-				 <&clks IMX6QDL_CLK_PLL2_PFD2_396M>;
-};
-
 &ldb {
 	fsl,dual-channel;
 	status = "okay";
diff --git a/arch/arm/boot/dts/imx6q-bx50v3.dtsi b/arch/arm/boot/dts/imx6q-bx50v3.dtsi
index fa27dcdf06f1..1938b04199c4 100644
--- a/arch/arm/boot/dts/imx6q-bx50v3.dtsi
+++ b/arch/arm/boot/dts/imx6q-bx50v3.dtsi
@@ -377,3 +377,18 @@ pci_root: root@0,0 {
 		#interrupt-cells = <1>;
 	};
 };
+
+&clks {
+	assigned-clocks = <&clks IMX6QDL_CLK_LDB_DI0_SEL>,
+			  <&clks IMX6QDL_CLK_LDB_DI1_SEL>,
+			  <&clks IMX6QDL_CLK_IPU1_DI0_PRE_SEL>,
+			  <&clks IMX6QDL_CLK_IPU1_DI1_PRE_SEL>,
+			  <&clks IMX6QDL_CLK_IPU2_DI0_PRE_SEL>,
+			  <&clks IMX6QDL_CLK_IPU2_DI1_PRE_SEL>;
+	assigned-clock-parents = <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
+				 <&clks IMX6QDL_CLK_PLL5_VIDEO_DIV>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>,
+				 <&clks IMX6QDL_CLK_PLL2_PFD0_352M>;
+};
-- 
2.26.2


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCHv1] ARM: dts/imx6q-bx50v3: Set display interface clock parents
  2020-05-14 17:02 [PATCHv1] ARM: dts/imx6q-bx50v3: Set display interface clock parents Sebastian Reichel
@ 2020-05-19 11:49 ` Sasha Levin
  2020-05-20 11:51   ` Sebastian Reichel
  2020-05-20  2:48 ` Shawn Guo
  1 sibling, 1 reply; 4+ messages in thread
From: Sasha Levin @ 2020-05-19 11:49 UTC (permalink / raw)
  To: Sasha Levin, Sebastian Reichel, Robert Beckett, Sebastian Reichel
  Cc: Rob Herring, devicetree, stable, stable

Hi

[This is an automated email]

This commit has been processed because it contains a -stable tag.
The stable tag indicates that it's relevant for the following trees: all

The bot has tested the following trees: v5.6.13, v5.4.41, v4.19.123, v4.14.180, v4.9.223, v4.4.223.

v5.6.13: Build OK!
v5.4.41: Build OK!
v4.19.123: Build OK!
v4.14.180: Failed to apply! Possible dependencies:
    e26dead44268 ("ARM: dts: imx6q-bx50v3: Add internal switch")

v4.9.223: Failed to apply! Possible dependencies:
    1d0c7bb20c08 ("ARM: dts: imx: Correct B850v3 clock assignment")
    e26dead44268 ("ARM: dts: imx6q-bx50v3: Add internal switch")

v4.4.223: Failed to apply! Possible dependencies:
    15ef03b86247 ("ARM: dts: imx: b450/b650v3: Move ldb_di clk assignment")
    1d0c7bb20c08 ("ARM: dts: imx: Correct B850v3 clock assignment")
    2252792b4677 ("ARM: dts: imx: Add support for Advantech/GE B850v3")
    226d16c80c61 ("ARM: dts: imx: Add support for Advantech/GE Bx50v3")
    547da6bbcf08 ("ARM: dts: imx: Add support for Advantech/GE B450v3")
    987e71877ae6 ("ARM: dts: imx: Add support for Advantech/GE B650v3")
    b492b8744da9 ("ARM: dts: imx6q-b850v3: Update display clock source")
    e26dead44268 ("ARM: dts: imx6q-bx50v3: Add internal switch")


NOTE: The patch will not be queued to stable trees until it is upstream.

How should we proceed with this patch?

-- 
Thanks
Sasha

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCHv1] ARM: dts/imx6q-bx50v3: Set display interface clock parents
  2020-05-14 17:02 [PATCHv1] ARM: dts/imx6q-bx50v3: Set display interface clock parents Sebastian Reichel
  2020-05-19 11:49 ` Sasha Levin
@ 2020-05-20  2:48 ` Shawn Guo
  1 sibling, 0 replies; 4+ messages in thread
From: Shawn Guo @ 2020-05-20  2:48 UTC (permalink / raw)
  To: Sebastian Reichel
  Cc: Sebastian Reichel, Sascha Hauer, Pengutronix Kernel Team,
	Fabio Estevam, NXP Linux Team, Rob Herring, devicetree,
	linux-kernel, kernel, Robert Beckett, stable, Ian Ray

On Thu, May 14, 2020 at 07:02:37PM +0200, Sebastian Reichel wrote:
> From: Robert Beckett <bob.beckett@collabora.com>
> 
> Avoid LDB and IPU DI clocks both using the same parent. LDB requires
> pasthrough clock to avoid breaking timing while IPU DI does not.
> 
> Force IPU DI clocks to use IMX6QDL_CLK_PLL2_PFD0_352M as parent
> and LDB to use IMX6QDL_CLK_PLL5_VIDEO_DIV.
> 
> This fixes an issue where attempting atomic modeset while using
> HDMI and display port at the same time causes LDB clock programming
> to destroy the programming of HDMI that was done during the same
> modeset.
> 
> Cc: stable@vger.kernel.org
> Signed-off-by: Robert Beckett <bob.beckett@collabora.com>
> [Use IMX6QDL_CLK_PLL2_PFD0_352M instead of IMX6QDL_CLK_PLL2_PFD2_396M
>  originally chosen by Robert Beckett to avoid affecting eMMC clock
>  by DRM atomic updates]
> Signed-off-by: Ian Ray <ian.ray@ge.com>
> [Squash Robert's and Ian's commits for bisectability, update patch
>  description and add stable tag]
> Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>

Applied, thanks.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCHv1] ARM: dts/imx6q-bx50v3: Set display interface clock parents
  2020-05-19 11:49 ` Sasha Levin
@ 2020-05-20 11:51   ` Sebastian Reichel
  0 siblings, 0 replies; 4+ messages in thread
From: Sebastian Reichel @ 2020-05-20 11:51 UTC (permalink / raw)
  To: Sasha Levin; +Cc: Robert Beckett, stable

[-- Attachment #1: Type: text/plain, Size: 1840 bytes --]

Hi,

On Tue, May 19, 2020 at 11:49:15AM +0000, Sasha Levin wrote:
> [This is an automated email]
> 
> This commit has been processed because it contains a -stable tag.
> The stable tag indicates that it's relevant for the following trees: all
> 
> The bot has tested the following trees: v5.6.13, v5.4.41, v4.19.123, v4.14.180, v4.9.223, v4.4.223.
> 
> v5.6.13: Build OK!
> v5.4.41: Build OK!
> v4.19.123: Build OK!
>
> v4.14.180: Failed to apply! Possible dependencies:
>     e26dead44268 ("ARM: dts: imx6q-bx50v3: Add internal switch")
> 
> v4.9.223: Failed to apply! Possible dependencies:
>     1d0c7bb20c08 ("ARM: dts: imx: Correct B850v3 clock assignment")
>     e26dead44268 ("ARM: dts: imx6q-bx50v3: Add internal switch")
> 
> v4.4.223: Failed to apply! Possible dependencies:
>     15ef03b86247 ("ARM: dts: imx: b450/b650v3: Move ldb_di clk assignment")
>     1d0c7bb20c08 ("ARM: dts: imx: Correct B850v3 clock assignment")
>     2252792b4677 ("ARM: dts: imx: Add support for Advantech/GE B850v3")
>     226d16c80c61 ("ARM: dts: imx: Add support for Advantech/GE Bx50v3")
>     547da6bbcf08 ("ARM: dts: imx: Add support for Advantech/GE B450v3")
>     987e71877ae6 ("ARM: dts: imx: Add support for Advantech/GE B650v3")
>     b492b8744da9 ("ARM: dts: imx6q-b850v3: Update display clock source")
>     e26dead44268 ("ARM: dts: imx6q-bx50v3: Add internal switch")
> 
> 
> NOTE: The patch will not be queued to stable trees until it is upstream.
> 
> How should we proceed with this patch?

Applying it to v4.4 does not make sense (impacted devices are not
supported on that version) and it should be fine to ignore it for
v4.9 and v4.14. The impact is broken dual display setup. I tested
the patch on 4.19 stable tree and I think it makes sense to apply
it to 4.19 and newer.

-- Sebastian

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2020-05-20 11:52 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-05-14 17:02 [PATCHv1] ARM: dts/imx6q-bx50v3: Set display interface clock parents Sebastian Reichel
2020-05-19 11:49 ` Sasha Levin
2020-05-20 11:51   ` Sebastian Reichel
2020-05-20  2:48 ` Shawn Guo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.