linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/5] Bluetooth: hci_bcm: Improve FW load time on CYW55572
@ 2022-06-30 12:45 Hakan Jansson
  2022-06-30 12:45 ` [PATCH v2 1/5] dt-bindings: net: broadcom-bluetooth: Add CYW55572 DT binding Hakan Jansson
                   ` (5 more replies)
  0 siblings, 6 replies; 12+ messages in thread
From: Hakan Jansson @ 2022-06-30 12:45 UTC (permalink / raw)
  Cc: Hakan Jansson, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Linus Walleij,
	netdev, devicetree, linux-kernel, Marcel Holtmann, Johan Hedberg,
	Luiz Augusto von Dentz, linux-bluetooth

These patches add an optional device specific data member to specify max
baudrate of a device when in autobaud mode. This allows the host to set a
first baudrate higher than "init speed" to improve FW load time.

The host baudrate will later be changed to "init speed" (as usual) once FW
loading is complete and the device has been reset to begin normal
operation.

Changes v1 -> v2:
- Add patch to tighten DT binding constraints after feedback in:
    https://lore.kernel.org/linux-devicetree/174363bc-e8e5-debd-f8f6-a252d2bbddb9@infineon.com/
- Add actual baud rates and example FW load time in commit message:
    https://lore.kernel.org/linux-devicetree/72cd312f-f843-6a85-b9e7-db8fcb952af8@infineon.com/

Hakan Jansson (5):
  dt-bindings: net: broadcom-bluetooth: Add CYW55572 DT binding
  dt-bindings: net: broadcom-bluetooth: Add conditional constraints
  Bluetooth: hci_bcm: Add DT compatible for CYW55572
  Bluetooth: hci_bcm: Prevent early baudrate setting in autobaud mode
  Bluetooth: hci_bcm: Increase host baudrate for CYW55572 in autobaud
    mode

 .../bindings/net/broadcom-bluetooth.yaml      | 17 +++++++++++++
 drivers/bluetooth/hci_bcm.c                   | 24 +++++++++++++------
 2 files changed, 34 insertions(+), 7 deletions(-)


base-commit: 681ec6abcd7f051f7fc318068a3ac09772ebef7e
-- 
2.25.1


^ permalink raw reply	[flat|nested] 12+ messages in thread

* [PATCH v2 1/5] dt-bindings: net: broadcom-bluetooth: Add CYW55572 DT binding
  2022-06-30 12:45 [PATCH v2 0/5] Bluetooth: hci_bcm: Improve FW load time on CYW55572 Hakan Jansson
@ 2022-06-30 12:45 ` Hakan Jansson
  2022-07-11  8:31   ` Linus Walleij
  2022-06-30 12:45 ` [PATCH v2 2/5] dt-bindings: net: broadcom-bluetooth: Add conditional constraints Hakan Jansson
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 12+ messages in thread
From: Hakan Jansson @ 2022-06-30 12:45 UTC (permalink / raw)
  Cc: Hakan Jansson, Krzysztof Kozlowski, David S. Miller,
	Eric Dumazet, Jakub Kicinski, Paolo Abeni, Rob Herring,
	Krzysztof Kozlowski, Linus Walleij, netdev, devicetree,
	linux-kernel, Marcel Holtmann, Johan Hedberg,
	Luiz Augusto von Dentz, linux-bluetooth

CYW55572 is a Wi-Fi + Bluetooth combo device from Infineon.
Extend the binding with its DT compatible.

Signed-off-by: Hakan Jansson <hakan.jansson@infineon.com>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
---
V1 -> V2:
  - No changes, submitted as part of updated patch series

 Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml b/Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml
index df59575840fe..71fe9b17f8f1 100644
--- a/Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml
+++ b/Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml
@@ -24,6 +24,7 @@ properties:
       - brcm,bcm43540-bt
       - brcm,bcm4335a0
       - brcm,bcm4349-bt
+      - infineon,cyw55572-bt
 
   shutdown-gpios:
     maxItems: 1
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 2/5] dt-bindings: net: broadcom-bluetooth: Add conditional constraints
  2022-06-30 12:45 [PATCH v2 0/5] Bluetooth: hci_bcm: Improve FW load time on CYW55572 Hakan Jansson
  2022-06-30 12:45 ` [PATCH v2 1/5] dt-bindings: net: broadcom-bluetooth: Add CYW55572 DT binding Hakan Jansson
