Re: [RESEND PATCH v11 13/18] drm: exynos: dsi: Add Exynos based host irq hooks

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 1/25/23 20:24, Jagan Teki wrote:
On Wed, Jan 25, 2023 at 11:33 PM Marek Vasut <marex@xxxxxxx> wrote:

On 1/25/23 18:35, Jagan Teki wrote:

[...]

exynos_dsi_register_te_irq is done after the bridge attach is done in
Exynos, here bridge attach is triggered in the component ops bind
call, since samsung-dsim is a pure bridge w/o any component ops.
https://github.com/openedev/kernel/blob/imx8mm-dsi-v12/drivers/gpu/drm/bridge/samsung-dsim.c#L1527
https://github.com/openedev/kernel/blob/imx8mm-dsi-v12/drivers/gpu/drm/exynos/exynos_drm_dsi.c#L112

Any suggestion on how to handle this?

Why isn't the generic code calling drm_bridge_attach() in
samsung_dsim_host_attach(), like the exynos one ?

Exynos drm drivers follow component ops and generic dsim is a pure drm
bridge whose downstream bridge will attach in bridge ops attach and
the component-based drivers require an initial bridge attach (whose
previous is NULL) call in the component bind hook for establishing the
bridge chain.

Well in that case, call the exynos optional host_attach and register the
TE IRQ handler at the end, that should work just fine too, right ? If
so, then you can also move the IRQ handler registration into the generic
part of the driver.

Something like this?

samsung_dsim_host_attach()
{
         drm_bridge_add(&dsi->bridge);

         if (pdata->host_ops && pdata->host_ops->attach)
                 pdata->host_ops->attach(dsi, device);

         exynos_dsi_register_te_irq

         dsi->lanes = device->lanes;
         dsi->format = device->format;
         dsi->mode_flags = device->mode_flags;
}

Yes, I think that should work .



[Index of Archives]     [Linux DRI Users]     [Linux Intel Graphics]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux