Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
On Mon, Jan 10, 2022 at 9:10 PM Robert Foss wrote: > > On Mon, 10 Jan 2022 at 16:35, Jagan Teki wrote: > > > > Hi Robert, > > > > On Mon, Jan 10, 2022 at 9:02 PM Robert Foss wrote: > > > > > > Hey Jagan, > > > > > > This is a mistake on my end, I must have been looking at reviewing > > > this series and then accidentally included it with another batch of > > > patches. Thank you for catching this. > > > > Thanks for the response. > > > > > > > > I would suggest reverting these two patches[1][2]. Is that ok with you? > > > > May be I will revert 1/2. but 2/2 is valid. Please let me know, if you > > have any concerns on reverting 1/2. > > Please go ahead! Sent. Thanks, Jagan.
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
On Mon, 10 Jan 2022 at 16:35, Jagan Teki wrote: > > Hi Robert, > > On Mon, Jan 10, 2022 at 9:02 PM Robert Foss wrote: > > > > Hey Jagan, > > > > This is a mistake on my end, I must have been looking at reviewing > > this series and then accidentally included it with another batch of > > patches. Thank you for catching this. > > Thanks for the response. > > > > > I would suggest reverting these two patches[1][2]. Is that ok with you? > > May be I will revert 1/2. but 2/2 is valid. Please let me know, if you > have any concerns on reverting 1/2. Please go ahead!
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
Hi Robert, On Mon, Jan 10, 2022 at 9:02 PM Robert Foss wrote: > > Hey Jagan, > > This is a mistake on my end, I must have been looking at reviewing > this series and then accidentally included it with another batch of > patches. Thank you for catching this. Thanks for the response. > > I would suggest reverting these two patches[1][2]. Is that ok with you? May be I will revert 1/2. but 2/2 is valid. Please let me know, if you have any concerns on reverting 1/2. Thanks, Jagan.
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
Hey Jagan, This is a mistake on my end, I must have been looking at reviewing this series and then accidentally included it with another batch of patches. Thank you for catching this. I would suggest reverting these two patches[1][2]. Is that ok with you? [1] https://cgit.freedesktop.org/drm/drm-misc/commit/?id=92e794fab87af0793403d5e4a547f0be94a0e656 [2] https://cgit.freedesktop.org/drm/drm-misc/commit/?id=aee039e66035b66f0c587cc1b0dd32fb04c9a892 On Mon, 10 Jan 2022 at 12:17, Jagan Teki wrote: > > Hi Robert, > > On Mon, Nov 22, 2021 at 9:34 PM Marek Szyprowski > wrote: > > > > On 22.11.2021 16:07, Marek Szyprowski wrote: > > > On 22.11.2021 15:55, Jagan Teki wrote: > > >> On Mon, Nov 22, 2021 at 7:59 PM Jagan Teki > > >> wrote: > > >>> On Mon, Nov 22, 2021 at 7:51 PM Jagan Teki > > >>> wrote: > > On Mon, Nov 22, 2021 at 7:45 PM Marek Szyprowski > > wrote: > > > On 22.11.2021 08:06, Jagan Teki wrote: > > >> Some display panels would come up with a non-DSI output, those > > >> can have an option to connect the DSI host by means of interface > > >> bridge converter. > > >> > > >> This DSI to non-DSI interface bridge converter would requires > > >> DSI Host to handle drm bridge functionalities in order to DSI > > >> Host to Interface bridge. > > >> > > >> This patch convert the existing to a drm bridge driver with a > > >> built-in encoder support for compatibility with existing > > >> component drivers. > > >> > > >> Signed-off-by: Jagan Teki > > >> --- > > >> Note: > > >> Hi Marek Szyprowski, > > >> > > >> Please test this on Panel and Bridge hardware. > > > I don't have good news, t crashes: > > > > > > [drm] Exynos DRM: using 1380.decon device for DMA mapping > > > operations > > > exynos-drm exynos-drm: bound 1380.decon (ops decon_component_ops) > > > exynos-drm exynos-drm: bound 1388.decon (ops decon_component_ops) > > > exynos-drm exynos-drm: bound 1393.mic (ops > > > exynos_mic_component_ops) > > > [drm:drm_bridge_attach] *ERROR* failed to attach bridge > > > /soc@0/dsi@1390 to encoder TMDS-67: -22 > > > exynos-drm exynos-drm: failed to bind 1390.dsi (ops > > > exynos_dsi_component_ops): -22 > > > Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP > > > Modules linked in: > > > CPU: 2 PID: 74 Comm: kworker/u16:1 Not tainted 5.16.0-rc1+ #4141 > > > Hardware name: Samsung TM2E board (DT) > > > Workqueue: events_unbound deferred_probe_work_func > > > pstate: 8005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > > > pc : decon_atomic_disable+0x58/0xd4 > > > lr : decon_atomic_disable+0x28/0xd4 > > > sp : 80001390b940 > > > x29: 80001390b940 x28: 80001259a000 x27: 27f39e80 > > > input: stmfts as > > > /devices/platform/soc@0/14ed.hsi2c/i2c-3/3-0049/input/input0 > > > x26: ffea x25: 25a40280 x24: 0001 > > > x23: 800011b55f98 x22: 315dc000 x21: 2695d100 > > > x20: 27e7a080 x19: 315e6000 x18: > > > x17: 645f736f6e797865 x16: 2073706f28206973 x15: 00028ee0 > > > x14: 0028 x13: 0001 x12: 0040 > > > x11: 23c18920 x10: 23c18922 x9 : 8000126352f0 > > > x8 : 23c00270 x7 : x6 : 23c00268 > > > x5 : 27e7a3a0 x4 : 0001 x3 : 27e7a080 > > > x2 : 0024 x1 : 800013bc8024 x0 : 246117c0 > > > Call trace: > > >decon_atomic_disable+0x58/0xd4 > > >decon_unbind+0x1c/0x3c > > >component_unbind+0x38/0x60 > > >component_bind_all+0x16c/0x25c > > >exynos_drm_bind+0x104/0x1bc > > >try_to_bring_up_master+0x164/0x1d0 > > >__component_add+0xa8/0x174 > > >component_add+0x14/0x20 > > >hdmi_probe+0x438/0x710 > > >platform_probe+0x68/0xe0 > > >really_probe.part.0+0x9c/0x31c > > >__driver_probe_device+0x98/0x144 > > >driver_probe_device+0xc8/0x160 > > >__device_attach_driver+0xb8/0x120 > > >bus_for_each_drv+0x78/0xd0 > > >__device_attach+0xd8/0x180 > > >device_initial_probe+0x14/0x20 > > >bus_probe_device+0x9c/0xa4 > > >deferred_probe_work_func+0x88/0xc4 > > >process_one_work+0x288/0x6f0 > > >worker_thread+0x74/0x470 > > >kthread+0x188/0x194 > > >ret_from_fork+0x10/0x20 > > > Code: 11002042 f9481c61 531e7442 8b020021 (88dffc21) > > > ---[ end trace d73aff585b108954 ]--- > > > Kernel panic - not syncing: synchronous external abort: Fatal > > > exception > > > SMP: stopping secondary CPUs > > > Kernel Offset: disabled > > > CPU features: 0x2,300071c2,0846 > > > Memory Limit: none > > > ---[ end
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
Hi Robert, On Mon, Nov 22, 2021 at 9:34 PM Marek Szyprowski wrote: > > On 22.11.2021 16:07, Marek Szyprowski wrote: > > On 22.11.2021 15:55, Jagan Teki wrote: > >> On Mon, Nov 22, 2021 at 7:59 PM Jagan Teki > >> wrote: > >>> On Mon, Nov 22, 2021 at 7:51 PM Jagan Teki > >>> wrote: > On Mon, Nov 22, 2021 at 7:45 PM Marek Szyprowski > wrote: > > On 22.11.2021 08:06, Jagan Teki wrote: > >> Some display panels would come up with a non-DSI output, those > >> can have an option to connect the DSI host by means of interface > >> bridge converter. > >> > >> This DSI to non-DSI interface bridge converter would requires > >> DSI Host to handle drm bridge functionalities in order to DSI > >> Host to Interface bridge. > >> > >> This patch convert the existing to a drm bridge driver with a > >> built-in encoder support for compatibility with existing > >> component drivers. > >> > >> Signed-off-by: Jagan Teki > >> --- > >> Note: > >> Hi Marek Szyprowski, > >> > >> Please test this on Panel and Bridge hardware. > > I don't have good news, t crashes: > > > > [drm] Exynos DRM: using 1380.decon device for DMA mapping > > operations > > exynos-drm exynos-drm: bound 1380.decon (ops decon_component_ops) > > exynos-drm exynos-drm: bound 1388.decon (ops decon_component_ops) > > exynos-drm exynos-drm: bound 1393.mic (ops > > exynos_mic_component_ops) > > [drm:drm_bridge_attach] *ERROR* failed to attach bridge > > /soc@0/dsi@1390 to encoder TMDS-67: -22 > > exynos-drm exynos-drm: failed to bind 1390.dsi (ops > > exynos_dsi_component_ops): -22 > > Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP > > Modules linked in: > > CPU: 2 PID: 74 Comm: kworker/u16:1 Not tainted 5.16.0-rc1+ #4141 > > Hardware name: Samsung TM2E board (DT) > > Workqueue: events_unbound deferred_probe_work_func > > pstate: 8005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > > pc : decon_atomic_disable+0x58/0xd4 > > lr : decon_atomic_disable+0x28/0xd4 > > sp : 80001390b940 > > x29: 80001390b940 x28: 80001259a000 x27: 27f39e80 > > input: stmfts as > > /devices/platform/soc@0/14ed.hsi2c/i2c-3/3-0049/input/input0 > > x26: ffea x25: 25a40280 x24: 0001 > > x23: 800011b55f98 x22: 315dc000 x21: 2695d100 > > x20: 27e7a080 x19: 315e6000 x18: > > x17: 645f736f6e797865 x16: 2073706f28206973 x15: 00028ee0 > > x14: 0028 x13: 0001 x12: 0040 > > x11: 23c18920 x10: 23c18922 x9 : 8000126352f0 > > x8 : 23c00270 x7 : x6 : 23c00268 > > x5 : 27e7a3a0 x4 : 0001 x3 : 27e7a080 > > x2 : 0024 x1 : 800013bc8024 x0 : 246117c0 > > Call trace: > >decon_atomic_disable+0x58/0xd4 > >decon_unbind+0x1c/0x3c > >component_unbind+0x38/0x60 > >component_bind_all+0x16c/0x25c > >exynos_drm_bind+0x104/0x1bc > >try_to_bring_up_master+0x164/0x1d0 > >__component_add+0xa8/0x174 > >component_add+0x14/0x20 > >hdmi_probe+0x438/0x710 > >platform_probe+0x68/0xe0 > >really_probe.part.0+0x9c/0x31c > >__driver_probe_device+0x98/0x144 > >driver_probe_device+0xc8/0x160 > >__device_attach_driver+0xb8/0x120 > >bus_for_each_drv+0x78/0xd0 > >__device_attach+0xd8/0x180 > >device_initial_probe+0x14/0x20 > >bus_probe_device+0x9c/0xa4 > >deferred_probe_work_func+0x88/0xc4 > >process_one_work+0x288/0x6f0 > >worker_thread+0x74/0x470 > >kthread+0x188/0x194 > >ret_from_fork+0x10/0x20 > > Code: 11002042 f9481c61 531e7442 8b020021 (88dffc21) > > ---[ end trace d73aff585b108954 ]--- > > Kernel panic - not syncing: synchronous external abort: Fatal > > exception > > SMP: stopping secondary CPUs > > Kernel Offset: disabled > > CPU features: 0x2,300071c2,0846 > > Memory Limit: none > > ---[ end Kernel panic - not syncing: synchronous external abort: > > Fatal > > exception ]--- > Is this with Bridge or normal DSI panel? > >>> Can you apply this patch and check? > >>> https://protect2.fireeye.com/v1/url?k=aad62f08-f54d1627-aad7a447-0cc47a31cdf8-ea5858ddb7f0ecfe=1=2d730862-2c56-4988-a252-8febd02da578=https%3A%2F%2Fgithub.com%2Fopenedev%2Flinux%2Fcommit%2F412f226acd774356e8188c9e62b653672926ee0d > >>> > >> Any news on this? just asking in case if you missed it. > > > > It is somehow better. System doesn't crash, but the DRM is not bound: > > > > # cat /sys/kernel/debug/device_component/exynos-drm > > master namestatus > >
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
Hi Marek, On Wed, Nov 24, 2021 at 8:23 PM Marek Szyprowski wrote: > > Hi Jagan, > > On 24.11.2021 06:32, Jagan Teki wrote: > > On Mon, Nov 22, 2021 at 9:34 PM Marek Szyprowski > > wrote: > >> On 22.11.2021 16:07, Marek Szyprowski wrote: > >>> On 22.11.2021 15:55, Jagan Teki wrote: > On Mon, Nov 22, 2021 at 7:59 PM Jagan Teki > wrote: > > On Mon, Nov 22, 2021 at 7:51 PM Jagan Teki > > wrote: > >> On Mon, Nov 22, 2021 at 7:45 PM Marek Szyprowski > >> wrote: > >>> On 22.11.2021 08:06, Jagan Teki wrote: > Some display panels would come up with a non-DSI output, those > can have an option to connect the DSI host by means of interface > bridge converter. > > This DSI to non-DSI interface bridge converter would requires > DSI Host to handle drm bridge functionalities in order to DSI > Host to Interface bridge. > > This patch convert the existing to a drm bridge driver with a > built-in encoder support for compatibility with existing > component drivers. > > Signed-off-by: Jagan Teki > --- > Note: > Hi Marek Szyprowski, > > Please test this on Panel and Bridge hardware. > >>> I don't have good news, t crashes: > >>> > >>> [drm] Exynos DRM: using 1380.decon device for DMA mapping > >>> operations > >>> exynos-drm exynos-drm: bound 1380.decon (ops decon_component_ops) > >>> exynos-drm exynos-drm: bound 1388.decon (ops decon_component_ops) > >>> exynos-drm exynos-drm: bound 1393.mic (ops > >>> exynos_mic_component_ops) > >>> [drm:drm_bridge_attach] *ERROR* failed to attach bridge > >>> /soc@0/dsi@1390 to encoder TMDS-67: -22 > >>> exynos-drm exynos-drm: failed to bind 1390.dsi (ops > >>> exynos_dsi_component_ops): -22 > >>> Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP > >>> Modules linked in: > >>> CPU: 2 PID: 74 Comm: kworker/u16:1 Not tainted 5.16.0-rc1+ #4141 > >>> Hardware name: Samsung TM2E board (DT) > >>> Workqueue: events_unbound deferred_probe_work_func > >>> pstate: 8005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > >>> pc : decon_atomic_disable+0x58/0xd4 > >>> lr : decon_atomic_disable+0x28/0xd4 > >>> sp : 80001390b940 > >>> x29: 80001390b940 x28: 80001259a000 x27: 27f39e80 > >>> input: stmfts as > >>> /devices/platform/soc@0/14ed.hsi2c/i2c-3/3-0049/input/input0 > >>> x26: ffea x25: 25a40280 x24: 0001 > >>> x23: 800011b55f98 x22: 315dc000 x21: 2695d100 > >>> x20: 27e7a080 x19: 315e6000 x18: > >>> x17: 645f736f6e797865 x16: 2073706f28206973 x15: 00028ee0 > >>> x14: 0028 x13: 0001 x12: 0040 > >>> x11: 23c18920 x10: 23c18922 x9 : 8000126352f0 > >>> x8 : 23c00270 x7 : x6 : 23c00268 > >>> x5 : 27e7a3a0 x4 : 0001 x3 : 27e7a080 > >>> x2 : 0024 x1 : 800013bc8024 x0 : 246117c0 > >>> Call trace: > >>> decon_atomic_disable+0x58/0xd4 > >>> decon_unbind+0x1c/0x3c > >>> component_unbind+0x38/0x60 > >>> component_bind_all+0x16c/0x25c > >>> exynos_drm_bind+0x104/0x1bc > >>> try_to_bring_up_master+0x164/0x1d0 > >>> __component_add+0xa8/0x174 > >>> component_add+0x14/0x20 > >>> hdmi_probe+0x438/0x710 > >>> platform_probe+0x68/0xe0 > >>> really_probe.part.0+0x9c/0x31c > >>> __driver_probe_device+0x98/0x144 > >>> driver_probe_device+0xc8/0x160 > >>> __device_attach_driver+0xb8/0x120 > >>> bus_for_each_drv+0x78/0xd0 > >>> __device_attach+0xd8/0x180 > >>> device_initial_probe+0x14/0x20 > >>> bus_probe_device+0x9c/0xa4 > >>> deferred_probe_work_func+0x88/0xc4 > >>> process_one_work+0x288/0x6f0 > >>> worker_thread+0x74/0x470 > >>> kthread+0x188/0x194 > >>> ret_from_fork+0x10/0x20 > >>> Code: 11002042 f9481c61 531e7442 8b020021 (88dffc21) > >>> ---[ end trace d73aff585b108954 ]--- > >>> Kernel panic - not syncing: synchronous external abort: Fatal > >>> exception > >>> SMP: stopping secondary CPUs > >>> Kernel Offset: disabled > >>> CPU features: 0x2,300071c2,0846 > >>> Memory Limit: none > >>> ---[ end Kernel panic - not syncing: synchronous external abort: > >>> Fatal > >>> exception ]--- > >> Is this with Bridge or normal DSI panel? > > Can you apply this patch and check? > >
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
Hi Jagan, On 24.11.2021 06:32, Jagan Teki wrote: > On Mon, Nov 22, 2021 at 9:34 PM Marek Szyprowski > wrote: >> On 22.11.2021 16:07, Marek Szyprowski wrote: >>> On 22.11.2021 15:55, Jagan Teki wrote: On Mon, Nov 22, 2021 at 7:59 PM Jagan Teki wrote: > On Mon, Nov 22, 2021 at 7:51 PM Jagan Teki > wrote: >> On Mon, Nov 22, 2021 at 7:45 PM Marek Szyprowski >> wrote: >>> On 22.11.2021 08:06, Jagan Teki wrote: Some display panels would come up with a non-DSI output, those can have an option to connect the DSI host by means of interface bridge converter. This DSI to non-DSI interface bridge converter would requires DSI Host to handle drm bridge functionalities in order to DSI Host to Interface bridge. This patch convert the existing to a drm bridge driver with a built-in encoder support for compatibility with existing component drivers. Signed-off-by: Jagan Teki --- Note: Hi Marek Szyprowski, Please test this on Panel and Bridge hardware. >>> I don't have good news, t crashes: >>> >>> [drm] Exynos DRM: using 1380.decon device for DMA mapping >>> operations >>> exynos-drm exynos-drm: bound 1380.decon (ops decon_component_ops) >>> exynos-drm exynos-drm: bound 1388.decon (ops decon_component_ops) >>> exynos-drm exynos-drm: bound 1393.mic (ops >>> exynos_mic_component_ops) >>> [drm:drm_bridge_attach] *ERROR* failed to attach bridge >>> /soc@0/dsi@1390 to encoder TMDS-67: -22 >>> exynos-drm exynos-drm: failed to bind 1390.dsi (ops >>> exynos_dsi_component_ops): -22 >>> Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP >>> Modules linked in: >>> CPU: 2 PID: 74 Comm: kworker/u16:1 Not tainted 5.16.0-rc1+ #4141 >>> Hardware name: Samsung TM2E board (DT) >>> Workqueue: events_unbound deferred_probe_work_func >>> pstate: 8005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) >>> pc : decon_atomic_disable+0x58/0xd4 >>> lr : decon_atomic_disable+0x28/0xd4 >>> sp : 80001390b940 >>> x29: 80001390b940 x28: 80001259a000 x27: 27f39e80 >>> input: stmfts as >>> /devices/platform/soc@0/14ed.hsi2c/i2c-3/3-0049/input/input0 >>> x26: ffea x25: 25a40280 x24: 0001 >>> x23: 800011b55f98 x22: 315dc000 x21: 2695d100 >>> x20: 27e7a080 x19: 315e6000 x18: >>> x17: 645f736f6e797865 x16: 2073706f28206973 x15: 00028ee0 >>> x14: 0028 x13: 0001 x12: 0040 >>> x11: 23c18920 x10: 23c18922 x9 : 8000126352f0 >>> x8 : 23c00270 x7 : x6 : 23c00268 >>> x5 : 27e7a3a0 x4 : 0001 x3 : 27e7a080 >>> x2 : 0024 x1 : 800013bc8024 x0 : 246117c0 >>> Call trace: >>> decon_atomic_disable+0x58/0xd4 >>> decon_unbind+0x1c/0x3c >>> component_unbind+0x38/0x60 >>> component_bind_all+0x16c/0x25c >>> exynos_drm_bind+0x104/0x1bc >>> try_to_bring_up_master+0x164/0x1d0 >>> __component_add+0xa8/0x174 >>> component_add+0x14/0x20 >>> hdmi_probe+0x438/0x710 >>> platform_probe+0x68/0xe0 >>> really_probe.part.0+0x9c/0x31c >>> __driver_probe_device+0x98/0x144 >>> driver_probe_device+0xc8/0x160 >>> __device_attach_driver+0xb8/0x120 >>> bus_for_each_drv+0x78/0xd0 >>> __device_attach+0xd8/0x180 >>> device_initial_probe+0x14/0x20 >>> bus_probe_device+0x9c/0xa4 >>> deferred_probe_work_func+0x88/0xc4 >>> process_one_work+0x288/0x6f0 >>> worker_thread+0x74/0x470 >>> kthread+0x188/0x194 >>> ret_from_fork+0x10/0x20 >>> Code: 11002042 f9481c61 531e7442 8b020021 (88dffc21) >>> ---[ end trace d73aff585b108954 ]--- >>> Kernel panic - not syncing: synchronous external abort: Fatal >>> exception >>> SMP: stopping secondary CPUs >>> Kernel Offset: disabled >>> CPU features: 0x2,300071c2,0846 >>> Memory Limit: none >>> ---[ end Kernel panic - not syncing: synchronous external abort: >>> Fatal >>> exception ]--- >> Is this with Bridge or normal DSI panel? > Can you apply this patch and check? > https://protect2.fireeye.com/v1/url?k=aad62f08-f54d1627-aad7a447-0cc47a31cdf8-ea5858ddb7f0ecfe=1=2d730862-2c56-4988-a252-8febd02da578=https%3A%2F%2Fgithub.com%2Fopenedev%2Flinux%2Fcommit%2F412f226acd774356e8188c9e62b653672926ee0d > Any news on this? just asking in case if you missed it. >>> It is somehow better. System doesn't crash, but the DRM is not bound: >>> >>> # cat /sys/kernel/debug/device_component/exynos-drm >>> master name
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
Hi Marek, On Mon, Nov 22, 2021 at 9:34 PM Marek Szyprowski wrote: > > On 22.11.2021 16:07, Marek Szyprowski wrote: > > On 22.11.2021 15:55, Jagan Teki wrote: > >> On Mon, Nov 22, 2021 at 7:59 PM Jagan Teki > >> wrote: > >>> On Mon, Nov 22, 2021 at 7:51 PM Jagan Teki > >>> wrote: > On Mon, Nov 22, 2021 at 7:45 PM Marek Szyprowski > wrote: > > On 22.11.2021 08:06, Jagan Teki wrote: > >> Some display panels would come up with a non-DSI output, those > >> can have an option to connect the DSI host by means of interface > >> bridge converter. > >> > >> This DSI to non-DSI interface bridge converter would requires > >> DSI Host to handle drm bridge functionalities in order to DSI > >> Host to Interface bridge. > >> > >> This patch convert the existing to a drm bridge driver with a > >> built-in encoder support for compatibility with existing > >> component drivers. > >> > >> Signed-off-by: Jagan Teki > >> --- > >> Note: > >> Hi Marek Szyprowski, > >> > >> Please test this on Panel and Bridge hardware. > > I don't have good news, t crashes: > > > > [drm] Exynos DRM: using 1380.decon device for DMA mapping > > operations > > exynos-drm exynos-drm: bound 1380.decon (ops decon_component_ops) > > exynos-drm exynos-drm: bound 1388.decon (ops decon_component_ops) > > exynos-drm exynos-drm: bound 1393.mic (ops > > exynos_mic_component_ops) > > [drm:drm_bridge_attach] *ERROR* failed to attach bridge > > /soc@0/dsi@1390 to encoder TMDS-67: -22 > > exynos-drm exynos-drm: failed to bind 1390.dsi (ops > > exynos_dsi_component_ops): -22 > > Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP > > Modules linked in: > > CPU: 2 PID: 74 Comm: kworker/u16:1 Not tainted 5.16.0-rc1+ #4141 > > Hardware name: Samsung TM2E board (DT) > > Workqueue: events_unbound deferred_probe_work_func > > pstate: 8005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > > pc : decon_atomic_disable+0x58/0xd4 > > lr : decon_atomic_disable+0x28/0xd4 > > sp : 80001390b940 > > x29: 80001390b940 x28: 80001259a000 x27: 27f39e80 > > input: stmfts as > > /devices/platform/soc@0/14ed.hsi2c/i2c-3/3-0049/input/input0 > > x26: ffea x25: 25a40280 x24: 0001 > > x23: 800011b55f98 x22: 315dc000 x21: 2695d100 > > x20: 27e7a080 x19: 315e6000 x18: > > x17: 645f736f6e797865 x16: 2073706f28206973 x15: 00028ee0 > > x14: 0028 x13: 0001 x12: 0040 > > x11: 23c18920 x10: 23c18922 x9 : 8000126352f0 > > x8 : 23c00270 x7 : x6 : 23c00268 > > x5 : 27e7a3a0 x4 : 0001 x3 : 27e7a080 > > x2 : 0024 x1 : 800013bc8024 x0 : 246117c0 > > Call trace: > >decon_atomic_disable+0x58/0xd4 > >decon_unbind+0x1c/0x3c > >component_unbind+0x38/0x60 > >component_bind_all+0x16c/0x25c > >exynos_drm_bind+0x104/0x1bc > >try_to_bring_up_master+0x164/0x1d0 > >__component_add+0xa8/0x174 > >component_add+0x14/0x20 > >hdmi_probe+0x438/0x710 > >platform_probe+0x68/0xe0 > >really_probe.part.0+0x9c/0x31c > >__driver_probe_device+0x98/0x144 > >driver_probe_device+0xc8/0x160 > >__device_attach_driver+0xb8/0x120 > >bus_for_each_drv+0x78/0xd0 > >__device_attach+0xd8/0x180 > >device_initial_probe+0x14/0x20 > >bus_probe_device+0x9c/0xa4 > >deferred_probe_work_func+0x88/0xc4 > >process_one_work+0x288/0x6f0 > >worker_thread+0x74/0x470 > >kthread+0x188/0x194 > >ret_from_fork+0x10/0x20 > > Code: 11002042 f9481c61 531e7442 8b020021 (88dffc21) > > ---[ end trace d73aff585b108954 ]--- > > Kernel panic - not syncing: synchronous external abort: Fatal > > exception > > SMP: stopping secondary CPUs > > Kernel Offset: disabled > > CPU features: 0x2,300071c2,0846 > > Memory Limit: none > > ---[ end Kernel panic - not syncing: synchronous external abort: > > Fatal > > exception ]--- > Is this with Bridge or normal DSI panel? > >>> Can you apply this patch and check? > >>> https://protect2.fireeye.com/v1/url?k=aad62f08-f54d1627-aad7a447-0cc47a31cdf8-ea5858ddb7f0ecfe=1=2d730862-2c56-4988-a252-8febd02da578=https%3A%2F%2Fgithub.com%2Fopenedev%2Flinux%2Fcommit%2F412f226acd774356e8188c9e62b653672926ee0d > >>> > >> Any news on this? just asking in case if you missed it. > > > > It is somehow better. System doesn't crash, but the DRM is not bound: > > > > # cat /sys/kernel/debug/device_component/exynos-drm > > master namestatus > >
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
On 22.11.2021 16:07, Marek Szyprowski wrote: > On 22.11.2021 15:55, Jagan Teki wrote: >> On Mon, Nov 22, 2021 at 7:59 PM Jagan Teki >> wrote: >>> On Mon, Nov 22, 2021 at 7:51 PM Jagan Teki >>> wrote: On Mon, Nov 22, 2021 at 7:45 PM Marek Szyprowski wrote: > On 22.11.2021 08:06, Jagan Teki wrote: >> Some display panels would come up with a non-DSI output, those >> can have an option to connect the DSI host by means of interface >> bridge converter. >> >> This DSI to non-DSI interface bridge converter would requires >> DSI Host to handle drm bridge functionalities in order to DSI >> Host to Interface bridge. >> >> This patch convert the existing to a drm bridge driver with a >> built-in encoder support for compatibility with existing >> component drivers. >> >> Signed-off-by: Jagan Teki >> --- >> Note: >> Hi Marek Szyprowski, >> >> Please test this on Panel and Bridge hardware. > I don't have good news, t crashes: > > [drm] Exynos DRM: using 1380.decon device for DMA mapping > operations > exynos-drm exynos-drm: bound 1380.decon (ops decon_component_ops) > exynos-drm exynos-drm: bound 1388.decon (ops decon_component_ops) > exynos-drm exynos-drm: bound 1393.mic (ops > exynos_mic_component_ops) > [drm:drm_bridge_attach] *ERROR* failed to attach bridge > /soc@0/dsi@1390 to encoder TMDS-67: -22 > exynos-drm exynos-drm: failed to bind 1390.dsi (ops > exynos_dsi_component_ops): -22 > Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP > Modules linked in: > CPU: 2 PID: 74 Comm: kworker/u16:1 Not tainted 5.16.0-rc1+ #4141 > Hardware name: Samsung TM2E board (DT) > Workqueue: events_unbound deferred_probe_work_func > pstate: 8005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > pc : decon_atomic_disable+0x58/0xd4 > lr : decon_atomic_disable+0x28/0xd4 > sp : 80001390b940 > x29: 80001390b940 x28: 80001259a000 x27: 27f39e80 > input: stmfts as > /devices/platform/soc@0/14ed.hsi2c/i2c-3/3-0049/input/input0 > x26: ffea x25: 25a40280 x24: 0001 > x23: 800011b55f98 x22: 315dc000 x21: 2695d100 > x20: 27e7a080 x19: 315e6000 x18: > x17: 645f736f6e797865 x16: 2073706f28206973 x15: 00028ee0 > x14: 0028 x13: 0001 x12: 0040 > x11: 23c18920 x10: 23c18922 x9 : 8000126352f0 > x8 : 23c00270 x7 : x6 : 23c00268 > x5 : 27e7a3a0 x4 : 0001 x3 : 27e7a080 > x2 : 0024 x1 : 800013bc8024 x0 : 246117c0 > Call trace: > decon_atomic_disable+0x58/0xd4 > decon_unbind+0x1c/0x3c > component_unbind+0x38/0x60 > component_bind_all+0x16c/0x25c > exynos_drm_bind+0x104/0x1bc > try_to_bring_up_master+0x164/0x1d0 > __component_add+0xa8/0x174 > component_add+0x14/0x20 > hdmi_probe+0x438/0x710 > platform_probe+0x68/0xe0 > really_probe.part.0+0x9c/0x31c > __driver_probe_device+0x98/0x144 > driver_probe_device+0xc8/0x160 > __device_attach_driver+0xb8/0x120 > bus_for_each_drv+0x78/0xd0 > __device_attach+0xd8/0x180 > device_initial_probe+0x14/0x20 > bus_probe_device+0x9c/0xa4 > deferred_probe_work_func+0x88/0xc4 > process_one_work+0x288/0x6f0 > worker_thread+0x74/0x470 > kthread+0x188/0x194 > ret_from_fork+0x10/0x20 > Code: 11002042 f9481c61 531e7442 8b020021 (88dffc21) > ---[ end trace d73aff585b108954 ]--- > Kernel panic - not syncing: synchronous external abort: Fatal > exception > SMP: stopping secondary CPUs > Kernel Offset: disabled > CPU features: 0x2,300071c2,0846 > Memory Limit: none > ---[ end Kernel panic - not syncing: synchronous external abort: > Fatal > exception ]--- Is this with Bridge or normal DSI panel? >>> Can you apply this patch and check? >>> https://protect2.fireeye.com/v1/url?k=aad62f08-f54d1627-aad7a447-0cc47a31cdf8-ea5858ddb7f0ecfe=1=2d730862-2c56-4988-a252-8febd02da578=https%3A%2F%2Fgithub.com%2Fopenedev%2Flinux%2Fcommit%2F412f226acd774356e8188c9e62b653672926ee0d >>> >>> >> Any news on this? just asking in case if you missed it. > > It is somehow better. System doesn't crash, but the DRM is not bound: > > # cat /sys/kernel/debug/device_component/exynos-drm > master name status > - > exynos-drm not bound > > device name status > - > 1380.decon
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
On 22.11.2021 15:55, Jagan Teki wrote: > On Mon, Nov 22, 2021 at 7:59 PM Jagan Teki wrote: >> On Mon, Nov 22, 2021 at 7:51 PM Jagan Teki >> wrote: >>> On Mon, Nov 22, 2021 at 7:45 PM Marek Szyprowski >>> wrote: On 22.11.2021 08:06, Jagan Teki wrote: > Some display panels would come up with a non-DSI output, those > can have an option to connect the DSI host by means of interface > bridge converter. > > This DSI to non-DSI interface bridge converter would requires > DSI Host to handle drm bridge functionalities in order to DSI > Host to Interface bridge. > > This patch convert the existing to a drm bridge driver with a > built-in encoder support for compatibility with existing > component drivers. > > Signed-off-by: Jagan Teki > --- > Note: > Hi Marek Szyprowski, > > Please test this on Panel and Bridge hardware. I don't have good news, t crashes: [drm] Exynos DRM: using 1380.decon device for DMA mapping operations exynos-drm exynos-drm: bound 1380.decon (ops decon_component_ops) exynos-drm exynos-drm: bound 1388.decon (ops decon_component_ops) exynos-drm exynos-drm: bound 1393.mic (ops exynos_mic_component_ops) [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc@0/dsi@1390 to encoder TMDS-67: -22 exynos-drm exynos-drm: failed to bind 1390.dsi (ops exynos_dsi_component_ops): -22 Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP Modules linked in: CPU: 2 PID: 74 Comm: kworker/u16:1 Not tainted 5.16.0-rc1+ #4141 Hardware name: Samsung TM2E board (DT) Workqueue: events_unbound deferred_probe_work_func pstate: 8005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : decon_atomic_disable+0x58/0xd4 lr : decon_atomic_disable+0x28/0xd4 sp : 80001390b940 x29: 80001390b940 x28: 80001259a000 x27: 27f39e80 input: stmfts as /devices/platform/soc@0/14ed.hsi2c/i2c-3/3-0049/input/input0 x26: ffea x25: 25a40280 x24: 0001 x23: 800011b55f98 x22: 315dc000 x21: 2695d100 x20: 27e7a080 x19: 315e6000 x18: x17: 645f736f6e797865 x16: 2073706f28206973 x15: 00028ee0 x14: 0028 x13: 0001 x12: 0040 x11: 23c18920 x10: 23c18922 x9 : 8000126352f0 x8 : 23c00270 x7 : x6 : 23c00268 x5 : 27e7a3a0 x4 : 0001 x3 : 27e7a080 x2 : 0024 x1 : 800013bc8024 x0 : 246117c0 Call trace: decon_atomic_disable+0x58/0xd4 decon_unbind+0x1c/0x3c component_unbind+0x38/0x60 component_bind_all+0x16c/0x25c exynos_drm_bind+0x104/0x1bc try_to_bring_up_master+0x164/0x1d0 __component_add+0xa8/0x174 component_add+0x14/0x20 hdmi_probe+0x438/0x710 platform_probe+0x68/0xe0 really_probe.part.0+0x9c/0x31c __driver_probe_device+0x98/0x144 driver_probe_device+0xc8/0x160 __device_attach_driver+0xb8/0x120 bus_for_each_drv+0x78/0xd0 __device_attach+0xd8/0x180 device_initial_probe+0x14/0x20 bus_probe_device+0x9c/0xa4 deferred_probe_work_func+0x88/0xc4 process_one_work+0x288/0x6f0 worker_thread+0x74/0x470 kthread+0x188/0x194 ret_from_fork+0x10/0x20 Code: 11002042 f9481c61 531e7442 8b020021 (88dffc21) ---[ end trace d73aff585b108954 ]--- Kernel panic - not syncing: synchronous external abort: Fatal exception SMP: stopping secondary CPUs Kernel Offset: disabled CPU features: 0x2,300071c2,0846 Memory Limit: none ---[ end Kernel panic - not syncing: synchronous external abort: Fatal exception ]--- >>> Is this with Bridge or normal DSI panel? >> Can you apply this patch and check? >> https://protect2.fireeye.com/v1/url?k=aad62f08-f54d1627-aad7a447-0cc47a31cdf8-ea5858ddb7f0ecfe=1=2d730862-2c56-4988-a252-8febd02da578=https%3A%2F%2Fgithub.com%2Fopenedev%2Flinux%2Fcommit%2F412f226acd774356e8188c9e62b653672926ee0d > Any news on this? just asking in case if you missed it. It is somehow better. System doesn't crash, but the DRM is not bound: # cat /sys/kernel/debug/device_component/exynos-drm master name status - exynos-drm not bound device name status - 1380.decon not bound 1388.decon not bound 1393.mic not bound (unknown)
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
Hi Marek, On Mon, Nov 22, 2021 at 7:59 PM Jagan Teki wrote: > > Hi Marek, > > On Mon, Nov 22, 2021 at 7:51 PM Jagan Teki wrote: > > > > Hi Marek, > > > > On Mon, Nov 22, 2021 at 7:45 PM Marek Szyprowski > > wrote: > > > > > > On 22.11.2021 08:06, Jagan Teki wrote: > > > > Some display panels would come up with a non-DSI output, those > > > > can have an option to connect the DSI host by means of interface > > > > bridge converter. > > > > > > > > This DSI to non-DSI interface bridge converter would requires > > > > DSI Host to handle drm bridge functionalities in order to DSI > > > > Host to Interface bridge. > > > > > > > > This patch convert the existing to a drm bridge driver with a > > > > built-in encoder support for compatibility with existing > > > > component drivers. > > > > > > > > Signed-off-by: Jagan Teki > > > > --- > > > > Note: > > > > Hi Marek Szyprowski, > > > > > > > > Please test this on Panel and Bridge hardware. > > > > > > I don't have good news, t crashes: > > > > > > [drm] Exynos DRM: using 1380.decon device for DMA mapping operations > > > exynos-drm exynos-drm: bound 1380.decon (ops decon_component_ops) > > > exynos-drm exynos-drm: bound 1388.decon (ops decon_component_ops) > > > exynos-drm exynos-drm: bound 1393.mic (ops exynos_mic_component_ops) > > > [drm:drm_bridge_attach] *ERROR* failed to attach bridge > > > /soc@0/dsi@1390 to encoder TMDS-67: -22 > > > exynos-drm exynos-drm: failed to bind 1390.dsi (ops > > > exynos_dsi_component_ops): -22 > > > Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP > > > Modules linked in: > > > CPU: 2 PID: 74 Comm: kworker/u16:1 Not tainted 5.16.0-rc1+ #4141 > > > Hardware name: Samsung TM2E board (DT) > > > Workqueue: events_unbound deferred_probe_work_func > > > pstate: 8005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > > > pc : decon_atomic_disable+0x58/0xd4 > > > lr : decon_atomic_disable+0x28/0xd4 > > > sp : 80001390b940 > > > x29: 80001390b940 x28: 80001259a000 x27: 27f39e80 > > > input: stmfts as > > > /devices/platform/soc@0/14ed.hsi2c/i2c-3/3-0049/input/input0 > > > x26: ffea x25: 25a40280 x24: 0001 > > > x23: 800011b55f98 x22: 315dc000 x21: 2695d100 > > > x20: 27e7a080 x19: 315e6000 x18: > > > x17: 645f736f6e797865 x16: 2073706f28206973 x15: 00028ee0 > > > x14: 0028 x13: 0001 x12: 0040 > > > x11: 23c18920 x10: 23c18922 x9 : 8000126352f0 > > > x8 : 23c00270 x7 : x6 : 23c00268 > > > x5 : 27e7a3a0 x4 : 0001 x3 : 27e7a080 > > > x2 : 0024 x1 : 800013bc8024 x0 : 246117c0 > > > Call trace: > > > decon_atomic_disable+0x58/0xd4 > > > decon_unbind+0x1c/0x3c > > > component_unbind+0x38/0x60 > > > component_bind_all+0x16c/0x25c > > > exynos_drm_bind+0x104/0x1bc > > > try_to_bring_up_master+0x164/0x1d0 > > > __component_add+0xa8/0x174 > > > component_add+0x14/0x20 > > > hdmi_probe+0x438/0x710 > > > platform_probe+0x68/0xe0 > > > really_probe.part.0+0x9c/0x31c > > > __driver_probe_device+0x98/0x144 > > > driver_probe_device+0xc8/0x160 > > > __device_attach_driver+0xb8/0x120 > > > bus_for_each_drv+0x78/0xd0 > > > __device_attach+0xd8/0x180 > > > device_initial_probe+0x14/0x20 > > > bus_probe_device+0x9c/0xa4 > > > deferred_probe_work_func+0x88/0xc4 > > > process_one_work+0x288/0x6f0 > > > worker_thread+0x74/0x470 > > > kthread+0x188/0x194 > > > ret_from_fork+0x10/0x20 > > > Code: 11002042 f9481c61 531e7442 8b020021 (88dffc21) > > > ---[ end trace d73aff585b108954 ]--- > > > Kernel panic - not syncing: synchronous external abort: Fatal exception > > > SMP: stopping secondary CPUs > > > Kernel Offset: disabled > > > CPU features: 0x2,300071c2,0846 > > > Memory Limit: none > > > ---[ end Kernel panic - not syncing: synchronous external abort: Fatal > > > exception ]--- > > > > Is this with Bridge or normal DSI panel? > > Can you apply this patch and check? > https://github.com/openedev/linux/commit/412f226acd774356e8188c9e62b653672926ee0d Any news on this? just asking in case if you missed it. Jagan.
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
On 22.11.2021 15:40, Fabio Estevam wrote: > Hi Jagan, > > On Mon, Nov 22, 2021 at 11:21 AM Jagan Teki > wrote: > >> Is this with Bridge or normal DSI panel? > According to the log shared by Marek, the dts being used is: > arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts > which includes arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi. > > In this dtsi there is a "sil,sii8620" bridge. Sii8620 bridge is attached to the HDMI display path. That's completely different from the DSI display path modified by this patchset. Best regards -- Marek Szyprowski, PhD Samsung R Institute Poland
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
Hi Jagan, On 22.11.2021 15:21, Jagan Teki wrote: > On Mon, Nov 22, 2021 at 7:45 PM Marek Szyprowski > wrote: >> On 22.11.2021 08:06, Jagan Teki wrote: >>> Some display panels would come up with a non-DSI output, those >>> can have an option to connect the DSI host by means of interface >>> bridge converter. >>> >>> This DSI to non-DSI interface bridge converter would requires >>> DSI Host to handle drm bridge functionalities in order to DSI >>> Host to Interface bridge. >>> >>> This patch convert the existing to a drm bridge driver with a >>> built-in encoder support for compatibility with existing >>> component drivers. >>> >>> Signed-off-by: Jagan Teki >>> --- >>> Note: >>> Hi Marek Szyprowski, >>> >>> Please test this on Panel and Bridge hardware. >> I don't have good news, t crashes: >> >> [drm] Exynos DRM: using 1380.decon device for DMA mapping operations >> exynos-drm exynos-drm: bound 1380.decon (ops decon_component_ops) >> exynos-drm exynos-drm: bound 1388.decon (ops decon_component_ops) >> exynos-drm exynos-drm: bound 1393.mic (ops exynos_mic_component_ops) >> [drm:drm_bridge_attach] *ERROR* failed to attach bridge >> /soc@0/dsi@1390 to encoder TMDS-67: -22 >> exynos-drm exynos-drm: failed to bind 1390.dsi (ops >> exynos_dsi_component_ops): -22 >> Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP >> Modules linked in: >> CPU: 2 PID: 74 Comm: kworker/u16:1 Not tainted 5.16.0-rc1+ #4141 >> Hardware name: Samsung TM2E board (DT) >> Workqueue: events_unbound deferred_probe_work_func >> pstate: 8005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) >> pc : decon_atomic_disable+0x58/0xd4 >> lr : decon_atomic_disable+0x28/0xd4 >> sp : 80001390b940 >> x29: 80001390b940 x28: 80001259a000 x27: 27f39e80 >> input: stmfts as >> /devices/platform/soc@0/14ed.hsi2c/i2c-3/3-0049/input/input0 >> x26: ffea x25: 25a40280 x24: 0001 >> x23: 800011b55f98 x22: 315dc000 x21: 2695d100 >> x20: 27e7a080 x19: 315e6000 x18: >> x17: 645f736f6e797865 x16: 2073706f28206973 x15: 00028ee0 >> x14: 0028 x13: 0001 x12: 0040 >> x11: 23c18920 x10: 23c18922 x9 : 8000126352f0 >> x8 : 23c00270 x7 : x6 : 23c00268 >> x5 : 27e7a3a0 x4 : 0001 x3 : 27e7a080 >> x2 : 0024 x1 : 800013bc8024 x0 : 246117c0 >> Call trace: >>decon_atomic_disable+0x58/0xd4 >>decon_unbind+0x1c/0x3c >>component_unbind+0x38/0x60 >>component_bind_all+0x16c/0x25c >>exynos_drm_bind+0x104/0x1bc >>try_to_bring_up_master+0x164/0x1d0 >>__component_add+0xa8/0x174 >>component_add+0x14/0x20 >>hdmi_probe+0x438/0x710 >>platform_probe+0x68/0xe0 >>really_probe.part.0+0x9c/0x31c >>__driver_probe_device+0x98/0x144 >>driver_probe_device+0xc8/0x160 >>__device_attach_driver+0xb8/0x120 >>bus_for_each_drv+0x78/0xd0 >>__device_attach+0xd8/0x180 >>device_initial_probe+0x14/0x20 >>bus_probe_device+0x9c/0xa4 >>deferred_probe_work_func+0x88/0xc4 >>process_one_work+0x288/0x6f0 >>worker_thread+0x74/0x470 >>kthread+0x188/0x194 >>ret_from_fork+0x10/0x20 >> Code: 11002042 f9481c61 531e7442 8b020021 (88dffc21) >> ---[ end trace d73aff585b108954 ]--- >> Kernel panic - not syncing: synchronous external abort: Fatal exception >> SMP: stopping secondary CPUs >> Kernel Offset: disabled >> CPU features: 0x2,300071c2,0846 >> Memory Limit: none >> ---[ end Kernel panic - not syncing: synchronous external abort: Fatal >> exception ]--- > Is this with Bridge or normal DSI panel? This log is from the TM2e board (arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts) with a normal DSI panel and Exynos MIC bridge between Exynos Decon and Exynos DSI. Best regards -- Marek Szyprowski, PhD Samsung R Institute Poland
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
Hi Jagan, On Mon, Nov 22, 2021 at 11:21 AM Jagan Teki wrote: > Is this with Bridge or normal DSI panel? According to the log shared by Marek, the dts being used is: arch/arm64/boot/dts/exynos/exynos5433-tm2e.dts which includes arch/arm64/boot/dts/exynos/exynos5433-tm2-common.dtsi. In this dtsi there is a "sil,sii8620" bridge.
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
Hi Marek, On Mon, Nov 22, 2021 at 7:51 PM Jagan Teki wrote: > > Hi Marek, > > On Mon, Nov 22, 2021 at 7:45 PM Marek Szyprowski > wrote: > > > > On 22.11.2021 08:06, Jagan Teki wrote: > > > Some display panels would come up with a non-DSI output, those > > > can have an option to connect the DSI host by means of interface > > > bridge converter. > > > > > > This DSI to non-DSI interface bridge converter would requires > > > DSI Host to handle drm bridge functionalities in order to DSI > > > Host to Interface bridge. > > > > > > This patch convert the existing to a drm bridge driver with a > > > built-in encoder support for compatibility with existing > > > component drivers. > > > > > > Signed-off-by: Jagan Teki > > > --- > > > Note: > > > Hi Marek Szyprowski, > > > > > > Please test this on Panel and Bridge hardware. > > > > I don't have good news, t crashes: > > > > [drm] Exynos DRM: using 1380.decon device for DMA mapping operations > > exynos-drm exynos-drm: bound 1380.decon (ops decon_component_ops) > > exynos-drm exynos-drm: bound 1388.decon (ops decon_component_ops) > > exynos-drm exynos-drm: bound 1393.mic (ops exynos_mic_component_ops) > > [drm:drm_bridge_attach] *ERROR* failed to attach bridge > > /soc@0/dsi@1390 to encoder TMDS-67: -22 > > exynos-drm exynos-drm: failed to bind 1390.dsi (ops > > exynos_dsi_component_ops): -22 > > Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP > > Modules linked in: > > CPU: 2 PID: 74 Comm: kworker/u16:1 Not tainted 5.16.0-rc1+ #4141 > > Hardware name: Samsung TM2E board (DT) > > Workqueue: events_unbound deferred_probe_work_func > > pstate: 8005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > > pc : decon_atomic_disable+0x58/0xd4 > > lr : decon_atomic_disable+0x28/0xd4 > > sp : 80001390b940 > > x29: 80001390b940 x28: 80001259a000 x27: 27f39e80 > > input: stmfts as > > /devices/platform/soc@0/14ed.hsi2c/i2c-3/3-0049/input/input0 > > x26: ffea x25: 25a40280 x24: 0001 > > x23: 800011b55f98 x22: 315dc000 x21: 2695d100 > > x20: 27e7a080 x19: 315e6000 x18: > > x17: 645f736f6e797865 x16: 2073706f28206973 x15: 00028ee0 > > x14: 0028 x13: 0001 x12: 0040 > > x11: 23c18920 x10: 23c18922 x9 : 8000126352f0 > > x8 : 23c00270 x7 : x6 : 23c00268 > > x5 : 27e7a3a0 x4 : 0001 x3 : 27e7a080 > > x2 : 0024 x1 : 800013bc8024 x0 : 246117c0 > > Call trace: > > decon_atomic_disable+0x58/0xd4 > > decon_unbind+0x1c/0x3c > > component_unbind+0x38/0x60 > > component_bind_all+0x16c/0x25c > > exynos_drm_bind+0x104/0x1bc > > try_to_bring_up_master+0x164/0x1d0 > > __component_add+0xa8/0x174 > > component_add+0x14/0x20 > > hdmi_probe+0x438/0x710 > > platform_probe+0x68/0xe0 > > really_probe.part.0+0x9c/0x31c > > __driver_probe_device+0x98/0x144 > > driver_probe_device+0xc8/0x160 > > __device_attach_driver+0xb8/0x120 > > bus_for_each_drv+0x78/0xd0 > > __device_attach+0xd8/0x180 > > device_initial_probe+0x14/0x20 > > bus_probe_device+0x9c/0xa4 > > deferred_probe_work_func+0x88/0xc4 > > process_one_work+0x288/0x6f0 > > worker_thread+0x74/0x470 > > kthread+0x188/0x194 > > ret_from_fork+0x10/0x20 > > Code: 11002042 f9481c61 531e7442 8b020021 (88dffc21) > > ---[ end trace d73aff585b108954 ]--- > > Kernel panic - not syncing: synchronous external abort: Fatal exception > > SMP: stopping secondary CPUs > > Kernel Offset: disabled > > CPU features: 0x2,300071c2,0846 > > Memory Limit: none > > ---[ end Kernel panic - not syncing: synchronous external abort: Fatal > > exception ]--- > > Is this with Bridge or normal DSI panel? Can you apply this patch and check? https://github.com/openedev/linux/commit/412f226acd774356e8188c9e62b653672926ee0d Jagan.
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
Hi Marek, On Mon, Nov 22, 2021 at 7:45 PM Marek Szyprowski wrote: > > On 22.11.2021 08:06, Jagan Teki wrote: > > Some display panels would come up with a non-DSI output, those > > can have an option to connect the DSI host by means of interface > > bridge converter. > > > > This DSI to non-DSI interface bridge converter would requires > > DSI Host to handle drm bridge functionalities in order to DSI > > Host to Interface bridge. > > > > This patch convert the existing to a drm bridge driver with a > > built-in encoder support for compatibility with existing > > component drivers. > > > > Signed-off-by: Jagan Teki > > --- > > Note: > > Hi Marek Szyprowski, > > > > Please test this on Panel and Bridge hardware. > > I don't have good news, t crashes: > > [drm] Exynos DRM: using 1380.decon device for DMA mapping operations > exynos-drm exynos-drm: bound 1380.decon (ops decon_component_ops) > exynos-drm exynos-drm: bound 1388.decon (ops decon_component_ops) > exynos-drm exynos-drm: bound 1393.mic (ops exynos_mic_component_ops) > [drm:drm_bridge_attach] *ERROR* failed to attach bridge > /soc@0/dsi@1390 to encoder TMDS-67: -22 > exynos-drm exynos-drm: failed to bind 1390.dsi (ops > exynos_dsi_component_ops): -22 > Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP > Modules linked in: > CPU: 2 PID: 74 Comm: kworker/u16:1 Not tainted 5.16.0-rc1+ #4141 > Hardware name: Samsung TM2E board (DT) > Workqueue: events_unbound deferred_probe_work_func > pstate: 8005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) > pc : decon_atomic_disable+0x58/0xd4 > lr : decon_atomic_disable+0x28/0xd4 > sp : 80001390b940 > x29: 80001390b940 x28: 80001259a000 x27: 27f39e80 > input: stmfts as > /devices/platform/soc@0/14ed.hsi2c/i2c-3/3-0049/input/input0 > x26: ffea x25: 25a40280 x24: 0001 > x23: 800011b55f98 x22: 315dc000 x21: 2695d100 > x20: 27e7a080 x19: 315e6000 x18: > x17: 645f736f6e797865 x16: 2073706f28206973 x15: 00028ee0 > x14: 0028 x13: 0001 x12: 0040 > x11: 23c18920 x10: 23c18922 x9 : 8000126352f0 > x8 : 23c00270 x7 : x6 : 23c00268 > x5 : 27e7a3a0 x4 : 0001 x3 : 27e7a080 > x2 : 0024 x1 : 800013bc8024 x0 : 246117c0 > Call trace: > decon_atomic_disable+0x58/0xd4 > decon_unbind+0x1c/0x3c > component_unbind+0x38/0x60 > component_bind_all+0x16c/0x25c > exynos_drm_bind+0x104/0x1bc > try_to_bring_up_master+0x164/0x1d0 > __component_add+0xa8/0x174 > component_add+0x14/0x20 > hdmi_probe+0x438/0x710 > platform_probe+0x68/0xe0 > really_probe.part.0+0x9c/0x31c > __driver_probe_device+0x98/0x144 > driver_probe_device+0xc8/0x160 > __device_attach_driver+0xb8/0x120 > bus_for_each_drv+0x78/0xd0 > __device_attach+0xd8/0x180 > device_initial_probe+0x14/0x20 > bus_probe_device+0x9c/0xa4 > deferred_probe_work_func+0x88/0xc4 > process_one_work+0x288/0x6f0 > worker_thread+0x74/0x470 > kthread+0x188/0x194 > ret_from_fork+0x10/0x20 > Code: 11002042 f9481c61 531e7442 8b020021 (88dffc21) > ---[ end trace d73aff585b108954 ]--- > Kernel panic - not syncing: synchronous external abort: Fatal exception > SMP: stopping secondary CPUs > Kernel Offset: disabled > CPU features: 0x2,300071c2,0846 > Memory Limit: none > ---[ end Kernel panic - not syncing: synchronous external abort: Fatal > exception ]--- Is this with Bridge or normal DSI panel? Jagan.
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
On 22.11.2021 08:06, Jagan Teki wrote: > Some display panels would come up with a non-DSI output, those > can have an option to connect the DSI host by means of interface > bridge converter. > > This DSI to non-DSI interface bridge converter would requires > DSI Host to handle drm bridge functionalities in order to DSI > Host to Interface bridge. > > This patch convert the existing to a drm bridge driver with a > built-in encoder support for compatibility with existing > component drivers. > > Signed-off-by: Jagan Teki > --- > Note: > Hi Marek Szyprowski, > > Please test this on Panel and Bridge hardware. I don't have good news, t crashes: [drm] Exynos DRM: using 1380.decon device for DMA mapping operations exynos-drm exynos-drm: bound 1380.decon (ops decon_component_ops) exynos-drm exynos-drm: bound 1388.decon (ops decon_component_ops) exynos-drm exynos-drm: bound 1393.mic (ops exynos_mic_component_ops) [drm:drm_bridge_attach] *ERROR* failed to attach bridge /soc@0/dsi@1390 to encoder TMDS-67: -22 exynos-drm exynos-drm: failed to bind 1390.dsi (ops exynos_dsi_component_ops): -22 Internal error: synchronous external abort: 96000210 [#1] PREEMPT SMP Modules linked in: CPU: 2 PID: 74 Comm: kworker/u16:1 Not tainted 5.16.0-rc1+ #4141 Hardware name: Samsung TM2E board (DT) Workqueue: events_unbound deferred_probe_work_func pstate: 8005 (Nzcv daif -PAN -UAO -TCO -DIT -SSBS BTYPE=--) pc : decon_atomic_disable+0x58/0xd4 lr : decon_atomic_disable+0x28/0xd4 sp : 80001390b940 x29: 80001390b940 x28: 80001259a000 x27: 27f39e80 input: stmfts as /devices/platform/soc@0/14ed.hsi2c/i2c-3/3-0049/input/input0 x26: ffea x25: 25a40280 x24: 0001 x23: 800011b55f98 x22: 315dc000 x21: 2695d100 x20: 27e7a080 x19: 315e6000 x18: x17: 645f736f6e797865 x16: 2073706f28206973 x15: 00028ee0 x14: 0028 x13: 0001 x12: 0040 x11: 23c18920 x10: 23c18922 x9 : 8000126352f0 x8 : 23c00270 x7 : x6 : 23c00268 x5 : 27e7a3a0 x4 : 0001 x3 : 27e7a080 x2 : 0024 x1 : 800013bc8024 x0 : 246117c0 Call trace: decon_atomic_disable+0x58/0xd4 decon_unbind+0x1c/0x3c component_unbind+0x38/0x60 component_bind_all+0x16c/0x25c exynos_drm_bind+0x104/0x1bc try_to_bring_up_master+0x164/0x1d0 __component_add+0xa8/0x174 component_add+0x14/0x20 hdmi_probe+0x438/0x710 platform_probe+0x68/0xe0 really_probe.part.0+0x9c/0x31c __driver_probe_device+0x98/0x144 driver_probe_device+0xc8/0x160 __device_attach_driver+0xb8/0x120 bus_for_each_drv+0x78/0xd0 __device_attach+0xd8/0x180 device_initial_probe+0x14/0x20 bus_probe_device+0x9c/0xa4 deferred_probe_work_func+0x88/0xc4 process_one_work+0x288/0x6f0 worker_thread+0x74/0x470 kthread+0x188/0x194 ret_from_fork+0x10/0x20 Code: 11002042 f9481c61 531e7442 8b020021 (88dffc21) ---[ end trace d73aff585b108954 ]--- Kernel panic - not syncing: synchronous external abort: Fatal exception SMP: stopping secondary CPUs Kernel Offset: disabled CPU features: 0x2,300071c2,0846 Memory Limit: none ---[ end Kernel panic - not syncing: synchronous external abort: Fatal exception ]--- I will try to debug it a bit more once I find some spare time. I've applied only the first patch. > drivers/gpu/drm/exynos/exynos_drm_dsi.c | 73 + > 1 file changed, 51 insertions(+), 22 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c > b/drivers/gpu/drm/exynos/exynos_drm_dsi.c > index 8d137857818c..174590f543c3 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c > @@ -257,6 +257,7 @@ struct exynos_dsi { > struct drm_connector connector; > struct drm_panel *panel; > struct list_head bridge_chain; > + struct drm_bridge bridge; > struct drm_bridge *out_bridge; > struct device *dev; > > @@ -287,9 +288,9 @@ struct exynos_dsi { > #define host_to_dsi(host) container_of(host, struct exynos_dsi, dsi_host) > #define connector_to_dsi(c) container_of(c, struct exynos_dsi, connector) > > -static inline struct exynos_dsi *encoder_to_dsi(struct drm_encoder *e) > +static inline struct exynos_dsi *bridge_to_dsi(struct drm_bridge *b) > { > - return container_of(e, struct exynos_dsi, encoder); > + return container_of(b, struct exynos_dsi, bridge); > } > > enum reg_idx { > @@ -1374,9 +1375,10 @@ static void exynos_dsi_unregister_te_irq(struct > exynos_dsi *dsi) > } > } > > -static void exynos_dsi_enable(struct drm_encoder *encoder) > +static void exynos_dsi_atomic_enable(struct drm_bridge *bridge, > + struct drm_bridge_state *old_bridge_state) > { > - struct exynos_dsi *dsi = encoder_to_dsi(encoder); > + struct exynos_dsi *dsi =
Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver
Hi Marek. On Mon, Nov 22, 2021 at 12:36 PM Jagan Teki wrote: > > Some display panels would come up with a non-DSI output, those > can have an option to connect the DSI host by means of interface > bridge converter. > > This DSI to non-DSI interface bridge converter would requires > DSI Host to handle drm bridge functionalities in order to DSI > Host to Interface bridge. > > This patch convert the existing to a drm bridge driver with a > built-in encoder support for compatibility with existing > component drivers. > > Signed-off-by: Jagan Teki > --- > Note: > Hi Marek Szyprowski, > > Please test this on Panel and Bridge hardware. > > drivers/gpu/drm/exynos/exynos_drm_dsi.c | 73 + > 1 file changed, 51 insertions(+), 22 deletions(-) > > diff --git a/drivers/gpu/drm/exynos/exynos_drm_dsi.c > b/drivers/gpu/drm/exynos/exynos_drm_dsi.c > index 8d137857818c..174590f543c3 100644 > --- a/drivers/gpu/drm/exynos/exynos_drm_dsi.c > +++ b/drivers/gpu/drm/exynos/exynos_drm_dsi.c > @@ -257,6 +257,7 @@ struct exynos_dsi { > struct drm_connector connector; > struct drm_panel *panel; > struct list_head bridge_chain; > + struct drm_bridge bridge; > struct drm_bridge *out_bridge; > struct device *dev; > > @@ -287,9 +288,9 @@ struct exynos_dsi { > #define host_to_dsi(host) container_of(host, struct exynos_dsi, dsi_host) > #define connector_to_dsi(c) container_of(c, struct exynos_dsi, connector) > > -static inline struct exynos_dsi *encoder_to_dsi(struct drm_encoder *e) > +static inline struct exynos_dsi *bridge_to_dsi(struct drm_bridge *b) > { > - return container_of(e, struct exynos_dsi, encoder); > + return container_of(b, struct exynos_dsi, bridge); > } > > enum reg_idx { > @@ -1374,9 +1375,10 @@ static void exynos_dsi_unregister_te_irq(struct > exynos_dsi *dsi) > } > } > > -static void exynos_dsi_enable(struct drm_encoder *encoder) > +static void exynos_dsi_atomic_enable(struct drm_bridge *bridge, > +struct drm_bridge_state > *old_bridge_state) > { > - struct exynos_dsi *dsi = encoder_to_dsi(encoder); > + struct exynos_dsi *dsi = bridge_to_dsi(bridge); > struct drm_bridge *iter; > int ret; > > @@ -1399,7 +1401,8 @@ static void exynos_dsi_enable(struct drm_encoder > *encoder) > list_for_each_entry_reverse(iter, >bridge_chain, > chain_node) { > if (iter->funcs->pre_enable) > - iter->funcs->pre_enable(iter); > + iter->funcs->atomic_pre_enable(iter, > + > old_bridge_state); > } > } > > @@ -1413,7 +1416,7 @@ static void exynos_dsi_enable(struct drm_encoder > *encoder) > } else { > list_for_each_entry(iter, >bridge_chain, chain_node) { > if (iter->funcs->enable) > - iter->funcs->enable(iter); > + iter->funcs->atomic_enable(iter, > old_bridge_state); > } > } > > @@ -1429,9 +1432,10 @@ static void exynos_dsi_enable(struct drm_encoder > *encoder) > pm_runtime_put(dsi->dev); > } > > -static void exynos_dsi_disable(struct drm_encoder *encoder) > +static void exynos_dsi_atomic_disable(struct drm_bridge *bridge, > + struct drm_bridge_state > *old_bridge_state) > { > - struct exynos_dsi *dsi = encoder_to_dsi(encoder); > + struct exynos_dsi *dsi = bridge_to_dsi(bridge); > struct drm_bridge *iter; > > if (!(dsi->state & DSIM_STATE_ENABLED)) > @@ -1443,7 +1447,7 @@ static void exynos_dsi_disable(struct drm_encoder > *encoder) > > list_for_each_entry_reverse(iter, >bridge_chain, chain_node) { > if (iter->funcs->disable) > - iter->funcs->disable(iter); > + iter->funcs->atomic_disable(iter, old_bridge_state); > } > > exynos_dsi_set_display_enable(dsi, false); > @@ -1451,7 +1455,7 @@ static void exynos_dsi_disable(struct drm_encoder > *encoder) > > list_for_each_entry(iter, >bridge_chain, chain_node) { > if (iter->funcs->post_disable) > - iter->funcs->post_disable(iter); > + iter->funcs->atomic_post_disable(iter, > old_bridge_state); > } > > dsi->state &= ~DSIM_STATE_ENABLED; > @@ -1494,9 +1498,9 @@ static const struct drm_connector_helper_funcs > exynos_dsi_connector_helper_funcs > .get_modes = exynos_dsi_get_modes, > }; > > -static int exynos_dsi_create_connector(struct drm_encoder *encoder) > +static int exynos_dsi_create_connector(struct exynos_dsi *dsi) > { > - struct exynos_dsi *dsi = encoder_to_dsi(encoder); > + struct drm_encoder *encoder =