Hi Marek, On Tue, Feb 22, 2022 at 12:19 PM Jagan Teki <jagan@xxxxxxxxxxxxxxxxxxxx> wrote: > > On Wed, Feb 2, 2022 at 9:54 PM Jagan Teki <jagan@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > Hi Marek, > > > > On Fri, Jan 21, 2022 at 6:14 PM Marek Szyprowski > > <m.szyprowski@xxxxxxxxxxx> wrote: > > > > > > Hi Jagan, > > > > > > On 21.01.2022 12:40, Jagan Teki wrote: > > > > On Fri, Jan 21, 2022 at 5:06 PM Marek Szyprowski > > > > <m.szyprowski@xxxxxxxxxxx> wrote: > > > >> On 17.01.2022 09:42, Jagan Teki wrote: > > > >>> Updated series about drm bridge conversion of exynos dsi. > > > >>> > > > >>> Previous version can be accessible, here [1]. > > > >>> > > > >>> Patch 1: connector reset > > > >>> > > > >>> Patch 2: panel_bridge API > > > >>> > > > >>> Patch 3: bridge conversion > > > >>> > > > >>> Patch 4: atomic functions > > > >>> > > > >>> Patch 5: DSI init in pre_enable > > > >>> > > > >>> Apply below patches to test on Exynos DSI: > > > >>> - https://protect2.fireeye.com/v1/url?k=53bdf119-0c26c815-53bc7a56-000babff3563-792dc1a6b54db43e&q=1&e=9a4ea3ad-9e7d-443d-ad21-ce694a7cd352&u=https%3A%2F%2Fpatchwork.amarulasolutions.com%2Fpatch%2F1825%2F > > > >>> - https://protect2.fireeye.com/v1/url?k=cb269ea3-94bda7af-cb2715ec-000babff3563-e6f545b4a32558ba&q=1&e=9a4ea3ad-9e7d-443d-ad21-ce694a7cd352&u=https%3A%2F%2Fpatchwork.amarulasolutions.com%2Fpatch%2F1838%2F > > > >>> > > > >>> [1] https://protect2.fireeye.com/v1/url?k=ee1dae12-b186971e-ee1c255d-000babff3563-83eaf8e86e67e0d9&q=1&e=9a4ea3ad-9e7d-443d-ad21-ce694a7cd352&u=https%3A%2F%2Fpatchwork.amarulasolutions.com%2Fcover%2F1826%2F > > > >>> > > > >>> Any inputs? > > > >> I've tried a few times, but I am unable to find what is the base for > > > >> this patchset. I always get a conflict around exynos_dsi_mode_set() > > > >> function. I've tried current linux-next, drm-next, v5.16-rc1 and v5.16. > > > >> It looks that I must have missed applying some patch before playing with > > > >> this. > > > >> > > > >> I've also tried to apply only the last patch, as if I got it right, it > > > >> is the only difference between v4 and v5 and updated 'drm: of: Lookup if > > > >> child node has panel or bridge'. In such case the board freezes during > > > >> the drm initialization. > > > > Please use drm-misc/drm-misc-next with below patches and then apply this series. > > > > > > I don't have a good news. It doesn't work. The last patch even breaks > > > DSI operation: > > > > > > [ 4.520276] [drm] Exynos DRM: using 13800000.decon device for DMA > > > mapping operations > > > [ 4.520578] exynos-drm exynos-drm: bound 13800000.decon (ops > > > decon_component_ops) > > > [ 4.580473] exynos-drm exynos-drm: bound 13880000.decon (ops > > > decon_component_ops) > > > [ 4.580726] exynos-drm exynos-drm: bound 13930000.mic (ops > > > exynos_mic_component_ops) > > > [ 4.584304] exynos-dsi 13900000.dsi: [drm:exynos_dsi_host_attach] > > > Attached s6e3hf2 device > > > [ 4.585141] exynos-drm exynos-drm: bound 13900000.dsi (ops > > > exynos_dsi_component_ops) > > > [ 4.593189] rc_core: Couldn't load IR keymap rc-cec > > > [ 4.594133] Registered IR keymap rc-empty > > > [ 4.598760] rc rc0: sii8620 as /devices/virtual/rc/rc0 > > > [ 4.605219] input: sii8620 as /devices/virtual/rc/rc0/input1 > > > [ 4.610238] exynos-drm exynos-drm: bound 13970000.hdmi (ops > > > hdmi_component_ops) > > > [ 4.920038] exynos-dsi 13900000.dsi: xfer timed out: 39 03 00 00 f0 5a 5a > > > [ 5.024033] ------------[ cut here ]------------ > > > [ 5.024055] [CRTC:49:crtc-0] vblank wait timed out > > > [ 5.024129] WARNING: CPU: 4 PID: 151 at > > > drivers/gpu/drm/drm_atomic_helper.c:1530 > > > drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 5.024171] Modules linked in: > > > [ 5.024195] CPU: 4 PID: 151 Comm: kworker/4:7 Not tainted 5.16.0-rc5+ > > > #11232 > > > [ 5.024219] Hardware name: Samsung TM2E board (DT) > > > [ 5.024232] Workqueue: events output_poll_execute > > > [ 5.024262] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS > > > BTYPE=--) > > > [ 5.024285] pc : drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 5.024308] lr : drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 5.024327] sp : ffff800013b5b970 > > > [ 5.024340] x29: ffff800013b5b970 x28: 0000000000000000 x27: > > > ffff00002437e400 > > > [ 5.024391] x26: 0000000000000000 x25: 0000000000000000 x24: > > > ffff800011aa0c60 > > > [ 5.024437] x23: 0000000000000001 x22: ffff000025113000 x21: > > > 0000000000000001 > > > [ 5.024482] x20: ffff0000316fc800 x19: 0000000000000000 x18: > > > ffffffffffffffff > > > [ 5.024526] x17: 0048000000000a11 x16: 0000000000000028 x15: > > > ffff800011b66df8 > > > [ 5.024571] x14: 0000000000000000 x13: 0a74756f2064656d x12: > > > 6974207469617720 > > > [ 5.024615] x11: 656820747563205b x10: 000000000000003a x9 : > > > 000000007e82f035 > > > [ 5.024661] x8 : ffff800011b66df8 x7 : ffff800013b5b740 x6 : > > > 0000000000000001 > > > [ 5.024704] x5 : 0000000000000001 x4 : 0000000000000000 x3 : > > > 0000000000000007 > > > [ 5.024747] x2 : ffff800012524ea0 x1 : 68a66f6a76622200 x0 : > > > 0000000000000000 > > > [ 5.024791] Call trace: > > > [ 5.024802] drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 5.024825] drm_atomic_helper_commit_tail_rpm+0x60/0x78 > > > [ 5.024845] commit_tail+0x9c/0x170 > > > [ 5.024864] drm_atomic_helper_commit+0x188/0x3a0 > > > [ 5.024884] drm_atomic_commit+0x54/0x68 > > > [ 5.024906] drm_client_modeset_commit_atomic+0x260/0x288 > > > [ 5.024927] drm_client_modeset_commit_locked+0x54/0x1c0 > > > [ 5.024945] drm_client_modeset_commit+0x2c/0x50 > > > [ 5.024962] __drm_fb_helper_restore_fbdev_mode_unlocked+0x88/0xf8 > > > [ 5.024983] drm_fb_helper_set_par+0x38/0x70 > > > [ 5.025000] drm_fb_helper_hotplug_event.part.29+0xb0/0xe0 > > > [ 5.025018] drm_fb_helper_output_poll_changed+0x30/0x40 > > > [ 5.025035] drm_kms_helper_hotplug_event+0x28/0x40 > > > [ 5.025053] output_poll_execute+0xc4/0x1f0 > > > [ 5.025071] process_one_work+0x29c/0x6e8 > > > [ 5.025090] worker_thread+0x48/0x460 > > > [ 5.025106] kthread+0x154/0x188 > > > [ 5.025128] ret_from_fork+0x10/0x20 > > > [ 5.025148] irq event stamp: 878 > > > [ 5.025160] hardirqs last enabled at (877): [<ffff80001010e9fc>] > > > vprintk_emit+0x2bc/0x2f8 > > > [ 5.025188] hardirqs last disabled at (878): [<ffff80001100fccc>] > > > el1_dbg+0x24/0x88 > > > [ 5.025214] softirqs last enabled at (206): [<ffff800010010488>] > > > _stext+0x488/0x5cc > > > [ 5.025233] softirqs last disabled at (201): [<ffff800010095718>] > > > irq_exit_rcu+0x168/0x1a8 > > > [ 5.025256] ---[ end trace 458e29685f12760b ]--- > > > [ 15.240069] exynos-drm exynos-drm: [drm] *ERROR* flip_done timed out > > > [ 15.240131] exynos-drm exynos-drm: [drm] *ERROR* [CRTC:49:crtc-0] > > > commit wait timed out > > > [ 25.480001] exynos-drm exynos-drm: [drm] *ERROR* flip_done timed out > > > [ 25.480031] exynos-drm exynos-drm: [drm] *ERROR* [CONNECTOR:68:DSI-1] > > > commit wait timed out > > > [ 35.720001] exynos-drm exynos-drm: [drm] *ERROR* flip_done timed out > > > [ 35.720031] exynos-drm exynos-drm: [drm] *ERROR* [PLANE:37:plane-2] > > > commit wait timed out > > > [ 35.824013] ------------[ cut here ]------------ > > > [ 35.824037] [CRTC:49:crtc-0] vblank wait timed out > > > [ 35.824116] WARNING: CPU: 7 PID: 74 at > > > drivers/gpu/drm/drm_atomic_helper.c:1530 > > > drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 35.824155] Modules linked in: > > > [ 35.824180] CPU: 7 PID: 74 Comm: kworker/u16:1 Tainted: G > > > W 5.16.0-rc5+ #11232 > > > [ 35.824205] Hardware name: Samsung TM2E board (DT) > > > [ 35.824221] Workqueue: events_unbound deferred_probe_work_func > > > [ 35.824255] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS > > > BTYPE=--) > > > [ 35.824281] pc : drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 35.824304] lr : drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 35.824325] sp : ffff80001386b380 > > > [ 35.824339] x29: ffff80001386b380 x28: 0000000000000000 x27: > > > ffff000023c91c00 > > > [ 35.824395] x26: 0000000000000000 x25: 0000000000000000 x24: > > > ffff800011aa0c60 > > > [ 35.824446] x23: 0000000000000001 x22: ffff000025113000 x21: > > > 0000000000000001 > > > [ 35.824495] x20: ffff0000316fc800 x19: 0000000000000000 x18: > > > ffffffffffffffff > > > [ 35.824544] x17: 0048000000000a11 x16: 0000000000000028 x15: > > > ffff800011b66df8 > > > [ 35.824594] x14: 0000000000000000 x13: 0a74756f2064656d x12: > > > 6974207469617720 > > > [ 35.824643] x11: 656820747563205b x10: 000000000000003a x9 : > > > 0000000088c3aa19 > > > [ 35.824693] x8 : ffff800011b66df8 x7 : ffff80001386b150 x6 : > > > 0000000000000001 > > > [ 35.824741] x5 : 0000000000000001 x4 : 0000000000000000 x3 : > > > 000000000000000c > > > [ 35.824788] x2 : ffff800012524ea0 x1 : 68a66f6a76622200 x0 : > > > 0000000000000000 > > > [ 35.824838] Call trace: > > > [ 35.824851] drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 35.824875] drm_atomic_helper_commit_tail_rpm+0x60/0x78 > > > [ 35.824898] commit_tail+0x9c/0x170 > > > [ 35.824918] drm_atomic_helper_commit+0x188/0x3a0 > > > [ 35.824939] drm_atomic_commit+0x54/0x68 > > > [ 35.824962] drm_client_modeset_commit_atomic+0x260/0x288 > > > [ 35.824983] drm_client_modeset_commit_locked+0x54/0x1c0 > > > [ 35.825003] drm_client_modeset_commit+0x2c/0x50 > > > [ 35.825023] __drm_fb_helper_restore_fbdev_mode_unlocked+0x88/0xf8 > > > [ 35.825043] drm_fb_helper_set_par+0x38/0x70 > > > [ 35.825062] fbcon_init+0x440/0x4e0 > > > [ 35.825085] visual_init+0xb0/0x108 > > > [ 35.825107] do_bind_con_driver+0x1cc/0x3c0 > > > [ 35.825127] do_take_over_console+0x148/0x1d8 > > > [ 35.825148] do_fbcon_takeover+0x70/0xe8 > > > [ 35.825170] fbcon_fb_registered+0x13c/0x150 > > > [ 35.825192] register_framebuffer+0x1c4/0x340 > > > [ 35.825211] __drm_fb_helper_initial_config_and_unlock+0x360/0x548 > > > [ 35.825239] drm_fb_helper_initial_config+0x44/0x50 > > > [ 35.825257] exynos_drm_fbdev_init+0x90/0x100 > > > [ 35.825282] exynos_drm_bind+0x164/0x1a8 > > > [ 35.825303] try_to_bring_up_master+0x15c/0x1c8 > > > [ 35.825326] __component_add+0xa8/0x170 > > > [ 35.825348] component_add+0x10/0x18 > > > [ 35.825370] hdmi_probe+0x43c/0x6d0 > > > [ 35.825389] platform_probe+0x90/0xd8 > > > [ 35.825412] really_probe+0xb4/0x2e0 > > > [ 35.825432] __driver_probe_device+0x78/0xd8 > > > [ 35.825452] driver_probe_device+0x40/0x110 > > > [ 35.825473] __device_attach_driver+0x9c/0xd8 > > > [ 35.825494] bus_for_each_drv+0x70/0xc8 > > > [ 35.825513] __device_attach+0xec/0x150 > > > [ 35.825533] device_initial_probe+0x10/0x18 > > > [ 35.825556] bus_probe_device+0x94/0xa0 > > > [ 35.825575] deferred_probe_work_func+0x84/0xc0 > > > [ 35.825595] process_one_work+0x29c/0x6e8 > > > [ 35.825614] worker_thread+0x21c/0x460 > > > [ 35.825631] kthread+0x154/0x188 > > > [ 35.825653] ret_from_fork+0x10/0x20 > > > [ 35.825673] irq event stamp: 162880 > > > [ 35.825687] hardirqs last enabled at (162879): [<ffff80001010e9fc>] > > > vprintk_emit+0x2bc/0x2f8 > > > [ 35.825716] hardirqs last disabled at (162880): [<ffff80001100fccc>] > > > el1_dbg+0x24/0x88 > > > [ 35.825742] softirqs last enabled at (162726): [<ffff800010010488>] > > > _stext+0x488/0x5cc > > > [ 35.825763] softirqs last disabled at (162721): [<ffff800010095718>] > > > irq_exit_rcu+0x168/0x1a8 > > > [ 35.825787] ---[ end trace 458e29685f12760c ]--- > > > [ 45.960007] exynos-drm exynos-drm: [drm] *ERROR* flip_done timed out > > > [ 45.960039] exynos-drm exynos-drm: [drm] *ERROR* [CRTC:49:crtc-0] > > > commit wait timed out > > > [ 56.200000] exynos-drm exynos-drm: [drm] *ERROR* flip_done timed out > > > [ 56.200030] exynos-drm exynos-drm: [drm] *ERROR* [CONNECTOR:68:DSI-1] > > > commit wait timed out > > > [ 66.440000] exynos-drm exynos-drm: [drm] *ERROR* flip_done timed out > > > [ 66.440030] exynos-drm exynos-drm: [drm] *ERROR* [PLANE:37:plane-2] > > > commit wait timed out > > > [ 66.544003] ------------[ cut here ]------------ > > > [ 66.544027] [CRTC:49:crtc-0] vblank wait timed out > > > [ 66.544102] WARNING: CPU: 7 PID: 74 at > > > drivers/gpu/drm/drm_atomic_helper.c:1530 > > > drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 66.544138] Modules linked in: > > > [ 66.544162] CPU: 7 PID: 74 Comm: kworker/u16:1 Tainted: G > > > W 5.16.0-rc5+ #11232 > > > [ 66.544186] Hardware name: Samsung TM2E board (DT) > > > [ 66.544200] Workqueue: events_unbound deferred_probe_work_func > > > [ 66.544233] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS > > > BTYPE=--) > > > [ 66.544255] pc : drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 66.544277] lr : drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 66.544297] sp : ffff80001386b160 > > > [ 66.544310] x29: ffff80001386b160 x28: 0000000000000000 x27: > > > ffff000023d83500 > > > [ 66.544363] x26: 0000000000000000 x25: 0000000000000000 x24: > > > ffff800011aa0c60 > > > [ 66.544412] x23: 0000000000000001 x22: ffff000025113000 x21: > > > 0000000000000001 > > > [ 66.544461] x20: ffff0000316fc800 x19: 0000000000000000 x18: > > > ffffffffffffffff > > > [ 66.544509] x17: 0048000000000a11 x16: 0a020a010a110a00 x15: > > > ffff800011b66df8 > > > [ 66.544558] x14: 0000000000000000 x13: 0a74756f2064656d x12: > > > 6974207469617720 > > > [ 66.544606] x11: 656820747563205b x10: 000000000000003a x9 : > > > 0000000088c3aa19 > > > [ 66.544655] x8 : ffff800011b66df8 x7 : ffff80001386af30 x6 : > > > 0000000000000001 > > > [ 66.544702] x5 : 0000000000000001 x4 : 0000000000000000 x3 : > > > 000000000000000c > > > [ 66.544749] x2 : ffff800012524ea0 x1 : 68a66f6a76622200 x0 : > > > 0000000000000000 > > > [ 66.544796] Call trace: > > > [ 66.544808] drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 66.544830] drm_atomic_helper_commit_tail_rpm+0x60/0x78 > > > [ 66.544852] commit_tail+0x9c/0x170 > > > [ 66.544871] drm_atomic_helper_commit+0x188/0x3a0 > > > [ 66.544892] drm_atomic_commit+0x54/0x68 > > > [ 66.544915] drm_client_modeset_commit_atomic+0x260/0x288 > > > [ 66.544935] drm_client_modeset_commit_locked+0x54/0x1c0 > > > [ 66.544954] drm_fb_helper_pan_display+0xb0/0x1c0 > > > [ 66.544973] fb_pan_display+0xb8/0x158 > > > [ 66.544990] bit_update_start+0x1c/0x40 > > > [ 66.545013] fbcon_switch+0x308/0x458 > > > [ 66.545034] redraw_screen+0x158/0x238 > > > [ 66.545056] fbcon_prepare_logo+0x3cc/0x440 > > > [ 66.545077] fbcon_init+0x380/0x4e0 > > > [ 66.545098] visual_init+0xb0/0x108 > > > [ 66.545118] do_bind_con_driver+0x1cc/0x3c0 > > > [ 66.545137] do_take_over_console+0x148/0x1d8 > > > [ 66.545158] do_fbcon_takeover+0x70/0xe8 > > > [ 66.545178] fbcon_fb_registered+0x13c/0x150 > > > [ 66.545199] register_framebuffer+0x1c4/0x340 > > > [ 66.545217] __drm_fb_helper_initial_config_and_unlock+0x360/0x548 > > > [ 66.545244] drm_fb_helper_initial_config+0x44/0x50 > > > [ 66.545263] exynos_drm_fbdev_init+0x90/0x100 > > > [ 66.545286] exynos_drm_bind+0x164/0x1a8 > > > [ 66.545306] try_to_bring_up_master+0x15c/0x1c8 > > > [ 66.545329] __component_add+0xa8/0x170 > > > [ 66.545350] component_add+0x10/0x18 > > > [ 66.545371] hdmi_probe+0x43c/0x6d0 > > > [ 66.545389] platform_probe+0x90/0xd8 > > > [ 66.545411] really_probe+0xb4/0x2e0 > > > [ 66.545431] __driver_probe_device+0x78/0xd8 > > > [ 66.545452] driver_probe_device+0x40/0x110 > > > [ 66.545472] __device_attach_driver+0x9c/0xd8 > > > [ 66.545493] bus_for_each_drv+0x70/0xc8 > > > [ 66.545513] __device_attach+0xec/0x150 > > > [ 66.545532] device_initial_probe+0x10/0x18 > > > [ 66.545553] bus_probe_device+0x94/0xa0 > > > [ 66.545573] deferred_probe_work_func+0x84/0xc0 > > > [ 66.545592] process_one_work+0x29c/0x6e8 > > > [ 66.545612] worker_thread+0x21c/0x460 > > > [ 66.545628] kthread+0x154/0x188 > > > [ 66.545651] ret_from_fork+0x10/0x20 > > > [ 66.545671] irq event stamp: 163148 > > > [ 66.545684] hardirqs last enabled at (163147): [<ffff80001010e9fc>] > > > vprintk_emit+0x2bc/0x2f8 > > > [ 66.545712] hardirqs last disabled at (163148): [<ffff80001100fccc>] > > > el1_dbg+0x24/0x88 > > > [ 66.545735] softirqs last enabled at (162726): [<ffff800010010488>] > > > _stext+0x488/0x5cc > > > [ 66.545754] softirqs last disabled at (162721): [<ffff800010095718>] > > > irq_exit_rcu+0x168/0x1a8 > > > [ 66.545778] ---[ end trace 458e29685f12760d ]--- > > > [ 66.589975] Console: switching to colour frame buffer device 200x160 > > > [ 76.680050] exynos-drm exynos-drm: [drm] *ERROR* flip_done timed out > > > [ 76.680082] exynos-drm exynos-drm: [drm] *ERROR* [CRTC:49:crtc-0] > > > commit wait timed out > > > [ 86.920001] exynos-drm exynos-drm: [drm] *ERROR* flip_done timed out > > > [ 86.920030] exynos-drm exynos-drm: [drm] *ERROR* [CONNECTOR:68:DSI-1] > > > commit wait timed out > > > [ 97.160001] exynos-drm exynos-drm: [drm] *ERROR* flip_done timed out > > > [ 97.160029] exynos-drm exynos-drm: [drm] *ERROR* [PLANE:37:plane-2] > > > commit wait timed out > > > [ 97.264005] ------------[ cut here ]------------ > > > [ 97.264029] [CRTC:49:crtc-0] vblank wait timed out > > > [ 97.264103] WARNING: CPU: 7 PID: 74 at > > > drivers/gpu/drm/drm_atomic_helper.c:1530 > > > drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 97.264139] Modules linked in: > > > [ 97.264162] CPU: 7 PID: 74 Comm: kworker/u16:1 Tainted: G > > > W 5.16.0-rc5+ #11232 > > > [ 97.264185] Hardware name: Samsung TM2E board (DT) > > > [ 97.264199] Workqueue: events_unbound deferred_probe_work_func > > > [ 97.264231] pstate: 60000005 (nZCv daif -PAN -UAO -TCO -DIT -SSBS > > > BTYPE=--) > > > [ 97.264254] pc : drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 97.264277] lr : drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 97.264298] sp : ffff80001386b290 > > > [ 97.264310] x29: ffff80001386b290 x28: 0000000000000000 x27: > > > ffff0000250a6a00 > > > [ 97.264361] x26: 0000000000000000 x25: 0000000000000000 x24: > > > ffff800011aa0c60 > > > [ 97.264409] x23: 0000000000000001 x22: ffff000025113000 x21: > > > 0000000000000001 > > > [ 97.264457] x20: ffff0000316fc800 x19: 0000000000000000 x18: > > > ffffffffffffffff > > > [ 97.264505] x17: 0048000000000a11 x16: 0a020a010a110a00 x15: > > > ffff800011b66df8 > > > [ 97.264554] x14: 0000000000000000 x13: 0a74756f2064656d x12: > > > 6974207469617720 > > > [ 97.264603] x11: 656820747563205b x10: 000000000000003a x9 : > > > 0000000088c3aa19 > > > [ 97.264652] x8 : ffff800011b66df8 x7 : ffff80001386b060 x6 : > > > 0000000000000001 > > > [ 97.264699] x5 : 0000000000000001 x4 : 0000000000000000 x3 : > > > 000000000000000c > > > [ 97.264746] x2 : ffff800012524ea0 x1 : 68a66f6a76622200 x0 : > > > 0000000000000000 > > > [ 97.264794] Call trace: > > > [ 97.264806] drm_atomic_helper_wait_for_vblanks.part.24+0x298/0x2a8 > > > [ 97.264829] drm_atomic_helper_commit_tail_rpm+0x60/0x78 > > > [ 97.264852] commit_tail+0x9c/0x170 > > > [ 97.264872] drm_atomic_helper_commit+0x188/0x3a0 > > > [ 97.264892] drm_atomic_commit+0x54/0x68 > > > [ 97.264915] drm_client_modeset_commit_atomic+0x260/0x288 > > > [ 97.264936] drm_client_modeset_commit_locked+0x54/0x1c0 > > > [ 97.264955] drm_fb_helper_pan_display+0xb0/0x1c0 > > > [ 97.264974] fb_pan_display+0xb8/0x158 > > > [ 97.264991] bit_update_start+0x1c/0x40 > > > [ 97.265014] fbcon_switch+0x308/0x458 > > > [ 97.265034] redraw_screen+0x158/0x238 > > > [ 97.265056] do_bind_con_driver+0x2d0/0x3c0 > > > [ 97.265075] do_take_over_console+0x148/0x1d8 > > > [ 97.265096] do_fbcon_takeover+0x70/0xe8 > > > [ 97.265117] fbcon_fb_registered+0x13c/0x150 > > > [ 97.265138] register_framebuffer+0x1c4/0x340 > > > [ 97.265156] __drm_fb_helper_initial_config_and_unlock+0x360/0x548 > > > [ 97.265183] drm_fb_helper_initial_config+0x44/0x50 > > > [ 97.265202] exynos_drm_fbdev_init+0x90/0x100 > > > [ 97.265225] exynos_drm_bind+0x164/0x1a8 > > > [ 97.265246] try_to_bring_up_master+0x15c/0x1c8 > > > [ 97.265268] __component_add+0xa8/0x170 > > > [ 97.265289] component_add+0x10/0x18 > > > [ 97.265310] hdmi_probe+0x43c/0x6d0 > > > [ 97.265327] platform_probe+0x90/0xd8 > > > [ 97.265349] really_probe+0xb4/0x2e0 > > > [ 97.265368] __driver_probe_device+0x78/0xd8 > > > [ 97.265388] driver_probe_device+0x40/0x110 > > > [ 97.265408] __device_attach_driver+0x9c/0xd8 > > > [ 97.265428] bus_for_each_drv+0x70/0xc8 > > > [ 97.265446] __device_attach+0xec/0x150 > > > [ 97.265465] device_initial_probe+0x10/0x18 > > > [ 97.265485] bus_probe_device+0x94/0xa0 > > > [ 97.265505] deferred_probe_work_func+0x84/0xc0 > > > [ 97.265524] process_one_work+0x29c/0x6e8 > > > [ 97.265543] worker_thread+0x21c/0x460 > > > [ 97.265559] kthread+0x154/0x188 > > > [ 97.265580] ret_from_fork+0x10/0x20 > > > [ 97.265601] irq event stamp: 163438 > > > [ 97.265613] hardirqs last enabled at (163437): [<ffff80001010e9fc>] > > > vprintk_emit+0x2bc/0x2f8 > > > [ 97.265641] hardirqs last disabled at (163438): [<ffff80001100fccc>] > > > el1_dbg+0x24/0x88 > > > [ 97.265664] softirqs last enabled at (163174): [<ffff800010010488>] > > > _stext+0x488/0x5cc > > > [ 97.265684] softirqs last disabled at (163169): [<ffff800010095718>] > > > irq_exit_rcu+0x168/0x1a8 > > > [ 97.265706] ---[ end trace 458e29685f12760e ]--- > > > [ 98.742702] exynos-drm exynos-drm: [drm] fb0: exynos frame buffer device > > > [ 98.752101] [drm] Initialized exynos 1.1.0 20180330 for exynos-drm on > > > minor 0 > > > > So, MIC-based pipeline SoC's are not working? like > > > > Exynos5433 Decon -> Exynos MIC -> Exynos DSI -> s6e3ha2 DSI panel > > > > If so, we can attach the add attach in MIC bridge so that it can link > > the downstream bridge ie DSI. > > Any further comments? Please check the below patch. as I stated, I have moved in_bridge away from DSI. Author: Jagan Teki <jagan@xxxxxxxxxxxxxxxxxxxx> Date: Tue Feb 22 12:57:00 2022 +0530 exynos: drm: dsi: Attach in_bridge in MIC driver Signed-off-by: Jagan Teki <jagan@xxxxxxxxxxxxxxxxxxxx> diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c b/drivers/gpu/drm/exynos/exynos_drm_dsi.c index b7d0a4aead0a..741c046513e8 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c @@ -1660,11 +1660,6 @@ static int exynos_dsi_of_read_u32(const struct device_node *np, return ret; } -enum { - DSI_PORT_IN, - DSI_PORT_OUT -}; - static int exynos_dsi_parse_dt(struct exynos_dsi *dsi) { struct device *dev = dsi->dev; @@ -1695,8 +1690,6 @@ static int exynos_dsi_bind(struct device *dev, struct device *master, struct exynos_dsi *dsi = dev_get_drvdata(dev); struct drm_encoder *encoder = &dsi->encoder; struct drm_device *drm_dev = data; - struct device_node *in_bridge_node; - struct drm_bridge *in_bridge; int ret; drm_simple_encoder_init(drm_dev, encoder, DRM_MODE_ENCODER_TMDS); @@ -1707,14 +1700,6 @@ static int exynos_dsi_bind(struct device *dev, struct device *master, if (ret < 0) return ret; - in_bridge_node = of_graph_get_remote_node(dev->of_node, DSI_PORT_IN, 0); - if (in_bridge_node) { - in_bridge = of_drm_find_bridge(in_bridge_node); - if (in_bridge) - drm_bridge_attach(encoder, in_bridge, NULL, 0); - of_node_put(in_bridge_node); - } - return mipi_dsi_host_register(&dsi->dsi_host); } diff --git a/drivers/gpu/drm/exynos/exynos_drm_mic.c b/drivers/gpu/drm/exynos/exynos_drm_mic.c index 32672bf8ae4a..550811dc0fc6 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_mic.c +++ b/drivers/gpu/drm/exynos/exynos_drm_mic.c @@ -102,6 +102,7 @@ struct exynos_mic { struct videomode vm; struct drm_encoder *encoder; struct drm_bridge bridge; + struct drm_bridge *next_bridge; bool enabled; }; @@ -298,12 +299,22 @@ static void mic_pre_enable(struct drm_bridge *bridge) static void mic_enable(struct drm_bridge *bridge) { } +static int mic_attach(struct drm_bridge *bridge, + enum drm_bridge_attach_flags flags) +{ + struct exynos_mic *mic = bridge->driver_private; + + return drm_bridge_attach(bridge->encoder, mic->next_bridge, + &mic->bridge, flags); +} + static const struct drm_bridge_funcs mic_bridge_funcs = { .disable = mic_disable, .post_disable = mic_post_disable, .mode_set = mic_mode_set, .pre_enable = mic_pre_enable, .enable = mic_enable, + .attach = mic_attach, }; static int exynos_mic_bind(struct device *dev, struct device *master, @@ -377,6 +388,7 @@ static int exynos_mic_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct exynos_mic *mic; + struct device_node *remote; struct resource res; int ret, i; @@ -420,6 +432,16 @@ static int exynos_mic_probe(struct platform_device *pdev) } } + remote = of_graph_get_remote_node(dev->of_node, 1, 0); + mic->next_bridge = of_drm_find_bridge(remote); + if (IS_ERR(mic->next_bridge)) { + DRM_DEV_ERROR(dev, "mic: Failed to find next bridge\n"); + ret = PTR_ERR(mic->next_bridge); + goto err; + } + + of_node_put(remote); + platform_set_drvdata(pdev, mic); mic->bridge.funcs = &mic_bridge_funcs; Repo: https://github.com/openedev/kernel/tree/exynos-dsi Thanks, Jagan.