Re: [RFC PATCH] arm64: dts: qcom: add device tree for DB845c working in dual DSI mode

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/04/2023 19:48, Bjorn Andersson wrote:
On Wed, Jan 18, 2023 at 08:47:53PM +0200, Dmitry Baryshkov wrote:
18 января 2023 г. 19:32:42 GMT+02:00, Bjorn Andersson <andersson@xxxxxxxxxx> пишет:
On Wed, Jan 18, 2023 at 10:20:48AM +0200, Dmitry Baryshkov wrote:
While we are testing the DB845c working in dual DSI mode (which is
required for the 4k support), create a separate device tree using this
configuration.


I don't think it's right to change the DTB on your device depending on
your TV's ability to do 4k or not...

I ran into this problem when playing around with 4k-support on the RB3
as well a while back. I was not able to figure out a way to run the
lt9611 off two inputs for the lower resolutions and ended never posted
anything because I couldn't come up with any good solution.


This is implemented with the latest lt9611 patchset, referenced in the patch annotation.

I posted this as an RFC with the separate dts to let people test dual DSI, DPU wide planes, etc. and to compare that with plain old single link DSI/lt9611.



Would it be possible somehow to describe the two ports in DT, but have
the display driver use one or both depending on the number of inputs
needed by the lt9611?

This would be very problemsome. Even switching the number of lanes
goes against the standard and is not supported by Linux kernel.
Supporting switching the host off and on would be a real troublle.


Does this imply that switching resolution in runtime is not possible for
any of these DSI->HDMI/DP/eDP bridges?

The immediate worry is that we need 4k and non-4k variants of every
mezzanine (unless we start doing overlays). But beyond that I still
don't like the fact that you need to change firmware depending on which
monitor/TV you're going to connect the board to. (And with the current
boot.img-based design, this is overly cumbersome)
No. With the latest lt9611 driver and with the current msm/msm-next it should not be necessary to have a separate dtsi. I submitted this patch as an RFC to let people compare 2xDSI vs single-link cases. Currently I'm happy with the way it works, so I can probably send this as a patch to main sdm845-db845c.dtb.

As a background info:
- lt9611 driver can utilize either one or two DSI links
- drm/msm can output 4k over two DSI links in bonded mode.
- drm/msm will still utilize two DSI links for smaller resolutions (switching between single and bonded DSI modes doesn't seem practical). - If just one DSI link is supplied, 1080p is the maximum resolution that can be supported.


Regards,
Bjorn

Hopefully, this is is not necessary.


Regards,
Bjorn

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx>
---

Dependencies to be able to verify the 4k@30 mode:
[1] https://lore.kernel.org/linux-arm-msm/20221229191856.3508092-1-dmitry.baryshkov@xxxxxxxxxx/
[2] https://lore.kernel.org/dri-devel/20230118081658.2198520-1-dmitry.baryshkov@xxxxxxxxxx/

---
  arch/arm64/boot/dts/qcom/Makefile             |  1 +
  .../boot/dts/qcom/sdm845-db845c-dual-dsi.dts  | 48 +++++++++++++++++++
  2 files changed, 49 insertions(+)
  create mode 100644 arch/arm64/boot/dts/qcom/sdm845-db845c-dual-dsi.dts

diff --git a/arch/arm64/boot/dts/qcom/Makefile b/arch/arm64/boot/dts/qcom/Makefile
index 3e79496292e7..dc55c3b989a4 100644
--- a/arch/arm64/boot/dts/qcom/Makefile
+++ b/arch/arm64/boot/dts/qcom/Makefile
@@ -139,6 +139,7 @@ dtb-$(CONFIG_ARCH_QCOM)	+= sdm845-cheza-r1.dtb
  dtb-$(CONFIG_ARCH_QCOM)	+= sdm845-cheza-r2.dtb
  dtb-$(CONFIG_ARCH_QCOM)	+= sdm845-cheza-r3.dtb
  dtb-$(CONFIG_ARCH_QCOM)	+= sdm845-db845c.dtb
+dtb-$(CONFIG_ARCH_QCOM)	+= sdm845-db845c-dual-dsi.dtb
  dtb-$(CONFIG_ARCH_QCOM)	+= sdm845-db845c-navigation-mezzanine.dtb
  dtb-$(CONFIG_ARCH_QCOM)	+= sdm845-lg-judyln.dtb
  dtb-$(CONFIG_ARCH_QCOM)	+= sdm845-lg-judyp.dtb
diff --git a/arch/arm64/boot/dts/qcom/sdm845-db845c-dual-dsi.dts b/arch/arm64/boot/dts/qcom/sdm845-db845c-dual-dsi.dts
new file mode 100644
index 000000000000..4a366dedc841
--- /dev/null
+++ b/arch/arm64/boot/dts/qcom/sdm845-db845c-dual-dsi.dts
@@ -0,0 +1,48 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (c) 2023, Linaro Ltd.
+ */
+
+#include "sdm845-db845c.dts"
+
+&dsi0 {
+	qcom,dual-dsi-mode;
+	qcom,master-dsi;
+};
+
+&dsi1 {
+	vdda-supply = <&vreg_l26a_1p2>;
+
+	qcom,dual-dsi-mode;
+
+	/* DSI1 is slave, so use DSI0 clocks */
+	assigned-clock-parents = <&dsi0_phy 0>, <&dsi0_phy 1>;
+
+	status = "okay";
+
+	ports {
+		port@1 {
+			endpoint {
+				remote-endpoint = <&lt9611_b>;
+				data-lanes = <0 1 2 3>;
+			};
+		};
+	};
+};
+
+&dsi1_phy {
+	vdds-supply = <&vreg_l1a_0p875>;
+	status = "okay";
+};
+
+&lt9611_codec {
+	ports {
+		port@1 {
+			reg = <1>;
+
+			lt9611_b: endpoint {
+				remote-endpoint = <&dsi1_out>;
+			};
+		};
+	};
+};
--
2.39.0



--
With best wishes
Dmitry




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux