linux/drivers/bluetooth/btbcm.c

// SPDX-License-Identifier: GPL-2.0-or-later
/*
 *
 *  Bluetooth support for Broadcom devices
 *
 *  Copyright (C) 2015  Intel Corporation
 */

#include <linux/efi.h>
#include <linux/module.h>
#include <linux/firmware.h>
#include <linux/dmi.h>
#include <linux/of.h>
#include <linux/string.h>
#include <asm/unaligned.h>

#include <net/bluetooth/bluetooth.h>
#include <net/bluetooth/hci_core.h>

#include "btbcm.h"

#define VERSION

#define BDADDR_BCM20702A0
#define BDADDR_BCM20702A1
#define BDADDR_BCM2076B1
#define BDADDR_BCM43430A0
#define BDADDR_BCM43430A1
#define BDADDR_BCM4324B3
#define BDADDR_BCM4330B1
#define BDADDR_BCM4334B0
#define BDADDR_BCM4345C5
#define BDADDR_BCM43341B

#define BCM_FW_NAME_LEN
#define BCM_FW_NAME_COUNT_MAX
/* For kmalloc-ing the fw-name array instead of putting it on the stack */
bcm_fw_name;

#ifdef CONFIG_EFI
static int btbcm_set_bdaddr_from_efi(struct hci_dev *hdev)
{}
#else
static int btbcm_set_bdaddr_from_efi(struct hci_dev *hdev)
{
	return -EOPNOTSUPP;
}
#endif

int btbcm_check_bdaddr(struct hci_dev *hdev)
{}
EXPORT_SYMBOL_GPL();

int btbcm_set_bdaddr(struct hci_dev *hdev, const bdaddr_t *bdaddr)
{}
EXPORT_SYMBOL_GPL();

int btbcm_read_pcm_int_params(struct hci_dev *hdev,
			      struct bcm_set_pcm_int_params *params)
{}
EXPORT_SYMBOL_GPL();

int btbcm_write_pcm_int_params(struct hci_dev *hdev,
			       const struct bcm_set_pcm_int_params *params)
{}
EXPORT_SYMBOL_GPL();

int btbcm_patchram(struct hci_dev *hdev, const struct firmware *fw)
{}
EXPORT_SYMBOL();

static int btbcm_reset(struct hci_dev *hdev)
{}

static struct sk_buff *btbcm_read_local_name(struct hci_dev *hdev)
{}

static struct sk_buff *btbcm_read_local_version(struct hci_dev *hdev)
{}

static struct sk_buff *btbcm_read_verbose_config(struct hci_dev *hdev)
{}

static struct sk_buff *btbcm_read_controller_features(struct hci_dev *hdev)
{}

static struct sk_buff *btbcm_read_usb_product(struct hci_dev *hdev)
{}

static const struct dmi_system_id disable_broken_read_transmit_power[] =;

static int btbcm_read_info(struct hci_dev *hdev)
{}

static int btbcm_print_controller_features(struct hci_dev *hdev)
{}

static int btbcm_print_local_name(struct hci_dev *hdev)
{}

struct bcm_subver_table {};

static const struct bcm_subver_table bcm_uart_subver_table[] =;

static const struct bcm_subver_table bcm_usb_subver_table[] =;

/*
 * This currently only looks up the device tree board appendix,
 * but can be expanded to other mechanisms.
 */
static const char *btbcm_get_board_name(struct device *dev)
{}

int btbcm_initialize(struct hci_dev *hdev, bool *fw_load_done, bool use_autobaud_mode)
{}
EXPORT_SYMBOL_GPL();

int btbcm_finalize(struct hci_dev *hdev, bool *fw_load_done, bool use_autobaud_mode)
{}
EXPORT_SYMBOL_GPL();

int btbcm_setup_patchram(struct hci_dev *hdev)
{}
EXPORT_SYMBOL_GPL();

int btbcm_setup_apple(struct hci_dev *hdev)
{}
EXPORT_SYMBOL_GPL();

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_VERSION();
MODULE_LICENSE();