PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller
authorYifeng Li <tomli@tomli.me>
Thu, 2 Dec 2021 06:35:21 +0000 (06:35 +0000)
committerBjorn Helgaas <bhelgaas@google.com>
Wed, 15 Dec 2021 20:28:18 +0000 (14:28 -0600)
commite445375882883f69018aa669b67cbb37ec873406
tree915eceaa0acc6d194a1264767ebfe12fa9402efc
parentfa55b7dcdc43c1aa1ba12bca9d2dd4318c2a0dbf
PCI: Add function 1 DMA alias quirk for Marvell 88SE9125 SATA controller

Like other SATA controller chips in the Marvell 88SE91xx series, the
Marvell 88SE9125 has the same DMA requester ID hardware bug that prevents
it from working under IOMMU.  Add it to the list of devices that need the
quirk.

Without this patch, device initialization fails with DMA errors:

  ata8: softreset failed (1st FIS failed)
  DMAR: DRHD: handling fault status reg 2
  DMAR: [DMA Write NO_PASID] Request device [03:00.1] fault addr 0xfffc0000 [fault reason 0x02] Present bit in context entry is clear
  DMAR: DRHD: handling fault status reg 2
  DMAR: [DMA Read NO_PASID] Request device [03:00.1] fault addr 0xfffc0000 [fault reason 0x02] Present bit in context entry is clear

After applying the patch, the controller can be successfully initialized:

  ata8: SATA link up 1.5 Gbps (SStatus 113 SControl 330)
  ata8.00: ATAPI: PIONEER BD-RW   BDR-207M, 1.21, max UDMA/100
  ata8.00: configured for UDMA/100
  scsi 7:0:0:0: CD-ROM            PIONEER  BD-RW   BDR-207M 1.21 PQ: 0 ANSI: 5

Link: https://lore.kernel.org/r/YahpKVR+McJVDdkD@work
Reported-by: Sam Bingner <sam@bingner.com>
Tested-by: Sam Bingner <sam@bingner.com>
Tested-by: Yifeng Li <tomli@tomli.me>
Signed-off-by: Yifeng Li <tomli@tomli.me>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Reviewed-by: Krzysztof WilczyƄski <kw@linux.com>
Cc: stable@vger.kernel.org
drivers/pci/quirks.c