Re: [PATCH 1/2] drm: exynos: dsi: Convert to bridge driver

2022-01-11 Thread Jagan Teki
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

2022-01-10 Thread Robert Foss
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

2022-01-10 Thread Jagan Teki
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

2022-01-10 Thread Robert Foss
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

2022-01-10 Thread Jagan Teki
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

2021-11-24 Thread Jagan Teki
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

2021-11-24 Thread Marek Szyprowski
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

2021-11-23 Thread Jagan Teki
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

2021-11-22 Thread Marek Szyprowski
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

2021-11-22 Thread Marek Szyprowski
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

2021-11-22 Thread Jagan Teki
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

2021-11-22 Thread Marek Szyprowski
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

2021-11-22 Thread Marek Szyprowski
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

2021-11-22 Thread Fabio Estevam
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

2021-11-22 Thread Jagan Teki
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

2021-11-22 Thread Jagan Teki
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

2021-11-22 Thread Marek Szyprowski
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

2021-11-22 Thread Jagan Teki
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 =