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@xxxxxxxxxxxxxxxxxxxx/ > > 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@0/bus@30800000/i2c@30a40000/dsi-lvds-bridge@2d -> / panel_lvds0 -> /soc@0/bus@32c00000/dsi@32e10000 -> Which seems weird. I would have expected something like dsi@32e10000 -> dsi-lvds-bridge@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