From 957b3c67cce6447f4d0995f69a4052eae1b40f02 Mon Sep 17 00:00:00 2001 From: Dongjin Kim Date: Thu, 21 Dec 2023 16:44:32 +0900 Subject: [PATCH] ODROID-COMMON: drm/rockchip: remove calling 'rockchip_drm_show_logo()' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit For some reason, kernel crashes when booting with ODROID-Vu8S panel display unlike 'ODROID-Vu5S' which use 'compatible = "simple-panel-dsi'. This patch is a quick work around sine there is no problem showing boot splash rendered in U-Boot even if the function is not called. :( [ 3.067170] rockchip-drm display-subsystem: bound fe040000.vop (ops 0xffffffc008bec7d0) [ 3.067365] rockchip-drm display-subsystem: bound fe060000.dsi (ops 0xffffffc008bfcab0) [ 3.067421] mali fde60000.gpu: Probed as mali0 [ 3.068264] (��: Underflow of regulator enable count [ 3.068413] Unable to handle kernel NULL pointer dereference at virtual address 0000000000000000 [ 3.090908] Mem abort info: [ 3.091167] ESR = 0x96000005 [ 3.091447] EC = 0x25: DABT (current EL), IL = 32 bits [ 3.091940] SET = 0, FnV = 0 [ 3.092220] EA = 0, S1PTW = 0 [ 3.092508] Data abort info: [ 3.092773] ISV = 0, ISS = 0x00000005 [ 3.093119] CM = 0, WnR = 0 [ 3.093397] user pgtable: 4k pages, 39-bit VAs, pgdp=00000001049eb000 [ 3.093975] [0000000000000000] pgd=0000000000000000, p4d=0000000000000000, pud=0000000000000000 [ 3.094766] Internal error: Oops: 96000005 [#1] SMP [ 3.095206] Modules linked in: [ 3.095493] CPU: 2 PID: 89 Comm: kworker/u8:1 Not tainted 5.10.0-odroid-arm64 #1 Ubuntu 5.10.160-202312182246~focal [ 3.096419] Hardware name: Hardkernel ODROID-M1S (DT) [ 3.096882] Workqueue: events_unbound deferred_probe_work_func [ 3.097409] pstate: 80c00009 (Nzcv daif +PAN +UAO -TCO BTYPE=--) [ 3.097959] pc : __memcpy+0xbc/0x180 [ 3.098289] lr : drm_mode_copy+0x30/0x48 [ 3.098646] sp : ffffffc009e13830 [ 3.098945] x29: ffffffc009e13830 x28: ffffff810564e000 [ 3.099426] x27: ffffff8104c90240 x26: 0000000000000003 [ 3.099906] x25: ffffff8100d2b000 x24: ffffff8105c21448 [ 3.100386] x23: ffffff81049f9600 x22: ffffff810564e000 [ 3.100865] x21: 0000000000000000 x20: 0000000000000000 [ 3.101344] x19: ffffff81049f9180 x18: 0000000000000000 [ 3.101823] x17: 00000000000057b0 x16: 0000000000000000 [ 3.102302] x15: 000000000000000a x14: 0000000000000577 [ 3.102781] x13: ffffffffffffffff x12: ffffffffffffffff [ 3.103261] x11: 0000000000000000 x10: 0000000000000a20 [ 3.103740] x9 : ffffffc0085b4408 x8 : ffffff81049f9200 [ 3.104219] x7 : 0000000000000000 x6 : ffffff81049f9180 [ 3.104698] x5 : 0000000000000040 x4 : 0000000000000000 [ 3.105177] x3 : 0000000000000080 x2 : fffffffffffffff8 [ 3.105655] x1 : 0000000000000000 x0 : ffffff81049f9180 [ 3.106135] Call trace: [ 3.106370] __memcpy+0xbc/0x180 [ 3.106672] drm_mode_duplicate+0x30/0x44 [ 3.107046] ili9881c_get_modes+0x34/0xb8 [ 3.107420] drm_panel_get_modes+0x2c/0x48 [ 3.107795] dw_mipi_dsi_connector_get_modes+0x48/0x54 [ 3.108262] rockchip_drm_show_logo+0xad4/0x1438 [ 3.108680] rockchip_drm_bind+0x6b8/0x740 [ 3.109053] try_to_bring_up_master+0xa0/0x284 [ 3.109460] component_master_add_with_match+0xdc/0x100 [ 3.109939] rockchip_drm_platform_probe+0x254/0x28c [ 3.110392] platform_drv_probe+0x5c/0xac [ 3.110764] really_probe+0x2dc/0x46c [ 3.111101] driver_probe_device+0x134/0x144 [ 3.111495] __device_attach_driver+0xd0/0x118 [ 3.111904] bus_for_each_drv+0xa0/0xc8 [ 3.112252] __device_attach+0xf8/0x184 [ 3.112600] device_initial_probe+0x1c/0x28 [ 3.112984] bus_probe_device+0x38/0x9c [ 3.113333] deferred_probe_work_func+0xdc/0xf0 [ 3.113757] process_one_work+0x1e0/0x298 [ 3.114129] process_scheduled_works+0x4c/0x50 [ 3.114536] worker_thread+0x1f4/0x278 [ 3.114885] kthread+0xf4/0x104 [ 3.115177] ret_from_fork+0x10/0x30 Change-Id: I2c76298218dfd2ef1609fe1d8810ca4045ed04b4 Signed-off-by: Dongjin Kim --- drivers/gpu/drm/rockchip/rockchip_drm_drv.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c index df1b5beced33..8ced291ddf07 100644 --- a/drivers/gpu/drm/rockchip/rockchip_drm_drv.c +++ b/drivers/gpu/drm/rockchip/rockchip_drm_drv.c @@ -2493,7 +2493,9 @@ static int rockchip_drm_bind(struct device *dev) drm_for_each_encoder(encoder, drm_dev) rockchip_drm_fix_encoder_possible_clones(encoder); +#if !defined(CONFIG_ARCH_ROCKCHIP_ODROID_COMMON) rockchip_drm_show_logo(drm_dev); +#endif ret = rockchip_drm_fbdev_init(drm_dev); if (ret)