ACPI: SPCR: extend XGENE 8250 workaround to m400
authorGraeme Gregory <graeme.gregory@linaro.org>
Fri, 4 Aug 2017 21:49:43 +0000 (22:49 +0100)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 15 Aug 2017 12:17:08 +0000 (14:17 +0200)
xgene v1/v2 chips are also used on moonshot cartridges that have
different table headers to the ones on Mustang. Extend the quirk
so it also recognises the Moonshot M400 variant too.

Signed-off-by: Graeme Gregory <graeme.gregory@linaro.org>
Tested-by: Mark Salter <msalter@redhat.com>
Reviewed-by: Mark Salter <msalter@redhat.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/spcr.c

index 98aa8c808a3346dc559e2f419ae4378dec075ffc..2c156941b371d701f48e0df8d223f27204fa3a37 100644 (file)
@@ -53,17 +53,24 @@ static bool qdf2400_erratum_44_present(struct acpi_table_header *h)
  */
 static bool xgene_8250_erratum_present(struct acpi_table_spcr *tb)
 {
+       bool xgene_8250 = false;
+
        if (tb->interface_type != ACPI_DBG2_16550_COMPATIBLE)
                return false;
 
-       if (memcmp(tb->header.oem_id, "APMC0D", ACPI_OEM_ID_SIZE))
+       if (memcmp(tb->header.oem_id, "APMC0D", ACPI_OEM_ID_SIZE) &&
+           memcmp(tb->header.oem_id, "HPE   ", ACPI_OEM_ID_SIZE))
                return false;
 
        if (!memcmp(tb->header.oem_table_id, "XGENESPC",
            ACPI_OEM_TABLE_ID_SIZE) && tb->header.oem_revision == 0)
-               return true;
+               xgene_8250 = true;
 
-       return false;
+       if (!memcmp(tb->header.oem_table_id, "ProLiant",
+           ACPI_OEM_TABLE_ID_SIZE) && tb->header.oem_revision == 1)
+               xgene_8250 = true;
+
+       return xgene_8250;
 }
 
 /**