drm/tidss: IRQ code cleanup
authorTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Thu, 9 Nov 2023 07:38:02 +0000 (09:38 +0200)
committerTomi Valkeinen <tomi.valkeinen@ideasonboard.com>
Fri, 1 Dec 2023 10:04:42 +0000 (12:04 +0200)
commitd4652187367bc55983139401d0ee41d6e565b13d
tree083d1d93c986dc0f865481b678c1f427089ef6f5
parentbc288a927815efcf9d7f4a54d4d89c5df478c635
drm/tidss: IRQ code cleanup

The IRQ setup code is overly complex. All we really need to do is
initialize the related fields in struct tidss_device, and request the
IRQ.

We can drop all the HW accesses, as they are pointless: the driver will
set the IRQs correctly when it needs any of the IRQs, and at probe time
we have done a reset, so we know that all the IRQs are masked by default
in the hardware.

Thus we can combine the tidss_irq_preinstall() and
tidss_irq_postinstall() into the tidss_irq_install() function, drop the
HW accesses, and drop the use of spinlock, as this is done at init time
and there can be no races.

We can also drop the HW access from the tidss_irq_uninstall(), as the
driver will anyway disable and suspend the hardware at remove time.

Reviewed-by: Aradhya Bhatia <a-bhatia1@ti.com>
Link: https://lore.kernel.org/r/20231109-tidss-probe-v2-9-ac91b5ea35c0@ideasonboard.com
Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ideasonboard.com>
drivers/gpu/drm/tidss/tidss_drv.c
drivers/gpu/drm/tidss/tidss_irq.c