Hi Marek,
On Fri, 04 Sep 2020 10:31:12 +0200, Marek Szyprowski wrote:
Hi Krzysztof,
On 03.09.2020 22:08, Krzysztof Kozlowski wrote:
On Thu, 3 Sep 2020 at 18:57, Michael Tretter m.tretter@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:
Thanks for testing.
exynos4-fb 11c00000.fimd: Adding to iommu group 0 OF: graph: no port node found in /soc/fimd@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@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 ]---
This and the other null pointer dereference look like two different problems. I will look into both of them and send an update.
I will also try to come up with something to at least test the bind/unbind interface and reduce the code that I cannot test.
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.
Dang, of course. I will fix it.
Michael