cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

btrtl.h (2569B)


      1/* SPDX-License-Identifier: GPL-2.0-or-later */
      2/*
      3 *  Bluetooth support for Realtek devices
      4 *
      5 *  Copyright (C) 2015 Endless Mobile, Inc.
      6 */
      7
      8#define RTL_FRAG_LEN 252
      9
     10#define rtl_dev_err(dev, fmt, ...) bt_dev_err(dev, "RTL: " fmt, ##__VA_ARGS__)
     11#define rtl_dev_warn(dev, fmt, ...) bt_dev_warn(dev, "RTL: " fmt, ##__VA_ARGS__)
     12#define rtl_dev_info(dev, fmt, ...) bt_dev_info(dev, "RTL: " fmt, ##__VA_ARGS__)
     13#define rtl_dev_dbg(dev, fmt, ...) bt_dev_dbg(dev, "RTL: " fmt, ##__VA_ARGS__)
     14
     15struct btrtl_device_info;
     16
     17struct rtl_download_cmd {
     18	__u8 index;
     19	__u8 data[RTL_FRAG_LEN];
     20} __packed;
     21
     22struct rtl_download_response {
     23	__u8 status;
     24	__u8 index;
     25} __packed;
     26
     27struct rtl_rom_version_evt {
     28	__u8 status;
     29	__u8 version;
     30} __packed;
     31
     32struct rtl_epatch_header {
     33	__u8 signature[8];
     34	__le32 fw_version;
     35	__le16 num_patches;
     36} __packed;
     37
     38struct rtl_vendor_config_entry {
     39	__le16 offset;
     40	__u8 len;
     41	__u8 data[];
     42} __packed;
     43
     44struct rtl_vendor_config {
     45	__le32 signature;
     46	__le16 total_len;
     47	struct rtl_vendor_config_entry entry[];
     48} __packed;
     49
     50#if IS_ENABLED(CONFIG_BT_RTL)
     51
     52struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev,
     53					   const char *postfix);
     54void btrtl_free(struct btrtl_device_info *btrtl_dev);
     55int btrtl_download_firmware(struct hci_dev *hdev,
     56			    struct btrtl_device_info *btrtl_dev);
     57void btrtl_set_quirks(struct hci_dev *hdev,
     58		      struct btrtl_device_info *btrtl_dev);
     59int btrtl_setup_realtek(struct hci_dev *hdev);
     60int btrtl_shutdown_realtek(struct hci_dev *hdev);
     61int btrtl_get_uart_settings(struct hci_dev *hdev,
     62			    struct btrtl_device_info *btrtl_dev,
     63			    unsigned int *controller_baudrate,
     64			    u32 *device_baudrate, bool *flow_control);
     65
     66#else
     67
     68static inline struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev,
     69							 const char *postfix)
     70{
     71	return ERR_PTR(-EOPNOTSUPP);
     72}
     73
     74static inline void btrtl_free(struct btrtl_device_info *btrtl_dev)
     75{
     76}
     77
     78static inline int btrtl_download_firmware(struct hci_dev *hdev,
     79					  struct btrtl_device_info *btrtl_dev)
     80{
     81	return -EOPNOTSUPP;
     82}
     83
     84static inline void btrtl_set_quirks(struct hci_dev *hdev,
     85				    struct btrtl_device_info *btrtl_dev)
     86{
     87}
     88
     89static inline int btrtl_setup_realtek(struct hci_dev *hdev)
     90{
     91	return -EOPNOTSUPP;
     92}
     93
     94static inline int btrtl_shutdown_realtek(struct hci_dev *hdev)
     95{
     96	return -EOPNOTSUPP;
     97}
     98
     99static inline int btrtl_get_uart_settings(struct hci_dev *hdev,
    100					  struct btrtl_device_info *btrtl_dev,
    101					  unsigned int *controller_baudrate,
    102					  u32 *device_baudrate,
    103					  bool *flow_control)
    104{
    105	return -ENOENT;
    106}
    107
    108#endif