@ 2022-06-30 12:45 ` Hakan Jansson
  2022-07-01 20:13   ` Rob Herring
  2022-07-11  8:32   ` Linus Walleij
  2022-06-30 12:45 ` [PATCH v2 3/5] Bluetooth: hci_bcm: Add DT compatible for CYW55572 Hakan Jansson
                   ` (3 subsequent siblings)
  5 siblings, 2 replies; 12+ messages in thread
From: Hakan Jansson @ 2022-06-30 12:45 UTC (permalink / raw)
  Cc: Hakan Jansson, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Linus Walleij,
	netdev, devicetree, linux-kernel, Marcel Holtmann, Johan Hedberg,
	Luiz Augusto von Dentz, linux-bluetooth

Add conditional constraint to make property "reset-gpios" available only
for compatible devices acually having the reset pin.

Make property "brcm,requires-autobaud-mode" depend on property
"shutdown-gpios" as the shutdown pin is required to enter autobaud mode.

I looked at all compatible devices and compiled the matrix below before
formulating the conditional constraint. This was a pure paper exercise and
no verification testing has been performed.

                                d
                                e
                                v h
                                i o
                                c s
                            s   e t
                            h   - -
                            u   w w       v
                            t r a a     v d
                            d e k k     b d
                            o s e e     a i
                            w e u u     t o
                            n t p p     - -
                            - - - -     s s
                            g g g g     u u
                            p p p p t   p p
                            i i i i x l p p
                            o o o o c p l l
                            s s s s o o y y
    ---------------------------------------
    brcm,bcm20702a1         X X X X X X X X
    brcm,bcm4329-bt         X X X X X X X X
    brcm,bcm4330-bt         X X X X X X X X
    brcm,bcm4334-bt         X - X X X X X X
    brcm,bcm43438-bt        X - X X X X X X
    brcm,bcm4345c5          X - X X X X X X
    brcm,bcm43540-bt        X - X X X X X X
    brcm,bcm4335a0          X - X X X X X X
    brcm,bcm4349-bt         X - X X X X X X
    infineon,cyw55572-bt    X - X X X X X X

Signed-off-by: Hakan Jansson <hakan.jansson@infineon.com>
---
V1 -> V2:
  - New patch added to series

 .../bindings/net/broadcom-bluetooth.yaml         | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml b/Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml
index 71fe9b17f8f1..445b2a553625 100644
--- a/Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml
+++ b/Documentation/devicetree/bindings/net/broadcom-bluetooth.yaml
@@ -117,6 +117,22 @@ properties:
 required:
   - compatible
 
+dependencies:
+  brcm,requires-autobaud-mode: [ 'shutdown-gpios' ]
+
+if:
+  not:
+    properties:
+      compatible:
+        contains:
+          enum:
+            - brcm,bcm20702a1
+            - brcm,bcm4329-bt
+            - brcm,bcm4330-bt
+then:
+  properties:
+    reset-gpios: false
+
 additionalProperties: false
 
 examples:
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 3/5] Bluetooth: hci_bcm: Add DT compatible for CYW55572
  2022-06-30 12:45 [PATCH v2 0/5] Bluetooth: hci_bcm: Improve FW load time on CYW55572 Hakan Jansson
  2022-06-30 12:45 ` [PATCH v2 1/5] dt-bindings: net: broadcom-bluetooth: Add CYW55572 DT binding Hakan Jansson
  2022-06-30 12:45 ` [PATCH v2 2/5] dt-bindings: net: broadcom-bluetooth: Add conditional constraints Hakan Jansson
@ 2022-06-30 12:45 ` Hakan Jansson
  2022-07-11  8:33   ` Linus Walleij
  2022-06-30 12:45 ` [PATCH v2 4/5] Bluetooth: hci_bcm: Prevent early baudrate setting in autobaud mode Hakan Jansson
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 12+ messages in thread
From: Hakan Jansson @ 2022-06-30 12:45 UTC (permalink / raw)
  Cc: Hakan Jansson, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Linus Walleij,
	netdev, devicetree, linux-kernel, Marcel Holtmann, Johan Hedberg,
	Luiz Augusto von Dentz, linux-bluetooth

