summaryrefslogtreecommitdiff
path: root/rust/helpers/irq.c
diff options
context:
space:
mode:
authorJarkko Nikula <jarkko.nikula@linux.intel.com>2025-08-22 13:56:29 +0300
committerAlexandre Belloni <alexandre.belloni@bootlin.com>2025-09-16 17:06:42 +0200
commit9e23897bca622eae20d2c038cc09b45bfaf5aed2 (patch)
tree003f195548f8cbe25d82430cfe11774136c6e5ab /rust/helpers/irq.c
parent1c46bfc4f75e7d43261af65b64e7d3dc4a30daa9 (diff)
i3c: mipi-i3c-hci: Use physical device pointer with DMA API
DMA transfer faults on Intel hardware when the IOMMU is enabled and driver initialization will fail when attempting to do the first transfer: DMAR: DRHD: handling fault status reg 2 DMAR: [DMA Read NO_PASID] Request device [00:11.0] fault addr 0x676e3000 [fault reason 0x71] SM: Present bit in first-level paging entry is clear i3c mipi-i3c-hci.0: ring 0: Transfer Aborted mipi-i3c-hci mipi-i3c-hci.0: probe with driver mipi-i3c-hci failed with error -62 Reason for this is that the IOMMU setup is done for the physical devices only and not for the virtual I3C Controller device object. Therefore use the pointer to a physical device object with the DMA API. Due to a data corruption observation when the device DMA is IOMMU mapped, a properly sized receive bounce buffer is required if transfer length is not a multiple of DWORDs. Reported-by: Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> Link: https://lore.kernel.org/r/20250822105630.2820009-4-jarkko.nikula@linux.intel.com Signed-off-by: Alexandre Belloni <alexandre.belloni@bootlin.com>
Diffstat (limited to 'rust/helpers/irq.c')
0 files changed, 0 insertions, 0 deletions