(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