CYW55572 is a Wi-Fi + Bluetooth combo device from Infineon.

Signed-off-by: Hakan Jansson <hakan.jansson@infineon.com>
---
V1 -> V2:
  - No changes, submitted as part of updated patch series

 drivers/bluetooth/hci_bcm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c
index 6f834ff1b44b..9a129867a4c0 100644
--- a/drivers/bluetooth/hci_bcm.c
+++ b/drivers/bluetooth/hci_bcm.c
@@ -1557,6 +1557,7 @@ static const struct of_device_id bcm_bluetooth_of_match[] = {
 	{ .compatible = "brcm,bcm4349-bt", .data = &bcm43438_device_data },
 	{ .compatible = "brcm,bcm43540-bt", .data = &bcm4354_device_data },
 	{ .compatible = "brcm,bcm4335a0" },
+	{ .compatible = "infineon,cyw55572-bt" },
 	{ },
 };
 MODULE_DEVICE_TABLE(of, bcm_bluetooth_of_match);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 4/5] Bluetooth: hci_bcm: Prevent early baudrate setting in autobaud mode
  2022-06-30 12:45 [PATCH v2 0/5] Bluetooth: hci_bcm: Improve FW load time on CYW55572 Hakan Jansson
                   ` (2 preceding siblings ...)
  2022-06-30 12:45 ` [PATCH v2 3/5] Bluetooth: hci_bcm: Add DT compatible for CYW55572 Hakan Jansson
@ 2022-06-30 12:45 ` Hakan Jansson
  2022-06-30 12:53 ` [PATCH v2 5/5] Bluetooth: hci_bcm: Increase host baudrate for CYW55572 " Hakan Jansson
  2022-07-20 16:20 ` [PATCH v2 0/5] Bluetooth: hci_bcm: Improve FW load time on CYW55572 patchwork-bot+bluetooth
  5 siblings, 0 replies; 12+ messages in thread
From: Hakan Jansson @ 2022-06-30 12:45 UTC (permalink / raw)
  Cc: Hakan Jansson, Linus Walleij, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Rob Herring, Krzysztof Kozlowski,
	netdev, devicetree, linux-kernel, Marcel Holtmann, Johan Hedberg,
	Luiz Augusto von Dentz, linux-bluetooth

Always prevent trying to set device baudrate before calling setup() when
using autobaud mode.

This was previously happening for devices which had device specific data
with member no_early_set_baudrate set to 0.

Signed-off-by: Hakan Jansson <hakan.jansson@infineon.com>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
---
V1 -> V2:
  - No changes, submitted as part of updated patch series

 drivers/bluetooth/hci_bcm.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c
index 9a129867a4c0..0ae627c293c5 100644
--- a/drivers/bluetooth/hci_bcm.c
+++ b/drivers/bluetooth/hci_bcm.c
@@ -484,7 +484,7 @@ static int bcm_open(struct hci_uart *hu)
 		/* If oper_speed is set, ldisc/serdev will set the baudrate
 		 * before calling setup()
 		 */
-		if (!bcm->dev->no_early_set_baudrate)
+		if (!bcm->dev->no_early_set_baudrate && !bcm->dev->use_autobaud_mode)
 			hu->oper_speed = bcm->dev->oper_speed;
 
 		err = bcm_gpio_set_power(bcm->dev, true);
@@ -1204,9 +1204,6 @@ static int bcm_of_probe(struct bcm_device *bdev)
 {
 	bdev->use_autobaud_mode = device_property_read_bool(bdev->dev,
 							    "brcm,requires-autobaud-mode");
-	if (bdev->use_autobaud_mode)
-		bdev->no_early_set_baudrate = true;
-
 	device_property_read_u32(bdev->dev, "max-speed", &bdev->oper_speed);
 	device_property_read_u8_array(bdev->dev, "brcm,bt-pcm-int-params",
 				      bdev->pcm_int_params, 5);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* [PATCH v2 5/5] Bluetooth: hci_bcm: Increase host baudrate for CYW55572 in autobaud mode
  2022-06-30 12:45 [PATCH v2 0/5] Bluetooth: hci_bcm: Improve FW load time on CYW55572 Hakan Jansson
                   ` (3 preceding siblings ...)
  2022-06-30 12:45 ` [PATCH v2 4/5] Bluetooth: hci_bcm: Prevent early baudrate setting in autobaud mode Hakan Jansson
@ 2022-06-30 12:53 ` Hakan Jansson
  2022-07-11  8:34   ` Linus Walleij
  2022-07-20 16:20 ` [PATCH v2 0/5] Bluetooth: hci_bcm: Improve FW load time on CYW55572 patchwork-bot+bluetooth
  5 siblings, 1 reply; 12+ messages in thread
