[PATCH 00/16] drm/exynos: Convert driver to drm bridge

Marek Szyprowski m.szyprowski at samsung.com
Fri Sep 4 08:31:12 UTC 2020


Hi Krzysztof,

On 03.09.2020 22:08, Krzysztof Kozlowski wrote:
> On Thu, 3 Sep 2020 at 18:57, Michael Tretter <m.tretter at pengutronix.de> wrote:
>> the Exynos MIPI DSI Phy is also found on the i.MX8M Mini. However, on the
>> i.MX8M Mini, the bridge is driven by an LCDIF display controller instead of
>> the Exynos Decon. The driver for the LCDIF does not use the component
>> framework, but uses drm bridges.
>>
>> This series converts the Exynos MIPI DSI into a drm bridge and makes it usable
>> with such drivers. Although the driver is converted, it still supports the
>> component framework API to stay compliant with the Exynos DRM driver.
>>
>> Unfortunately, I don't have any Exynos SoC to actually test the series.  I
>> tested the driver with a few additional unfinished patches on the i.MX8M Mini
>> EVK, but somebody should definitely verify that the driver is still working on
>> Exynos hardware.
> Hi Michael,
>
> +Cc maintainers and folks in Samsung.
>
> Please follow the script/get_maintainers.pl to get the list of
> maintainers of the Exynos DRM drivers. First they could provide you
> with testing, second they might be the people merging the driver.
>
> Unfortunately I cannot provide proper testing as none of my boards
> have a display attached. :)

Thanks for adding cc to me. Sadly this patchset crashed badly on Samsung 
Exnyos based boards. Here is the log from Exynos3250-based Rinato:

exynos4-fb 11c00000.fimd: Adding to iommu group 0
OF: graph: no port node found in /soc/fimd at 11c00000
[drm] Exynos DRM: using 11c00000.fimd device for DMA mapping operations
exynos-drm exynos-drm: bound 11c00000.fimd (ops fimd_component_ops)
OF: graph: no port node found in /soc/dsi at 11c80000
8<--- cut here ---
Unable to handle kernel NULL pointer dereference at virtual address 00000650
pgd = (ptrval)
[00000650] *pgd=00000000
Internal error: Oops: 5 [#1] PREEMPT SMP ARM
Modules linked in:
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 
5.9.0-rc2-next-20200824-00017-g3e9b20f7eb0d #1576
Hardware name: Samsung Exynos (Flattened Device Tree)
PC is at samsung_dsim_resume+0x18/0x120
LR is at genpd_runtime_resume+0x160/0x278
...
[<c064f590>] (samsung_dsim_resume) from [<c0685020>] 
(genpd_runtime_resume+0x160/0x278)
[<c0685020>] (genpd_runtime_resume) from [<c0677e84>] 
(__rpm_callback+0xbc/0x124)
[<c0677e84>] (__rpm_callback) from [<c0677f0c>] (rpm_callback+0x20/0x80)
[<c0677f0c>] (rpm_callback) from [<c0676aec>] (rpm_resume+0x388/0x714)
[<c0676aec>] (rpm_resume) from [<c0676edc>] (__pm_runtime_resume+0x64/0x9c)
[<c0676edc>] (__pm_runtime_resume) from [<c0669e10>] 
(__device_attach+0xcc/0x17c)
[<c0669e10>] (__device_attach) from [<c0668ee8>] 
(bus_probe_device+0x88/0x90)
[<c0668ee8>] (bus_probe_device) from [<c06660a0>] (device_add+0x4e8/0x79c)
[<c06660a0>] (device_add) from [<c063dc1c>] 
(mipi_dsi_device_register_full+0xc8/0x148)
[<c063dc1c>] (mipi_dsi_device_register_full) from [<c063dcec>] 
(mipi_dsi_host_register+0x50/0x168)
[<c063dcec>] (mipi_dsi_host_register) from [<c064d90c>] 
(samsung_dsim_bind+0x368/0x40c)
[<c064d90c>] (samsung_dsim_bind) from [<c06449f8>] 
(exynos_dsi_bind+0x78/0x88)
[<c06449f8>] (exynos_dsi_bind) from [<c0661ef0>] 
(component_bind_all+0xfc/0x290)
[<c0661ef0>] (component_bind_all) from [<c06413d0>] 
(exynos_drm_bind+0xe4/0x19c)
[<c06413d0>] (exynos_drm_bind) from [<c0662464>] 
(try_to_bring_up_master+0x1e4/0x2c4)
[<c0662464>] (try_to_bring_up_master) from [<c06629a4>] 
(component_master_add_with_match+0xd4/0x108)
[<c06629a4>] (component_master_add_with_match) from [<c06410f8>] 
(exynos_drm_platform_probe+0xe4/0x110)
[<c06410f8>] (exynos_drm_platform_probe) from [<c066cb8c>] 
(platform_drv_probe+0x6c/0xa4)
[<c066cb8c>] (platform_drv_probe) from [<c066a0c8>] 
(really_probe+0x200/0x4fc)
[<c066a0c8>] (really_probe) from [<c066a58c>] 
(driver_probe_device+0x78/0x1fc)
[<c066a58c>] (driver_probe_device) from [<c066a974>] 
(device_driver_attach+0x58/0x60)
[<c066a974>] (device_driver_attach) from [<c066aa58>] 
(__driver_attach+0xdc/0x174)
[<c066aa58>] (__driver_attach) from [<c0667e50>] 
(bus_for_each_dev+0x68/0xb4)
[<c0667e50>] (bus_for_each_dev) from [<c0669184>] 
(bus_add_driver+0x158/0x214)
[<c0669184>] (bus_add_driver) from [<c066b93c>] (driver_register+0x78/0x110)
[<c066b93c>] (driver_register) from [<c06412b8>] 
(exynos_drm_init+0xe4/0x118)
[<c06412b8>] (exynos_drm_init) from [<c01023f4>] 
(do_one_initcall+0x8c/0x424)
[<c01023f4>] (do_one_initcall) from [<c10011a8>] 
(kernel_init_freeable+0x190/0x1dc)
[<c10011a8>] (kernel_init_freeable) from [<c0ae8e5c>] 
(kernel_init+0x8/0x118)
[<c0ae8e5c>] (kernel_init) from [<c0100114>] (ret_from_fork+0x14/0x20)
Exception stack(0xd94a5fb0 to 0xd94a5ff8)
...
---[ end trace 1a053145d15f23dc ]---
Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b
CPU0: stopping
CPU: 0 PID: 0 Comm: swapper/0 Tainted: G      D 
5.9.0-rc2-next-20200824-00017-g3e9b20f7eb0d #1576
Hardware name: Samsung Exynos (Flattened Device Tree)
[<c011160c>] (unwind_backtrace) from [<c010cfc0>] (show_stack+0x10/0x14)
[<c010cfc0>] (show_stack) from [<c0533c3c>] (dump_stack+0xbc/0xe8)
[<c0533c3c>] (dump_stack) from [<c01104e0>] (handle_IPI+0x3e0/0x428)
[<c01104e0>] (handle_IPI) from [<c05511dc>] (gic_handle_irq+0x98/0x9c)
[<c05511dc>] (gic_handle_irq) from [<c0100af0>] (__irq_svc+0x70/0xb0)
Exception stack(0xc1101f08 to 0xc1101f50)
...
[<c0100af0>] (__irq_svc) from [<c01095dc>] (arch_cpu_idle+0x24/0x44)
[<c01095dc>] (arch_cpu_idle) from [<c01635dc>] (do_idle+0x1bc/0x2bc)
[<c01635dc>] (do_idle) from [<c0163a90>] (cpu_startup_entry+0x18/0x1c)
[<c0163a90>] (cpu_startup_entry) from [<c1000f88>] 
(start_kernel+0x628/0x664)
[<c1000f88>] (start_kernel) from [<00000000>] (0x0)
---[ end Kernel panic - not syncing: Attempted to kill init! 
exitcode=0x0000000b ]---

I've didn't check the code yet, but the conversion also lacks "select 
DRM_SAMSUNG_DSIM" in the Exynos DSI driver's Kconfig, as I wasn't even 
able to compile it with the current exynos_defconfig.

I've tested it on top of next-20200824, because it doesn't apply 
on current linux-next.

Best regards
-- 
Marek Szyprowski, PhD
Samsung R&D Institute Poland



More information about the dri-devel mailing list