Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v4.20 105 lines 2.7 kB view raw
1/* 2 * Bluetooth support for Realtek devices 3 * 4 * Copyright (C) 2015 Endless Mobile, Inc. 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or 9 * (at your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 * GNU General Public License for more details. 15 * 16 */ 17 18#define RTL_FRAG_LEN 252 19 20#define rtl_dev_err(dev, fmt, ...) bt_dev_err(dev, "RTL: " fmt, ##__VA_ARGS__) 21#define rtl_dev_warn(dev, fmt, ...) bt_dev_warn(dev, "RTL: " fmt, ##__VA_ARGS__) 22#define rtl_dev_info(dev, fmt, ...) bt_dev_info(dev, "RTL: " fmt, ##__VA_ARGS__) 23#define rtl_dev_dbg(dev, fmt, ...) bt_dev_dbg(dev, "RTL: " fmt, ##__VA_ARGS__) 24 25struct btrtl_device_info; 26 27struct rtl_download_cmd { 28 __u8 index; 29 __u8 data[RTL_FRAG_LEN]; 30} __packed; 31 32struct rtl_download_response { 33 __u8 status; 34 __u8 index; 35} __packed; 36 37struct rtl_rom_version_evt { 38 __u8 status; 39 __u8 version; 40} __packed; 41 42struct rtl_epatch_header { 43 __u8 signature[8]; 44 __le32 fw_version; 45 __le16 num_patches; 46} __packed; 47 48struct rtl_vendor_config_entry { 49 __le16 offset; 50 __u8 len; 51 __u8 data[0]; 52} __packed; 53 54struct rtl_vendor_config { 55 __le32 signature; 56 __le16 total_len; 57 struct rtl_vendor_config_entry entry[0]; 58} __packed; 59 60#if IS_ENABLED(CONFIG_BT_RTL) 61 62struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev, 63 const char *postfix); 64void btrtl_free(struct btrtl_device_info *btrtl_dev); 65int btrtl_download_firmware(struct hci_dev *hdev, 66 struct btrtl_device_info *btrtl_dev); 67int btrtl_setup_realtek(struct hci_dev *hdev); 68int btrtl_get_uart_settings(struct hci_dev *hdev, 69 struct btrtl_device_info *btrtl_dev, 70 unsigned int *controller_baudrate, 71 u32 *device_baudrate, bool *flow_control); 72 73#else 74 75static inline struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev, 76 const char *postfix) 77{ 78 return ERR_PTR(-EOPNOTSUPP); 79} 80 81static inline void btrtl_free(struct btrtl_device_info *btrtl_dev) 82{ 83} 84 85static inline int btrtl_download_firmware(struct hci_dev *hdev, 86 struct btrtl_device_info *btrtl_dev) 87{ 88 return -EOPNOTSUPP; 89} 90 91static inline int btrtl_setup_realtek(struct hci_dev *hdev) 92{ 93 return -EOPNOTSUPP; 94} 95 96static inline int btrtl_get_uart_settings(struct hci_dev *hdev, 97 struct btrtl_device_info *btrtl_dev, 98 unsigned int *controller_baudrate, 99 u32 *device_baudrate, 100 bool *flow_control) 101{ 102 return -ENOENT; 103} 104 105#endif