(EXT) [PATCH v2 00/12] drm: bridge: Add Samsung MIPI DSIM bridge

Alexander Stein alexander.stein at ew.tq-group.com
Thu May 5 00:26:57 PDT 2022


Hello Jagan,

thanks for the second version of this patchset.

Am Mittwoch, 4. Mai 2022, 13:40:09 CEST schrieb Jagan Teki:
> This series supports common bridge support for Samsung MIPI DSIM
> which is used in Exynos and i.MX8MM SoC's.
> 
> Previous v1 can be available here [1].
> 
> The final bridge supports both the Exynos and i.MX8MM DSI devices.
> 
> On, summary this patch-set break the entire DSIM driver into
> - platform specific glue code for platform ops, component_ops.
> - common bridge driver which handle platform glue init and invoke.
> 
> Patch 0000: 	Samsung DSIM bridge
> 
> Patch 0001:	Common lookup code for OF-graph or child
> 
> Patch 0002: 	platform init flag via driver_data
> 
> Patch 0003/10:  bridge fixes, atomic API's
> 
> Patch 0011:	document fsl,imx8mm-mipi-dsim
> 
> Patch 0012:	add i.MX8MM DSIM support
> 
> Tested in Engicam i.Core MX8M Mini SoM.
> 
> Anyone interested, please have a look on this repo [2]
> 
> [2] https://github.com/openedev/kernel/tree/imx8mm-dsi-v2
> [1]
> https://patchwork.kernel.org/project/dri-devel/cover/20220408162108.184583-> 1-jagan at amarulasolutions.com/
> 
> Any inputs?

I was able to get my LVDS display running using this driver and an LVDS 
bridge. Actually my setup is similar to yours. My chain is like this:
MIPI-DSI -> sn65dsi83 -> LVDS panel
I noticed some things though:
My setup only works if I use less than 4 lanes. See [1]. When using 4 lanes 
the image is flickering, but the content is "visible". Your DT has only 2 
lanes configured, do you have the possibility to use 4 lanes? I have no idea 
how to tackle this. It might be the DSIM side or the bridge side.
Apparently the downstream kernel from NXP supports 4 lanes, if I can trust the 
config. I have no way to verify this though.

Another thing is I get the following warning
> sn65dsi83 2-002d: Unsupported LVDS bus format 0x100a, please check output 
bridge driver. Falling back to SPWG24.

This seems to be caused by a wrong bridge chain. Using commit 81e80429 at [2] 
I get the following output:
> bridge chain: /soc at 0/bus at 30800000/i2c at 30a40000/dsi-lvds-bridge at 2d -> /
panel_lvds0 -> /soc at 0/bus at 32c00000/dsi at 32e10000 ->
Which seems weird. I would have expected something like
dsi at 32e10000 -> dsi-lvds-bridge at 2d -> panel_lvds0
Do you happen to see somthing similar? But this is completely unrelated to 
your patchset though.

Also unloading the samsung_dsim driver raises a regulator warning:
------------[ cut here ]------------                                                                                                 
WARNING: CPU: 2 PID: 381 at drivers/regulator/core.c:2275 _regulator_put.part.
0+0x38/0x40                                            
Modules linked in: caam_jr caamhash_desc caamalg_desc crypto_engine rng_core 
authenc libdes hantro_vpu(C) v4l2_vp9 v4l2_h264 snd_soc_
fsl_asoc_card crct10dif_ce snd_soc_tlv320aic32x4_spi videobuf2_dma_contig 
phy_fsl_imx8m_pcie v4l2_mem2mem samsung_dsim(-) snd_soc_tlv
320aic32x4_i2c snd_soc_tlv320aic32x4 caam error imx8mm_thermal imx_sdma 
pwm_beeper fuse ipv6                                         
CPU: 2 PID: 381 Comm: modprobe Tainted: G         C        5.18.0-rc5-
next-20220504+ #204 03c84d7b1600b734091c3159e797071c8f65061c   
Hardware name: TQ-Systems GmbH i.MX8MM TQMa8MxML on MBa8Mx (DT)                                                                      
pstate: 80000005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--)                                                                      
pc : _regulator_put.part.0+0x38/0x40                                                                                                 
lr : regulator_bulk_free+0x58/0x80                                                                                                   
sp : ffff80000aeb3af0                                                                                                                
x29: ffff80000aeb3af0 x28: ffff00000360bb00 x27: 0000000000000000                                                                    
x26: ffff800009bad438 x25: ffff000000276890 x24: 0000000000000009                                                                    
x23: ffff00000360bb00 x22: ffff000003543268 x21: ffff800009b85280                                                                    
x20: ffff000005587800 x19: ffff000003543238 x18: 0000000000000000                                                                    
x17: 0000000000000000 x16: 0000000000000000 x15: 6d3d4d4554535953                                                                    
x14: 42555300302e6973 x13: 4553003338697364 x12: 0000000000000000                                                                    
x11: 0000000000000000 x10: 0000000000000ab0 x9 : ffff80000aeb38f0
x8 : ffff00000360c610 x7 : 0000000000000000 x6 : 0000000000000000
x5 : ffff8000092dc468 x4 : ffff00000360bb00 x3 : 0000000000000000
x2 : ffff00000360bb00 x1 : 0000000000000001 x0 : ffff000005587800
Call trace:
 _regulator_put.part.0+0x38/0x40
 regulator_bulk_free+0x58/0x80
 devm_regulator_bulk_release+0x18/0x20
 devres_release_all+0xa0/0x100
 device_unbind_cleanup+0x14/0x60
 device_release_driver_internal+0x214/0x2b4
 driver_detach+0x4c/0xe0
 bus_remove_driver+0x68/0x120
 driver_unregister+0x2c/0x5c
 platform_driver_unregister+0x10/0x20
 samsung_mipi_dsim_exit+0x18/0xd20 [samsung_dsim 
f08bbdb06ba3e4aef07da9615e8193297aa99358]
 __do_sys_delete_module.constprop.0+0x134/0x1e4
 __arm64_sys_delete_module+0x10/0x1c
 invoke_syscall+0x6c/0xf0
 el0_svc_common.constprop.0+0xc0/0xe0
 do_el0_svc+0x24/0x30
 el0_svc+0x3c/0xfc
 el0t_64_sync_handler+0xb0/0xb4
 el0t_64_sync+0x148/0x14c
---[ end trace 0000000000000000 ]---

Best regards,
Alexander

[1] https://github.com/tq-steina/linux/blob/imx8mm-dsi-lvds/arch/arm64/boot/
dts/freescale/imx8mm-tqma8mqml-mba8mx-lvds.dts#L45-L46
[2] https://github.com/tq-steina/linux/commit/
81e80429341cd0a4f119ec9cf50839498915443b






More information about the linux-arm-kernel mailing list