From: Hakan Jansson @ 2022-06-30 12:53 UTC (permalink / raw)
  Cc: Hakan Jansson, David S. Miller, Eric Dumazet, Jakub Kicinski,
	Paolo Abeni, Rob Herring, Krzysztof Kozlowski, Linus Walleij,
	netdev, devicetree, linux-kernel, Marcel Holtmann, Johan Hedberg,
	Luiz Augusto von Dentz, linux-bluetooth

Add device specific data for max baudrate in autobaud mode. This allows the
host to use a baudrate higher than "init speed" when loading FW in autobaud
mode.

The device specific max baudrate in autobaud mode for CYW55572 is set to
921600 bps. Devices without device specific max baudrate in autobaud mode
will use init speed as before. If no device specific init speed has been
specified, it will default to the bcm_proto default 115200 bps.

The increased baud rate improves FW load time. The exact load time will
depend on the specific system and FW being used. As a rough indication,
the FW load time dropped from ~9s @ 115.2kbps to ~1.7s @ 921.6kbps in one
test.

Signed-off-by: Hakan Jansson <hakan.jansson@infineon.com>
---
V1 -> V2:
  - Add actual baud rates and example FW load time in commit message

 drivers/bluetooth/hci_bcm.c | 20 ++++++++++++++++----
 1 file changed, 16 insertions(+), 4 deletions(-)

diff --git a/drivers/bluetooth/hci_bcm.c b/drivers/bluetooth/hci_bcm.c
index 0ae627c293c5..d7e0b75db8a6 100644
--- a/drivers/bluetooth/hci_bcm.c
+++ b/drivers/bluetooth/hci_bcm.c
@@ -53,10 +53,12 @@
  * struct bcm_device_data - device specific data
  * @no_early_set_baudrate: Disallow set baudrate before driver setup()
  * @drive_rts_on_open: drive RTS signal on ->open() when platform requires it
