Commit b1d94be5 authored by Arend van Spriel's avatar Arend van Spriel Committed by Kalle Valo
Browse files

wifi: brcmfmac: add support Broadcom BCA firmware api



Broadcom BCA division develops its own firmware api and as such will
likely diverge over time (or already has). Add support for handling
this.

Reviewed-by: default avatarHante Meuleman <hante.meuleman@broadcom.com>
Reviewed-by: default avatarPieter-Paul Giesberts <pieter-paul.giesberts@broadcom.com>
Reviewed-by: default avatarFranky Lin <franky.lin@broadcom.com>
Signed-off-by: default avatarArend van Spriel <arend.vanspriel@broadcom.com>
Signed-off-by: default avatarKalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20221129135446.151065-6-arend.vanspriel@broadcom.com
parent f74f1ec2
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -52,7 +52,9 @@ brcmfmac-$(CONFIG_DMI) += \
ifeq ($(CONFIG_BRCMFMAC),m)
obj-m += wcc/
obj-m += cyw/
obj-m += bca/
else
brcmfmac-$(CONFIG_BRCMFMAC) += wcc/core.o
brcmfmac-$(CONFIG_BRCMFMAC) += cyw/core.o
brcmfmac-$(CONFIG_BRCMFMAC) += bca/core.o
endif
+12 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: ISC
#
# Copyright (c) 2022 Broadcom Corporation

ccflags-y += \
	-I $(srctree)/$(src) \
	-I $(srctree)/$(src)/.. \
	-I $(srctree)/$(src)/../../include

obj-m += brcmfmac-bca.o
brcmfmac-bca-objs += \
		core.o module.o
+27 −0
Original line number Diff line number Diff line
// 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 "vops.h"

static int brcmf_bca_attach(struct brcmf_pub *drvr)
{
	pr_err("%s: executing\n", __func__);
	return 0;
}

static void brcmf_bca_detach(struct brcmf_pub *drvr)
{
	pr_err("%s: executing\n", __func__);
}

const struct brcmf_fwvid_ops brcmf_bca_ops = {
	.attach = brcmf_bca_attach,
	.detach = brcmf_bca_detach,
};
+26 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: ISC
/*
 * Copyright (c) 2022 Broadcom Corporation
 */
#include <linux/module.h>
#include <bus.h>
#include <core.h>
#include <fwvid.h>

#include "vops.h"

static int __init brcmf_bca_init(void)
{
	return brcmf_fwvid_register_vendor(BRCMF_FWVENDOR_BCA, THIS_MODULE,
					   &brcmf_bca_ops);
}

static void __exit brcmf_bca_exit(void)
{
	brcmf_fwvid_unregister_vendor(BRCMF_FWVENDOR_BCA, THIS_MODULE);
}

MODULE_LICENSE("Dual BSD/GPL");

module_init(brcmf_bca_init);
module_exit(brcmf_bca_exit);
+11 −0
Original line number Diff line number Diff line
/* SPDX-License-Identifier: ISC */
/*
 * Copyright (c) 2022 Broadcom Corporation
 */
#ifndef _BRCMFMAC_BCA_VOPS_H
#define _BRCMFMAC_BCA_VOPS_H

extern const struct brcmf_fwvid_ops brcmf_bca_ops;
#define BCA_VOPS	(&brcmf_bca_ops)

#endif /* _BRCMFMAC_BCA_VOPS_H */
Loading