[Letux-kernel] OMAP5: inconsistency between target-module and dsi_of_data_omap5
H. Nikolaus Schaller
hns at goldelico.com
Sun Jul 5 09:40:36 CEST 2020
> Am 05.07.2020 um 08:52 schrieb H. Nikolaus Schaller <hns at goldelico.com>:
>
> Hi Tony,
> since v5.7-rc1 our Pyra (OMAP5) dsi panel doesn't initialize and we do not
> get a /dev/fb0.
>
> There is a suspicious log message:
>
> [ 15.352314] DSI: omapdss DSI error: unsupported DSI module
>
> I could trace it down to be likely a discrepancy between
>
> target-module at 58000000 {
>
> ...
>
> target-module at 5000 {
> compatible = "ti,sysc-omap2", "ti,sysc";
> reg = <0x5000 0x4>,
> ...
> ranges = <0 0x5000 0x1000>;
>
> dsi1: encoder at 0 {
> compatible = "ti,omap5-dsi";
>
> target-module at 9000 {
> compatible = "ti,sysc-omap2", "ti,sysc";
> reg = <0x9000 0x4>,
> <0x9010 0x4>,
> <0x9014 0x4>;
>
> ...
>
> ranges = <0 0x9000 0x1000>;
>
> dsi2: encoder at 0 {
> compatible = "ti,omap5-dsi";
> reg = <0 0x200>,
> <0x200 0x40>,
> <0x300 0x40>;
>
>
>
> and
>
> static const struct dsi_of_data dsi_of_data_omap5 = {
> .model = DSI_MODEL_OMAP5,
> .pll_hw = &dss_omap5_dsi_pll_hw,
> .modules = (const struct dsi_module_id_data[]) {
> { .address = 0x58004000, .id = 0, },
> { .address = 0x58009000, .id = 1, },
> { },
> },
>
> Therefore the address match logic in dsi_probe() fails and ends in
> the mentioned log message.
>
> Looking at git blame, the DTS was recently changed by 5a507162f096b54.
> Commit 98e1a6a86a22d62 did do a similar change for dsi2 but did not
> modify the address.
>
> So I wonder if the 0x5000 is just a typo or if there is something
> where the dsi1: encoder at 0 should have a negative offset to end
> up at address 0x58004000?
>
> BR and thanks,
> Nikolaus
>
This patch makes the DSI error go away and omapdrm initialized:
diff --git a/arch/arm/boot/dts/omap5.dtsi b/arch/arm/boot/dts/omap5.dtsi
index e147121513e644..b9f54f62163879 100644
--- a/arch/arm/boot/dts/omap5.dtsi
+++ b/arch/arm/boot/dts/omap5.dtsi
@@ -474,7 +474,7 @@ rfbi: encoder at 0 {
};
};
- target-module at 5000 {
+ target-module at 4000 {
compatible = "ti,sysc-omap2", "ti,sysc";
reg = <0x5000 0x4>,
<0x5010 0x4>,
@@ -490,7 +490,7 @@ SYSC_OMAP2_SOFTRESET |
ti,syss-mask = <1>;
#address-cells = <1>;
#size-cells = <1>;
- ranges = <0 0x5000 0x1000>;
+ ranges = <0 0x4000 0x1000>;
dsi1: encoder at 0 {
compatible = "ti,omap5-dsi";
But I still have no display:
[ 17.537515] [drm] Initialized omapdrm 1.0.0 20110917 for omapdrm.0 on minor 2
[ 18.558950] omapdrm omapdrm.0: [drm] Cannot find any crtc or sizes
So there is more to fix.
BR,
Nikolaus
More information about the Letux-kernel
mailing list