drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c

Source file repositories/reference/linux-study-clean/drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/broadcom/brcm80211/brcmfmac/dmi.c
Extension
.c
Size
7103 bytes
Lines
230
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct brcmf_dmi_data {
	u32 chip;
	u32 chiprev;
	const char *board_type;
};

/* NOTE: Please keep all entries sorted alphabetically */

static const struct brcmf_dmi_data acepc_t8_data = {
	BRCM_CC_4345_CHIP_ID, 6, "acepc-t8"
};

static const struct brcmf_dmi_data acer_a1_840_data = {
	BRCM_CC_43340_CHIP_ID, 2, "acer-a1-840"
};

/* 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"
};

static const struct brcmf_dmi_data jumper_ezpad_mini3_data = {
	BRCM_CC_43430_CHIP_ID, 0, "jumper-ezpad-mini3"
};

static const struct brcmf_dmi_data meegopad_t08_data = {
	BRCM_CC_43340_CHIP_ID, 2, "meegopad-t08"
};

static const struct brcmf_dmi_data pov_tab_p1006w_data = {
	BRCM_CC_43340_CHIP_ID, 2, "pov-tab-p1006w-data"
};

static const struct brcmf_dmi_data predia_basic_data = {
	BRCM_CC_43341_CHIP_ID, 2, "predia-basic"
};

/* Note the Voyo winpad A15 tablet uses the same Ampak AP6330 module, with the
 * exact same nvram file as the Prowise-PT301 tablet. Since the nvram for the
 * Prowise-PT301 is already in linux-firmware we just point to that here.
 */
static const struct brcmf_dmi_data voyo_winpad_a15_data = {
	BRCM_CC_4330_CHIP_ID, 4, "Prowise-PT301"
};

static const struct dmi_system_id dmi_platform_data[] = {
	{
		/* ACEPC T8 Cherry Trail Z8350 mini PC */
		.matches = {
			DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "To be filled by O.E.M."),
			DMI_EXACT_MATCH(DMI_BOARD_NAME, "Cherry Trail CR"),
			DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "T8"),
			/* also match on somewhat unique bios-version */
			DMI_EXACT_MATCH(DMI_BIOS_VERSION, "1.000"),
		},
		.driver_data = (void *)&acepc_t8_data,
	},
	{
		/* ACEPC T11 Cherry Trail Z8350 mini PC, same wifi as the T8 */
		.matches = {
			DMI_EXACT_MATCH(DMI_BOARD_VENDOR, "To be filled by O.E.M."),
			DMI_EXACT_MATCH(DMI_BOARD_NAME, "Cherry Trail CR"),
			DMI_EXACT_MATCH(DMI_PRODUCT_SKU, "T11"),
			/* also match on somewhat unique bios-version */
			DMI_EXACT_MATCH(DMI_BIOS_VERSION, "1.000"),
		},
		.driver_data = (void *)&acepc_t8_data,
	},
	{
		/* ACEPC W5 Pro Cherry Trail Z8350 HDMI stick, same wifi as the T8 */
		.matches = {
			DMI_MATCH(DMI_BOARD_NAME, "T3 MRD"),
			DMI_MATCH(DMI_CHASSIS_TYPE, "3"),
			DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
		},
		.driver_data = (void *)&acepc_t8_data,
	},
	{
		/* Acer Iconia One 8 A1-840 (non FHD version) */
		.matches = {
			DMI_MATCH(DMI_SYS_VENDOR, "Insyde"),
			DMI_MATCH(DMI_PRODUCT_NAME, "BayTrail"),
			/* Above strings are too generic also match BIOS date */
			DMI_MATCH(DMI_BIOS_DATE, "04/01/2014"),

Annotation

Implementation Notes