Skip to content

Commit f0305e7

Browse files
committed
Merge tag 'for-net-next-2021-06-28' of git://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next
Luiz Augusto von Dentz says: ==================== bluetooth-next pull request for net-next: - Add support for QCA_ROME device (0cf3:e500) and RTL8822CE - Update management interface revision to 21 - Use of incluse language - Proper handling of HCI_LE_Advertising_Set_Terminated event - Recovery handing of HCI ncmd=0 - Various memory fixes ==================== Signed-off-by: David S. Miller <[email protected]>
2 parents e1289cf + 1f05361 commit f0305e7

38 files changed

+967
-581
lines changed

Documentation/devicetree/bindings/net/qualcomm-bluetooth.txt

Lines changed: 0 additions & 69 deletions
This file was deleted.
Lines changed: 183 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,183 @@
1+
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2+
%YAML 1.2
3+
---
4+
$id: http://devicetree.org/schemas/net/qualcomm-bluetooth.yaml#
5+
$schema: http://devicetree.org/meta-schemas/core.yaml#
6+
7+
title: Qualcomm Bluetooth Chips
8+
9+
maintainers:
10+
- Balakrishna Godavarthi <[email protected]>
11+
- Rocky Liao <[email protected]>
12+
13+
description:
14+
This binding describes Qualcomm UART-attached bluetooth chips.
15+
16+
properties:
17+
compatible:
18+
enum:
19+
- qcom,qca6174-bt
20+
- qcom,qca9377-bt
21+
- qcom,wcn3990-bt
22+
- qcom,wcn3991-bt
23+
- qcom,wcn3998-bt
24+
- qcom,qca6390-bt
25+
- qcom,wcn6750-bt
26+
27+
enable-gpios:
28+
maxItems: 1
29+
description: gpio specifier used to enable chip
30+
31+
swctrl-gpios:
32+
maxItems: 1
33+
description: gpio specifier is used to find status
34+
of clock supply to SoC
35+
36+
clocks:
37+
maxItems: 1
38+
description: clock provided to the controller (SUSCLK_32KHZ)
39+
40+
vddio-supply:
41+
description: VDD_IO supply regulator handle
42+
43+
vddxo-supply:
44+
description: VDD_XO supply regulator handle
45+
46+
vddrf-supply:
47+
description: VDD_RF supply regulator handle
48+
49+
vddch0-supply:
50+
description: VDD_CH0 supply regulator handle
51+
52+
vddaon-supply:
53+
description: VDD_AON supply regulator handle
54+
55+
vddbtcxmx-supply:
56+
description: VDD_BT_CXMX supply regulator handle
57+
58+
vddrfacmn-supply:
59+
description: VDD_RFA_CMN supply regulator handle
60+
61+
vddrfa0p8-supply:
62+
description: VDD_RFA_0P8 suppply regulator handle
63+
64+
vddrfa1p7-supply:
65+
description: VDD_RFA_1P7 supply regulator handle
66+
67+
vddrfa1p2-supply:
68+
description: VDD_RFA_1P2 supply regulator handle
69+
70+
vddrfa2p2-supply:
71+
description: VDD_RFA_2P2 supply regulator handle
72+
73+
vddasd-supply:
74+
description: VDD_ASD supply regulator handle
75+
76+
max-speed:
77+
description: see Documentation/devicetree/bindings/serial/serial.yaml
78+
79+
firmware-name:
80+
description: specify the name of nvm firmware to load
81+
82+
local-bd-address:
83+
description: see Documentation/devicetree/bindings/net/bluetooth.txt
84+
85+
86+
required:
87+
- compatible
88+
89+
additionalProperties: false
90+
91+
allOf:
92+
- if:
93+
properties:
94+
compatible:
95+
contains:
96+
enum:
97+
- qcom,qca6174-bt
98+
then:
99+
required:
100+
- enable-gpios
101+
- clocks
102+
103+
- if:
104+
properties:
105+
compatible:
106+
contains:
107+
enum:
108+
- qcom,wcn3990-bt
109+
- qcom,wcn3991-bt
110+
- qcom,wcn3998-bt
111+
then:
112+
required:
113+
- vddio-supply
114+
- vddxo-supply
115+
- vddrf-supply
116+
- vddch0-supply
117+
118+
- if:
119+
properties:
120+
compatible:
121+
contains:
122+
enum:
123+
- qcom,wcn6750-bt
124+
then:
125+
required:
126+
- enable-gpios
127+
- swctrl-gpios
128+
- vddio-supply
129+
- vddaon-supply
130+
- vddbtcxmx-supply
131+
- vddrfacmn-supply
132+
- vddrfa0p8-supply
133+
- vddrfa1p7-supply
134+
- vddrfa1p2-supply
135+
- vddasd-supply
136+
137+
examples:
138+
- |
139+
#include <dt-bindings/gpio/gpio.h>
140+
serial {
141+
142+
bluetooth {
143+
compatible = "qcom,qca6174-bt";
144+
enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>;
145+
clocks = <&divclk4>;
146+
firmware-name = "nvm_00440302.bin";
147+
};
148+
};
149+
- |
150+
serial {
151+
152+
bluetooth {
153+
compatible = "qcom,wcn3990-bt";
154+
vddio-supply = <&vreg_s4a_1p8>;
155+
vddxo-supply = <&vreg_l7a_1p8>;
156+
vddrf-supply = <&vreg_l17a_1p3>;
157+
vddch0-supply = <&vreg_l25a_3p3>;
158+
max-speed = <3200000>;
159+
firmware-name = "crnv21.bin";
160+
};
161+
};
162+
- |
163+
serial {
164+
165+
bluetooth {
166+
compatible = "qcom,wcn6750-bt";
167+
pinctrl-names = "default";
168+
pinctrl-0 = <&bt_en_default>;
169+
enable-gpios = <&tlmm 85 GPIO_ACTIVE_HIGH>;
170+
swctrl-gpios = <&tlmm 86 GPIO_ACTIVE_HIGH>;
171+
vddio-supply = <&vreg_l19b_1p8>;
172+
vddaon-supply = <&vreg_s7b_0p9>;
173+
vddbtcxmx-supply = <&vreg_s7b_0p9>;
174+
vddrfacmn-supply = <&vreg_s7b_0p9>;
175+
vddrfa0p8-supply = <&vreg_s7b_0p9>;
176+
vddrfa1p7-supply = <&vreg_s1b_1p8>;
177+
vddrfa1p2-supply = <&vreg_s8b_1p2>;
178+
vddrfa2p2-supply = <&vreg_s1c_2p2>;
179+
vddasd-supply = <&vreg_l11c_2p8>;
180+
max-speed = <3200000>;
181+
firmware-name = "msnv11.bin";
182+
};
183+
};

