drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c

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

File Facts

System
Linux kernel
Corpus path
drivers/net/wireless/broadcom/brcm80211/brcmfmac/bca/core.c
Extension
.c
Size
820 bytes
Lines
39
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

// SPDX-License-Identifier: ISC
/*
 * Copyright (c) 2022 Broadcom Corporation
 */
#include <linux/errno.h>
#include <linux/types.h>
#include <core.h>
#include <bus.h>
#include <fwvid.h>
#include <feature.h>

#include "vops.h"

#define BRCMF_BCA_E_LAST		212

static void brcmf_bca_feat_attach(struct brcmf_if *ifp)
{
	/* SAE support not confirmed so disabling for now */
	ifp->drvr->feat_flags &= ~BIT(BRCMF_FEAT_SAE);
}

static int brcmf_bca_alloc_fweh_info(struct brcmf_pub *drvr)
{
	struct brcmf_fweh_info *fweh;

	fweh = kzalloc_flex(*fweh, evt_handler, BRCMF_BCA_E_LAST);
	if (!fweh)
		return -ENOMEM;

	fweh->num_event_codes = BRCMF_BCA_E_LAST;
	drvr->fweh = fweh;
	return 0;
}

const struct brcmf_fwvid_ops brcmf_bca_ops = {
	.feat_attach = brcmf_bca_feat_attach,
	.alloc_fweh_info = brcmf_bca_alloc_fweh_info,
};

Annotation

Implementation Notes