mirror-linux/drivers/gpu/host1x
Jon Hunter dc56f8428e gpu: host1x: Fix boot regression for Tegra
Commit 4c27ac45e6 ("gpu: host1x: Request syncpoint IRQs only during
probe") caused a boot regression for the Tegra186 device. Following this
update the function host1x_intr_init() now calls
host1x_hw_intr_disable_all_syncpt_intrs() during probe. However,
host1x_intr_init() is called before runtime power-management is enabled
for Host1x and the function host1x_hw_intr_disable_all_syncpt_intrs() is
accessing hardware registers. So if the Host1x hardware is not enabled
prior to probing then the device will now hang on attempting to access
the registers. So far this is only observed on Tegra186, but potentially
could be seen on other devices.

Fix this by moving the call to the function host1x_intr_init() in probe
to after enabling the runtime power-management in the probe and update
the failure path in probe as necessary.

Fixes: 4c27ac45e6 ("gpu: host1x: Request syncpoint IRQs only during probe")
Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20240925160504.60221-1-jonathanh@nvidia.com
2024-09-25 21:21:45 +02:00
..
hw gpu: host1x: Add MLOCK recovery for rest of engines 2024-08-29 20:14:29 +02:00
Kconfig drm/tegra: Allow compile test on !ARM v2 2023-04-04 18:04:43 +02:00
Makefile gpu: host1x: Tegra234 device data and headers 2022-07-08 16:27:52 +02:00
bus.c driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
bus.h gpu: host1x: bus: make host1x_bus_type const 2024-02-13 19:10:57 +01:00
cdma.c gpu: host1x: remove redundant assignment to variable space 2024-02-16 11:51:46 +01:00
cdma.h gpu: host1x: Implement job tracking using DMA fences 2023-01-26 15:55:38 +01:00
channel.c gpu: host1x: Stop CDMA before suspending 2023-10-11 22:52:44 +02:00
channel.h gpu: host1x: Stop CDMA before suspending 2023-10-11 22:52:44 +02:00
context.c gpu: host1x: Set up device DMA parameters 2024-09-25 21:21:23 +02:00
context.h gpu: host1x: Add context device management code 2022-07-08 16:27:52 +02:00
context_bus.c gpu: host1x: Make host1x_context_device_bus_type constant 2024-08-29 20:14:29 +02:00
debug.c gpu: host1x: Rewrite syncpoint interrupt handling 2023-01-26 15:55:38 +01:00
debug.h
dev.c gpu: host1x: Fix boot regression for Tegra 2024-09-25 21:21:45 +02:00
dev.h gpu: host1x: Fix _writel function declarations 2024-08-29 20:14:29 +02:00
fence.c gpu: host1x: External timeout/cancellation for fences 2023-01-26 15:55:38 +01:00
fence.h gpu: host1x: External timeout/cancellation for fences 2023-01-26 15:55:38 +01:00
intr.c gpu: host1x: Request syncpoint IRQs only during probe 2024-08-28 17:28:48 +02:00
intr.h gpu: host1x: Request syncpoint IRQs only during probe 2024-08-28 17:28:48 +02:00
job.c gpu: host1x: Implement job tracking using DMA fences 2023-01-26 15:55:38 +01:00
job.h drm/tegra: Implement correct DMA-BUF semantics 2021-12-16 14:07:06 +01:00
mipi.c gpu: host1x: mipi: Benefit from devm_clk_get_prepared() 2024-05-27 10:13:55 +02:00
syncpt.c gpu: host1x: Don't rely on dma_fence_wait_timeout return value 2023-04-04 14:24:24 +02:00
syncpt.h gpu: host1x: Rewrite syncpoint interrupt handling 2023-01-26 15:55:38 +01:00