linux/drivers/media/pci
Stanislaw Gruszka 57241487a3 media: intel/ipu6: do not handle interrupts when device is disabled
commit 1429826883 upstream.

Some IPU6 devices have shared interrupts. We need to handle properly
case when interrupt is triggered from other device on shared irq line
and IPU6 itself disabled. In such case we get 0xffffffff from
ISR_STATUS register and handle all irq's cases, for what we are not
not prepared and usually hang the whole system.

To avoid the issue use pm_runtime_get_if_active() to check if
the device is enabled and prevent suspending it when we handle irq
until the end of irq. Additionally use synchronize_irq() in suspend

Fixes: ab29a2478e ("media: intel/ipu6: add IPU6 buttress interface driver")
Cc: stable@vger.kernel.org
Signed-off-by: Stanislaw Gruszka <stanislaw.gruszka@linux.intel.com>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Tested-by: Hans de Goede <hdegoede@redhat.com> # ThinkPad X1 Yoga Gen 8, ov2740
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com>
Signed-off-by: Hans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2024-12-05 14:02:56 +01:00
..
b2c2 media: b2c2: Add missing check in flexcop_pci_isr: 2021-11-19 15:40:09 +00:00
bt8xx move asm/unaligned.h to linux/unaligned.h 2024-10-02 17:23:23 -04:00
cobalt media: cobalt: Use pad variant of dv timing subdev calls 2024-04-09 08:15:04 +02:00
cx18 media: pci: cx18: Use flex arrays for struct cx18_scb 2024-05-31 13:51:16 +02:00
cx88 media: videobuf2: core: Rename min_buffers_needed field in vb2_queue 2023-12-13 17:31:27 +01:00
cx23885 media: pci: cx23885: check cx23885_vdev_init() return 2024-02-05 12:57:44 +01:00
cx25821 media: videobuf2: core: Rename min_buffers_needed field in vb2_queue 2023-12-13 17:31:27 +01:00
ddbridge media: Convert from tasklet to BH workqueue 2024-06-21 08:57:09 +02:00
dm1105 media: add HAS_IOPORT dependencies 2023-06-28 11:09:25 +02:00
dt3155 media: pci: dt315.h: Fix kerneldoc 2024-02-05 12:57:45 +01:00
intel media: intel/ipu6: do not handle interrupts when device is disabled 2024-12-05 14:02:56 +01:00
ivtv media: pci: add missing MODULE_DESCRIPTION() macros 2024-06-15 10:49:20 +02:00
mantis media: Convert from tasklet to BH workqueue 2024-06-21 08:57:09 +02:00
mgb4 media: mgb4: protect driver against spectre 2024-10-18 10:43:03 +02:00
netup_unidvb media: netup_unidvb: Use min macro 2024-05-03 11:12:43 +01:00
ngene media: Convert from tasklet to BH workqueue 2024-06-21 08:57:09 +02:00
pluto2 media: switch from 'pci_' to 'dma_' API 2021-09-30 10:07:55 +02:00
pt1 media: switch from 'pci_' to 'dma_' API 2021-09-30 10:07:55 +02:00
pt3 media: pt3: Use dma_set_mask_and_coherent() and simplify code 2022-12-07 17:58:46 +01:00
saa7134 media updates for v6.11-rc1 2024-07-17 18:30:10 -07:00
saa7146 media: pci: saa7146: advertise only those TV standard that are supported 2023-04-15 08:56:05 +01:00
saa7164 media: pci: saa7164: replace BUG with error return 2023-07-25 09:24:31 +02:00
smipcie media: Convert from tasklet to BH workqueue 2024-06-21 08:57:09 +02:00
solo6x10 media: solo6x10: use 'time_left' variable with wait_for_completion_timeout() 2024-08-09 07:56:39 +02:00
sta2x11 media: sta2x11: fix irq handler cast 2024-02-16 11:46:33 +01:00
ttpci media: Convert from tasklet to BH workqueue 2024-06-21 08:57:09 +02:00
tw68 media: videobuf2: core: Rename min_buffers_needed field in vb2_queue 2023-12-13 17:31:27 +01:00
tw686x media: videobuf2: core: Rename min_buffers_needed field in vb2_queue 2023-12-13 17:31:27 +01:00
tw5864 media: Convert from tasklet to BH workqueue 2024-06-21 08:57:09 +02:00
zoran media: videobuf2: core: Rename min_buffers_needed field in vb2_queue 2023-12-13 17:31:27 +01:00
Kconfig media: pci: mgb4: Added Digiteq Automotive MGB4 driver 2023-10-07 10:51:58 +02:00
Makefile media: pci: mgb4: Added Digiteq Automotive MGB4 driver 2023-10-07 10:51:58 +02:00