+ * @max_autobaud_speed: max baudrate supported by device in autobaud mode
  */
 struct bcm_device_data {
 	bool	no_early_set_baudrate;
 	bool	drive_rts_on_open;
+	u32	max_autobaud_speed;
 };
 
 /**
@@ -100,6 +102,7 @@ struct bcm_device_data {
  * @drive_rts_on_open: drive RTS signal on ->open() when platform requires it
  * @pcm_int_params: keep the initial PCM configuration
  * @use_autobaud_mode: start Bluetooth device in autobaud mode
+ * @max_autobaud_speed: max baudrate supported by device in autobaud mode
  */
 struct bcm_device {
 	/* Must be the first member, hci_serdev.c expects this. */
@@ -139,6 +142,7 @@ struct bcm_device {
 	bool			drive_rts_on_open;
 	bool			use_autobaud_mode;
 	u8			pcm_int_params[5];
+	u32			max_autobaud_speed;
 };
 
 /* generic bcm uart resources */
@@ -479,7 +483,10 @@ static int bcm_open(struct hci_uart *hu)
 		else if (bcm->dev->drive_rts_on_open)
 			hci_uart_set_flow_control(hu, true);
 
-		hu->init_speed = bcm->dev->init_speed;
+		if (bcm->dev->use_autobaud_mode && bcm->dev->max_autobaud_speed)
+			hu->init_speed = min(bcm->dev->oper_speed, bcm->dev->max_autobaud_speed);
+		else
+			hu->init_speed = bcm->dev->init_speed;
 
 		/* If oper_speed is set, ldisc/serdev will set the baudrate
 		 * before calling setup()
@@ -585,8 +592,8 @@ static int bcm_setup(struct hci_uart *hu)
 		return 0;
 
 	/* Init speed if any */
-	if (hu->init_speed)
-		speed = hu->init_speed;
+	if (bcm->dev && bcm->dev->init_speed)
+		speed = bcm->dev->init_speed;
 	else if (hu->proto->init_speed)
 		speed = hu->proto->init_speed;
 	else
@@ -1519,6 +1526,7 @@ static int bcm_serdev_probe(struct serdev_device *serdev)
 
 	data = device_get_match_data(bcmdev->dev);
 	if (data) {
+		bcmdev->max_autobaud_speed = data->max_autobaud_speed;
 		bcmdev->no_early_set_baudrate = data->no_early_set_baudrate;
 		bcmdev->drive_rts_on_open = data->drive_rts_on_open;
 	}
@@ -1542,6 +1550,10 @@ static struct bcm_device_data bcm43438_device_data = {
 	.drive_rts_on_open = true,
 };
 
+static struct bcm_device_data cyw55572_device_data = {
+	.max_autobaud_speed = 921600,
+};
+
 static const struct of_device_id bcm_bluetooth_of_match[] = {
 	{ .compatible = "brcm,bcm20702a1" },
 	{ .compatible = "brcm,bcm4329-bt" },
@@ -1554,7 +1566,7 @@ static const struct of_device_id bcm_bluetooth_of_match[] = {
 	{ .compatible = "brcm,bcm4349-bt", .data = &bcm43438_device_data },
 	{ .compatible = "brcm,bcm43540-bt", .data = &bcm4354_device_data },
 	{ .compatible = "brcm,bcm4335a0" },
-	{ .compatible = "infineon,cyw55572-bt" },
+	{ .compatible = "infineon,cyw55572-bt", .data = &cyw55572_device_data },
 	{ },
 };
 MODULE_DEVICE_TABLE(of, bcm_bluetooth_of_match);
-- 
2.25.1


^ permalink raw reply related	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 2/5] dt-bindings: net: broadcom-bluetooth: Add conditional constraints
  2022-06-30 12:45 ` [PATCH v2 2/5] dt-bindings: net: broadcom-bluetooth: Add conditional constraints Hakan Jansson
@ 2022-07-01 20:13   ` Rob Herring
  2022-07-11  8:32   ` Linus Walleij
  1 sibling, 0 replies; 12+ messages in thread
From: Rob Herring @ 2022-07-01 20:13 UTC (permalink / raw)
  To: Hakan Jansson
  Cc: devicetree, linux-kernel, Rob Herring, Eric Dumazet,
	Johan Hedberg, Linus Walleij, Krzysztof Kozlowski,
	Luiz Augusto von Dentz, netdev, linux-bluetooth, Marcel Holtmann,
	David S. Miller, Jakub Kicinski, Paolo Abeni

On Thu, 30 Jun 2022 14:45:21 +0200, Hakan Jansson wrote:
> Add conditional constraint to make property "reset-gpios" available only
> for compatible devices acually having the reset pin.
> 
> Make property "brcm,requires-autobaud-mode" depend on property
> "shutdown-gpios" as the shutdown pin is required to enter autobaud mode.
> 
> I looked at all compatible devices and compiled the matrix below before
> formulating the conditional constraint. This was a pure paper exercise and
> no verification testing has been performed.
> 
>                                 d
>                                 e
>                                 v h
>                                 i o
>                                 c s
>                             s   e t
>                             h   - -
>                             u   w w       v
>                             t r a a     v d
>                             d e k k     b d
>                             o s e e     a i
>                             w e u u     t o
>                             n t p p     - -
>                             - - - -     s s
>                             g g g g     u u
>                             p p p p t   p p
>                             i i i i x l p p
>                             o o o o c p l l
>                             s s s s o o y y
>     ---------------------------------------
>     brcm,bcm20702a1         X X X X X X X X
>     brcm,bcm4329-bt         X X X X X X X X
>     brcm,bcm4330-bt         X X X X X X X X
>     brcm,bcm4334-bt         X - X X X X X X
>     brcm,bcm43438-bt        X - X X X X X X
>     brcm,bcm4345c5          X - X X X X X X
>     brcm,bcm43540-bt        X - X X X X X X
>     brcm,bcm4335a0          X - X X X X X X
>     brcm,bcm4349-bt         X - X X X X X X
>     infineon,cyw55572-bt    X - X X X X X X
> 
> Signed-off-by: Hakan Jansson <hakan.jansson@infineon.com>
> ---
> V1 -> V2:
>   - New patch added to series
> 
>  .../bindings/net/broadcom-bluetooth.yaml         | 16 ++++++++++++++++
>  1 file changed, 16 insertions(+)
> 

Reviewed-by: Rob Herring <robh@kernel.org>

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 1/5] dt-bindings: net: broadcom-bluetooth: Add CYW55572 DT binding
  2022-06-30 12:45 ` [PATCH v2 1/5] dt-bindings: net: broadcom-bluetooth: Add CYW55572 DT binding Hakan Jansson
@ 2022-07-11  8:31   ` Linus Walleij
  0 siblings, 0 replies; 12+ messages in thread
From: Linus Walleij @ 2022-07-11  8:31 UTC (permalink / raw)
  To: Hakan Jansson
  Cc: Krzysztof Kozlowski, David S. Miller, Eric Dumazet,
	Jakub Kicinski, Paolo Abeni, Rob Herring, Krzysztof Kozlowski,
	netdev, devicetree, linux-kernel, Marcel Holtmann, Johan Hedberg,
	Luiz Augusto von Dentz, linux-bluetooth

On Thu, Jun 30, 2022 at 2:46 PM Hakan Jansson
<hakan.jansson@infineon.com> wrote:

> CYW55572 is a Wi-Fi + Bluetooth combo device from Infineon.
> Extend the binding with its DT compatible.
>
> Signed-off-by: Hakan Jansson <hakan.jansson@infineon.com>
> Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 2/5] dt-bindings: net: broadcom-bluetooth: Add conditional constraints
  2022-06-30 12:45 ` [PATCH v2 2/5] dt-bindings: net: broadcom-bluetooth: Add conditional constraints Hakan Jansson
  2022-07-01 20:13   ` Rob Herring
@ 2022-07-11  8:32   ` Linus Walleij
  1 sibling, 0 replies; 12+ messages in thread
From: Linus Walleij @ 2022-07-11  8:32 UTC (permalink / raw)
  To: Hakan Jansson
  Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Rob Herring, Krzysztof Kozlowski, netdev, devicetree,
	linux-kernel, Marcel Holtmann, Johan Hedberg,
	Luiz Augusto von Dentz, linux-bluetooth

On Thu, Jun 30, 2022 at 2:46 PM Hakan Jansson
<hakan.jansson@infineon.com> wrote:

> Add conditional constraint to make property "reset-gpios" available only
> for compatible devices acually having the reset pin.
>
> Make property "brcm,requires-autobaud-mode" depend on property
> "shutdown-gpios" as the shutdown pin is required to enter autobaud mode.
>
> I looked at all compatible devices and compiled the matrix below before
> formulating the conditional constraint. This was a pure paper exercise and
> no verification testing has been performed.
>
>                                 d
>                                 e
>                                 v h
>                                 i o
>                                 c s
>                             s   e t
>                             h   - -
>                             u   w w       v
>                             t r a a     v d
>                             d e k k     b d
>                             o s e e     a i
>                             w e u u     t o
>                             n t p p     - -
>                             - - - -     s s
>                             g g g g     u u
>                             p p p p t   p p
>                             i i i i x l p p
>                             o o o o c p l l
>                             s s s s o o y y
>     ---------------------------------------
>     brcm,bcm20702a1         X X X X X X X X
>     brcm,bcm4329-bt         X X X X X X X X
>     brcm,bcm4330-bt         X X X X X X X X
>     brcm,bcm4334-bt         X - X X X X X X
>     brcm,bcm43438-bt        X - X X X X X X
>     brcm,bcm4345c5          X - X X X X X X
>     brcm,bcm43540-bt        X - X X X X X X
>     brcm,bcm4335a0          X - X X X X X X
>     brcm,bcm4349-bt         X - X X X X X X
>     infineon,cyw55572-bt    X - X X X X X X
>
> Signed-off-by: Hakan Jansson <hakan.jansson@infineon.com>

A job well done!
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 3/5] Bluetooth: hci_bcm: Add DT compatible for CYW55572
  2022-06-30 12:45 ` [PATCH v2 3/5] Bluetooth: hci_bcm: Add DT compatible for CYW55572 Hakan Jansson
@ 2022-07-11  8:33   ` Linus Walleij
  0 siblings, 0 replies; 12+ messages in thread
