accel/ivpu/37xx: Fix interrupt_clear_with_0 WA initialization
authorAndrzej Kacprowski <Andrzej.Kacprowski@intel.com>
Mon, 4 Dec 2023 12:23:31 +0000 (13:23 +0100)
committerJacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Mon, 11 Dec 2023 09:38:52 +0000 (10:38 +0100)
commit35c49cfc8b702eda7a0d3f05497b16f81b69e289
treeb3a5361539fd82c36721c7dbfafea61dbe5401a6
parent6e455f5dcdd15fa28edf0ffb5b44d3508512dccf
accel/ivpu/37xx: Fix interrupt_clear_with_0 WA initialization

Using PCI Device ID/Revision to initialize the interrupt_clear_with_0
workaround is problematic - there are many pre-production
steppings with different behavior, even with the same PCI ID/Revision

Instead of checking for PCI Device ID/Revision, check the VPU
buttress interrupt status register behavior - if this register
is not zero after writing 1s it means there register is RW
instead of RW1C and we need to enable the interrupt_clear_with_0
workaround.

Fixes: 7f34e01f77f8 ("accel/ivpu: Clear specific interrupt status bits on C0")
Signed-off-by: Andrzej Kacprowski <Andrzej.Kacprowski@intel.com>
Signed-off-by: Jacek Lawrynowicz <jacek.lawrynowicz@linux.intel.com>
Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Link: https://lore.kernel.org/all/20231204122331.40560-1-jacek.lawrynowicz@linux.intel.com
drivers/accel/ivpu/ivpu_hw_37xx.c