[PATCH] drm/msm/dsi: fixup DSC support for the cases when there is no pannel attached

Dmitry Baryshkov dmitry.baryshkov at linaro.org
Tue Apr 19 21:37:06 UTC 2022


Unable to handle kernel paging request at virtual address fffffffffffffe2b
Mem abort info:
  ESR = 0x96000004
  EC = 0x25: DABT (current EL), IL = 32 bits
  SET = 0, FnV = 0
  EA = 0, S1PTW = 0
  FSC = 0x04: level 0 translation fault
Data abort info:
  ISV = 0, ISS = 0x00000004
  CM = 0, WnR = 0
swapper pgtable: 4k pages, 48-bit VAs, pgdp=00000000a1a39000
[fffffffffffffe2b] pgd=0000000000000000, p4d=0000000000000000
Internal error: Oops: 96000004 [#1] SMP
Modules linked in:
CPU: 7 PID: 8 Comm: kworker/u16:0 Not tainted 5.18.0-rc3-00055-g3120774492e8 #672
Hardware name: Qualcomm Technologies, Inc. Robotics RB5 (DT)
Workqueue: events_unbound deferred_probe_work_func
pstate: 60400005 (nZCv daif +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
pc : msm_dsi_host_modeset_init+0x30/0xcc
lr : msm_dsi_host_modeset_init+0x28/0xcc
sp : ffff800008093640
x29: ffff800008093640 x28: ffff0757131ef080 x27: 0000000000000000
x26: ffffa1d966bca440 x25: 0000000000000000 x24: 0000000000000001
x23: ffff0757131e6880 x22: ffff075700dc9c00 x21: ffffa1d965d40f60
x20: fffffffffffffdfb x19: ffff0757131ea480 x18: ffffffffffffffff
x17: ffffa1d966c51b10 x16: 00000000000003e8 x15: ffff075713989287
x14: ffffffffffffffff x13: ffff075713989284 x12: ffff07587effaf90
x11: ffff07587effaf70 x10: 00000000000b4220 x9 : 0000000000000003
x8 : 0101010101010101 x7 : 0000000000000003 x6 : 1d150c11f5f38080
x5 : 0000000000000000 x4 : ffff0757001f63c0 x3 : ffffa1d966bc02b8
x2 : 0000000000000000 x1 : ffff0757001f63c0 x0 : fffffffffffffdfb
Call trace:
 msm_dsi_host_modeset_init+0x30/0xcc
 msm_dsi_modeset_init+0x40/0x1e4
 _dpu_kms_drm_obj_init.isra.0+0xdc/0x5c0
 dpu_kms_hw_init+0x338/0x590
 msm_drm_bind+0x1d8/0x5f0
 try_to_bring_up_aggregate_device+0x164/0x1d0
 __component_add+0xa4/0x170
 component_add+0x14/0x20
 dsi_dev_attach+0x20/0x30
 dsi_host_attach+0x94/0x150
 devm_mipi_dsi_attach+0x34/0xb0
 lt9611uxc_attach_dsi.isra.0+0x84/0x100
 lt9611uxc_probe+0x538/0x5e0
 i2c_device_probe+0x2ac/0x2f0
 really_probe.part.0+0x9c/0x28c
 __driver_probe_device+0x98/0x144
 driver_probe_device+0x40/0x140
 __device_attach_driver+0xb4/0x120
 bus_for_each_drv+0x78/0xd0
 __device_attach+0xdc/0x184
 device_initial_probe+0x14/0x20
 bus_probe_device+0x9c/0xa4
 deferred_probe_work_func+0x88/0xc0
 process_one_work+0x1ec/0x444
 worker_thread+0x294/0x4dc
 kthread+0xfc/0x100
 ret_from_fork+0x10/0x20
Code: f940e675 97fdc7ba b40000c0 aa0003f4 (f9401800)

Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov at linaro.org>
---

Note: I'm going to squash this fix into the respective patch from the
DSC series

---
 drivers/gpu/drm/msm/dsi/dsi_host.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/msm/dsi/dsi_host.c b/drivers/gpu/drm/msm/dsi/dsi_host.c
index 03921649bd28..c983698d1384 100644
--- a/drivers/gpu/drm/msm/dsi/dsi_host.c
+++ b/drivers/gpu/drm/msm/dsi/dsi_host.c
@@ -2167,7 +2167,7 @@ int msm_dsi_host_modeset_init(struct mipi_dsi_host *host,
 	msm_host->dev = dev;
 	panel = msm_dsi_host_get_panel(&msm_host->base);
 
-	if (panel && panel->dsc) {
+	if (!IS_ERR(panel) && panel->dsc) {
 		struct msm_display_dsc_config *dsc = msm_host->dsc;
 
 		if (!dsc) {
-- 
2.35.1



More information about the dri-devel mailing list