From: Linus Walleij @ 2022-07-11  8:33 UTC (permalink / raw)
  To: Hakan Jansson
  Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Rob Herring, Krzysztof Kozlowski, netdev, devicetree,
	linux-kernel, Marcel Holtmann, Johan Hedberg,
	Luiz Augusto von Dentz, linux-bluetooth

On Thu, Jun 30, 2022 at 2:46 PM Hakan Jansson
<hakan.jansson@infineon.com> wrote:

> CYW55572 is a Wi-Fi + Bluetooth combo device from Infineon.
>
> Signed-off-by: Hakan Jansson <hakan.jansson@infineon.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 5/5] Bluetooth: hci_bcm: Increase host baudrate for CYW55572 in autobaud mode
  2022-06-30 12:53 ` [PATCH v2 5/5] Bluetooth: hci_bcm: Increase host baudrate for CYW55572 " Hakan Jansson
@ 2022-07-11  8:34   ` Linus Walleij
  0 siblings, 0 replies; 12+ messages in thread
From: Linus Walleij @ 2022-07-11  8:34 UTC (permalink / raw)
  To: Hakan Jansson
  Cc: David S. Miller, Eric Dumazet, Jakub Kicinski, Paolo Abeni,
	Rob Herring, Krzysztof Kozlowski, netdev, devicetree,
	linux-kernel, Marcel Holtmann, Johan Hedberg,
	Luiz Augusto von Dentz, linux-bluetooth