drivers/bluetooth/btbcm.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -404,6 +404,7 @@ static const struct bcm_subver_table bcm_uart_subver_table[] = {
404404
{ 0x4217, "BCM4329B1" }, /* 002.002.023 */
405405
{ 0x6106, "BCM4359C0" }, /* 003.001.006 */
406406
{ 0x4106, "BCM4335A0" }, /* 002.001.006 */
407+
{ 0x410c, "BCM43430B0" }, /* 002.001.012 */
407408
{ }
408409
};
409410

drivers/bluetooth/btmrvl_sdio.c

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1461,9 +1461,7 @@ static void btmrvl_sdio_coredump(struct device *dev)
14611461
BT_ERR("Allocated buffer not enough");
14621462
}
14631463

1464-
if (stat != RDWR_STATUS_DONE) {
1465-
continue;
1466-
} else {
1464+
if (stat == RDWR_STATUS_DONE) {
14671465
BT_INFO("%s done: size=0x%tx",
14681466
entry->mem_name,
14691467
dbg_ptr - entry->mem_ptr);

drivers/bluetooth/btmtkuart.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -581,11 +581,9 @@ static int btmtkuart_open(struct hci_dev *hdev)
581581

582582
/* Enable the power domain and clock the device requires */
583583
pm_runtime_enable(dev);
584-
err = pm_runtime_get_sync(dev);
585-
if (err < 0) {
586-
pm_runtime_put_noidle(dev);
584+
err = pm_runtime_resume_and_get(dev);
585+
if (err < 0)
587586
goto err_disable_rpm;
588-
}
589587

590588
err = clk_prepare_enable(bdev->clk);
591589
if (err < 0)

0 commit comments

Comments
 (0)