wifi: brcmfmac: Add DMI nvram filename quirk for Chuwi Hi8 Pro tablet
authorHans de Goede <hdegoede@redhat.com>
Wed, 10 Aug 2022 14:23:33 +0000 (16:23 +0200)
committerKalle Valo <kvalo@kernel.org>
Wed, 7 Sep 2022 07:58:46 +0000 (10:58 +0300)
The Chuwi Hi8 Pro tablet contains quite generic names in the sys_vendor
and product_name DMI strings, without this patch brcmfmac will try to load:
"brcmfmac43430a0-sdio.Default string-Default string.txt" as nvram file
which is way too generic.

The Chuwi Hi8 Pro uses the same Ampak AP6212 module as the Chuwi Vi8 Plus
and the nvram for the Vi8 Plus is already in linux-firmware, so point
the new DMI nvram filename quirk to the Vi8 Plus nvram file.

Signed-off-by: Hans de Goede <hdegoede@redhat.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220810142333.141044-1-hdegoede@redhat.com
drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c

index 0af452dca7664e5d9c14ede702278e8bace35fd2..86ff174936a9a0e0ae1874be113eef0b2de77e14 100644 (file)
@@ -24,6 +24,13 @@ static const struct brcmf_dmi_data acepc_t8_data = {
        BRCM_CC_4345_CHIP_ID, 6, "acepc-t8"
 };
 
+/* The Chuwi Hi8 Pro uses the same Ampak AP6212 module as the Chuwi Vi8 Plus
+ * and the nvram for the Vi8 Plus is already in linux-firmware, so use that.
+ */
+static const struct brcmf_dmi_data chuwi_hi8_pro_data = {
+       BRCM_CC_43430_CHIP_ID, 0, "ilife-S806"
+};
+
 static const struct brcmf_dmi_data gpd_win_pocket_data = {
        BRCM_CC_4356_CHIP_ID, 2, "gpd-win-pocket"
 };
@@ -75,6 +82,17 @@ static const struct dmi_system_id dmi_platform_data[] = {
                },
                .driver_data = (void *)&acepc_t8_data,
        },
+       {
+               /* Chuwi Hi8 Pro with D2D3_Hi8Pro.233 BIOS */
+               .matches = {
+                       DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "Hampoo"),
+                       DMI_EXACT_MATCH(DMI_BOARD_NAME, "Cherry Trail CR"),
+                       DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "MRD"),
+                       /* Above strings are too generic, also match on BIOS date */
+                       DMI_MATCH(DMI_BIOS_DATE, "05/10/2016"),
+               },
+               .driver_data = (void *)&chuwi_hi8_pro_data,
+       },
        {
                /* Cyberbook T116 rugged tablet */
                .matches = {