On Thu, Jun 30, 2022 at 2:55 PM Hakan Jansson
<hakan.jansson@infineon.com> wrote:

> Add device specific data for max baudrate in autobaud mode. This allows the
> host to use a baudrate higher than "init speed" when loading FW in autobaud
> mode.
>
> The device specific max baudrate in autobaud mode for CYW55572 is set to
> 921600 bps. Devices without device specific max baudrate in autobaud mode
> will use init speed as before. If no device specific init speed has been
> specified, it will default to the bcm_proto default 115200 bps.
>
> The increased baud rate improves FW load time. The exact load time will
> depend on the specific system and FW being used. As a rough indication,
> the FW load time dropped from ~9s @ 115.2kbps to ~1.7s @ 921.6kbps in one
> test.
>
> Signed-off-by: Hakan Jansson <hakan.jansson@infineon.com>

Reviewed-by: Linus Walleij <linus.walleij@linaro.org>

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 12+ messages in thread

* Re: [PATCH v2 0/5] Bluetooth: hci_bcm: Improve FW load time on CYW55572
  2022-06-30 12:45 [PATCH v2 0/5] Bluetooth: hci_bcm: Improve FW load time on CYW55572 Hakan Jansson
                   ` (4 preceding siblings ...)
  2022-06-30 12:53 ` [PATCH v2 5/5] Bluetooth: hci_bcm: Increase host baudrate for CYW55572 " Hakan Jansson
