[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