ahci_generic: add quirk for NXP0004 (NXP Layerscape LX2160A)
This fixes this error : (aprobe3:ahcich3:0:15:0): NOP FLUSHQUEUE. ACB: 00 00 00 00 00 00 00 00 00 00 00 00 (aprobe3:ahcich3:0:15:0): CAM status: Command timeout (aprobe3:ahcich3:0:15:0): Error 5, Retries exhausted Submitted by: Greg V <greg@unrelenting.technology> Reviewed by: imp, mav MFC after: 2 weeks Differential Revision: https://reviews.freebsd.org/D25157
This commit is contained in:
parent
a52c8a6502
commit
6b74091dd5
@ -86,11 +86,22 @@ ahci_fdt_probe(device_t dev)
|
||||
#endif
|
||||
|
||||
#ifdef DEV_ACPI
|
||||
|
||||
static const struct ahci_acpi_quirk {
|
||||
const char* hid;
|
||||
u_int quirks;
|
||||
} ahci_acpi_quirks[] = {
|
||||
{ "NXP0004", AHCI_Q_NOPMP },
|
||||
{ NULL, 0 }
|
||||
};
|
||||
|
||||
|
||||
static int
|
||||
ahci_acpi_probe(device_t dev)
|
||||
{
|
||||
struct ahci_controller *ctlr = device_get_softc(dev);
|
||||
ACPI_HANDLE h;
|
||||
int i;
|
||||
|
||||
if ((h = acpi_get_handle(dev)) == NULL)
|
||||
return (ENXIO);
|
||||
@ -105,6 +116,12 @@ ahci_acpi_probe(device_t dev)
|
||||
if (bootverbose)
|
||||
device_printf(dev, "Bus is%s cache-coherent\n",
|
||||
ctlr->dma_coherent ? "" : " not");
|
||||
for (i = 0; ahci_acpi_quirks[i].hid != NULL; i++) {
|
||||
if (acpi_MatchHid(h, ahci_acpi_quirks[i].hid) != ACPI_MATCHHID_NOMATCH) {
|
||||
ctlr->quirks = ahci_acpi_quirks[i].quirks;
|
||||
break;
|
||||
}
|
||||
}
|
||||
return (BUS_PROBE_DEFAULT);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user