@ 2022-07-20 16:20 ` patchwork-bot+bluetooth
  5 siblings, 0 replies; 12+ messages in thread
From: patchwork-bot+bluetooth @ 2022-07-20 16:20 UTC (permalink / raw)
  To: Hakan Jansson
  Cc: davem, edumazet, kuba, pabeni, robh+dt, krzysztof.kozlowski+dt,
	linus.walleij, netdev, devicetree, linux-kernel, marcel,
	johan.hedberg, luiz.dentz, linux-bluetooth

Hello:

This series was applied to bluetooth/bluetooth-next.git (master)
by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>:

On Thu, 30 Jun 2022 14:45:19 +0200 you wrote:
> These patches add an optional device specific data member to specify max
> baudrate of a device when in autobaud mode. This allows the host to set a
> first baudrate higher than "init speed" to improve FW load time.
> 
> The host baudrate will later be changed to "init speed" (as usual) once FW
> loading is complete and the device has been reset to begin normal
> operation.
> 
> [...]

Here is the summary with links:
  - [v2,1/5] dt-bindings: net: broadcom-bluetooth: Add CYW55572 DT binding
    https://git.kernel.org/bluetooth/bluetooth-next/c/c6480829cda7
  - [v2,2/5] dt-bindings: net: broadcom-bluetooth: Add conditional constraints
    https://git.kernel.org/bluetooth/bluetooth-next/c/f5d25901c5cc
  - [v2,3/5] Bluetooth: hci_bcm: Add DT compatible for CYW55572
    https://git.kernel.org/bluetooth/bluetooth-next/c/7386459d24b3
  - [v2,4/5] Bluetooth: hci_bcm: Prevent early baudrate setting in autobaud mode
    https://git.kernel.org/bluetooth/bluetooth-next/c/31e65c6d44a2
  - [v2,5/5] Bluetooth: hci_bcm: Increase host baudrate for CYW55572 in autobaud mode
    https://git.kernel.org/bluetooth/bluetooth-next/c/719a11a62d19

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



^ permalink raw reply	[flat|nested] 12+ messages in thread

end of thread, other threads:[~2022-07-20 16:20 UTC | newest]

Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-06-30 12:45 [PATCH v2 0/5] Bluetooth: hci_bcm: Improve FW load time on CYW55572 Hakan Jansson
2022-06-30 12:45 ` [PATCH v2 1/5] dt-bindings: net: broadcom-bluetooth: Add CYW55572 DT binding Hakan Jansson
2022-07-11  8:31   ` Linus Walleij
2022-06-30 12:45 ` [PATCH v2 2/5] dt-bindings: net: broadcom-bluetooth: Add conditional constraints Hakan Jansson
2022-07-01 20:13   ` Rob Herring
2022-07-11  8:32   ` Linus Walleij
2022-06-30 12:45 ` [PATCH v2 3/5] Bluetooth: hci_bcm: Add DT compatible for CYW55572 Hakan Jansson
2022-07-11  8:33   ` Linus Walleij
2022-06-30 12:45 ` [PATCH v2 4/5] Bluetooth: hci_bcm: Prevent early baudrate setting in autobaud mode Hakan Jansson
2022-06-30 12:53 ` [PATCH v2 5/5] Bluetooth: hci_bcm: Increase host baudrate for CYW55572 " Hakan Jansson
2022-07-11  8:34   ` Linus Walleij
2022-07-20 16:20 ` [PATCH v2 0/5] Bluetooth: hci_bcm: Improve FW load time on CYW55572 patchwork-bot+bluetooth

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).