Linux Audio

Check our new training course

Loading...
v5.9
  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);
 57int btrtl_setup_realtek(struct hci_dev *hdev);
 58int btrtl_shutdown_realtek(struct hci_dev *hdev);
 59int btrtl_get_uart_settings(struct hci_dev *hdev,
 60			    struct btrtl_device_info *btrtl_dev,
 61			    unsigned int *controller_baudrate,
 62			    u32 *device_baudrate, bool *flow_control);
 63
 64#else
 65
 66static inline struct btrtl_device_info *btrtl_initialize(struct hci_dev *hdev,
 67							 const char *postfix)
 68{
 69	return ERR_PTR(-EOPNOTSUPP);
 70}
 71
 72static inline void btrtl_free(struct btrtl_device_info *btrtl_dev)
 73{
 74}
 75
 76static inline int btrtl_download_firmware(struct hci_dev *hdev,
 77					  struct btrtl_device_info *btrtl_dev)
 78{
 79	return -EOPNOTSUPP;
 80}
 81
 82static inline int btrtl_setup_realtek(struct hci_dev *hdev)
 83{
 84	return -EOPNOTSUPP;
 85}
 86
 87static inline int btrtl_shutdown_realtek(struct hci_dev *hdev)
 88{
 89	return -EOPNOTSUPP;
 90}
 91
 92static inline int btrtl_get_uart_settings(struct hci_dev *hdev,
 93					  struct btrtl_device_info *btrtl_dev,
 94					  unsigned int *controller_baudrate,
 95					  u32 *device_baudrate,
 96					  bool *flow_control)
 97{
 98	return -ENOENT;
 99}
100
101#endif
v4.6
 
 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
 
 
 
 
 
 
 
20struct rtl_download_cmd {
21	__u8 index;
22	__u8 data[RTL_FRAG_LEN];
23} __packed;
24
25struct rtl_download_response {
26	__u8 status;
27	__u8 index;
28} __packed;
29
30struct rtl_rom_version_evt {
31	__u8 status;
32	__u8 version;
33} __packed;
34
35struct rtl_epatch_header {
36	__u8 signature[8];
37	__le32 fw_version;
38	__le16 num_patches;
39} __packed;
40
 
 
 
 
 
 
 
 
 
 
 
 
41#if IS_ENABLED(CONFIG_BT_RTL)
42
 
 
 
 
 
43int btrtl_setup_realtek(struct hci_dev *hdev);
 
 
 
 
 
44
45#else
46
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47static inline int btrtl_setup_realtek(struct hci_dev *hdev)
48{
49	return -EOPNOTSUPP;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50}
51
52#endif