linux/drivers/fpga
Nazim Amirul 093da48782 fpga: altera-cvp: Retry teardown and reset CVP state on failure
The driver polls CFG_RDY for 0 as notification that the endpoint has
finished teardown and a new session can start safely. After a bad
bitstream that poll can time out: CFG_RDY may stay stuck when
HIP_CLK_SEL=0 if the device has already left usermode before the poll.

Retrying teardown alone is not enough. Exit CvP mode and switch the HIP
clock that feeds CFG_RDY so CVP_STATUS becomes responsive again, then
try the teardown once more.

Introduce altera_cvp_recovery() to wrap this cleanup and single retry.

Signed-off-by: Nazim Amirul <muhammad.nazim.amirul.nazle.asmade@altera.com>
Reviewed-by: Xu Yilun <yilun.xu@intel.com>
Link: https://lore.kernel.org/r/20260923053233.10890-3-muhammad.nazim.amirul.nazle.asmade@altera.com
Signed-off-by: Xu Yilun <yilun.xu@linux.intel.com>
2026-09-29 18:23:46 +08:00
..
tests
altera-cvp.c fpga: altera-cvp: Retry teardown and reset CVP state on failure 2026-09-29 18:23:46 +08:00
altera-fpga2sdram.c
altera-freeze-bridge.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
altera-hps2fpga.c
altera-pr-ip-core-plat.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
altera-pr-ip-core.c
altera-ps-spi.c
dfl-afu-dma-region.c treewide: refresh kmalloc_obj() conversions 2026-09-04 21:37:00 -07:00
dfl-afu-error.c
dfl-afu-main.c fpga: dfl-afu: validate DMA mapping length in afu_dma_map_region() 2026-06-01 12:29:13 +08:00
dfl-afu-region.c
dfl-afu.h
dfl-fme-br.c
dfl-fme-error.c
dfl-fme-main.c
dfl-fme-mgr.c
dfl-fme-perf.c Char/Misc/IIO/etc driver update for 7.3-rc1 2026-08-25 09:38:50 -07:00
dfl-fme-pr.c
dfl-fme-pr.h
dfl-fme-region.c
dfl-fme.h
dfl-n3000-nios.c
dfl-pci.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
dfl.c fpga: dfl: add bounds check in dfh_get_param_size() 2026-06-01 12:28:33 +08:00
dfl.h fpga: dfl: Drop #include for <linux/mod_devicetable.h> 2026-09-09 15:48:09 +08:00
efinix-spi.c fpga-mgr: Add Efinix SPI programming driver 2026-05-04 19:30:18 +08:00
fpga-bridge.c fpga: bridge: Use sysfs_emit() instead of sprintf() 2026-03-02 17:47:44 +08:00
fpga-mgr.c fpga: Fix of_fpga_mgr_get() reference in fpga_mgr_lock() docs 2026-09-19 01:13:27 +08:00
fpga-region.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
ice40-spi.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
intel-m10-bmc-sec-update.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
Kconfig fpga-mgr: Add Efinix SPI programming driver 2026-05-04 19:30:18 +08:00
lattice-sysconfig-spi.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
lattice-sysconfig.c
lattice-sysconfig.h
machxo2-spi.c
Makefile fpga-mgr: Add Efinix SPI programming driver 2026-05-04 19:30:18 +08:00
microchip-spi.c fpga: microchip-spi: fix zero header_size OOB read in mpf_ops_parse_header() 2026-06-01 12:29:40 +08:00
of-fpga-region.c fpga: region: fix use-after-free in child_regions_with_firmware() 2026-05-04 19:27:05 +08:00
socfpga-a10.c
socfpga.c
stratix10-soc.c fpga: fix typo in s10_ops_write() comment 2026-09-19 01:11:23 +08:00
ts73xx-fpga.c fpga: ts73xx-fpga: add OF match table for device tree probing 2026-05-04 19:28:18 +08:00
versal-fpga.c
xilinx-core.c
xilinx-core.h
xilinx-pr-decoupler.c fpga: xilinx-pr-decoupler: Use devm_clk_get_prepared() 2026-07-07 11:13:23 +08:00
xilinx-selectmap.c fpga: xilinx-selectmap: control CSI_B and RDWR_B during configuration 2026-09-19 01:08:52 +08:00
xilinx-spi.c Replace <linux/mod_devicetable.h> by more specific <linux/device-id/*.h> (c files) 2026-07-03 07:38:17 +02:00
zynq-fpga.c fpga: zynq-fpga: Remove redundant dev_err() 2026-07-23 12:45:58 +08:00
zynqmp-fpga.c