2018-09-27 09:55:34

by Al Cho

[permalink] [raw]
Subject: [PATCH] btsdio: Do not bind to non-removable BCM43430

BCM43430 devices soldered onto the PCB (non-removable)
use an UART connection for bluetooth.
But also advertise btsdio support on their 3th sdio function.

Signed-off-by: Cho, Yu-Chen <[email protected]>
---
drivers/bluetooth/btsdio.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/bluetooth/btsdio.c b/drivers/bluetooth/btsdio.c
index 20142bc77554..84d23d786ce5 100644
--- a/drivers/bluetooth/btsdio.c
+++ b/drivers/bluetooth/btsdio.c
@@ -297,7 +297,8 @@ static int btsdio_probe(struct sdio_func *func,
* uart connection for bluetooth, ignore the BT SDIO interface.
*/
if (func->vendor == SDIO_VENDOR_ID_BROADCOM &&
- func->device == SDIO_DEVICE_ID_BROADCOM_43341 &&
+ (func->device == SDIO_DEVICE_ID_BROADCOM_43341 ||
+ func->device == SDIO_DEVICE_ID_BROADCOM_43430) &&
!mmc_card_is_removable(func->card->host))
return -ENODEV;

--
2.18.0



2018-09-27 09:59:30

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH] btsdio: Do not bind to non-removable BCM43430

Hi Yu-Chen,

> BCM43430 devices soldered onto the PCB (non-removable)
> use an UART connection for bluetooth.
> But also advertise btsdio support on their 3th sdio function.
>
> Signed-off-by: Cho, Yu-Chen <[email protected]>
> ---
> drivers/bluetooth/btsdio.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/bluetooth/btsdio.c b/drivers/bluetooth/btsdio.c
> index 20142bc77554..84d23d786ce5 100644
> --- a/drivers/bluetooth/btsdio.c
> +++ b/drivers/bluetooth/btsdio.c
> @@ -297,7 +297,8 @@ static int btsdio_probe(struct sdio_func *func,
> * uart connection for bluetooth, ignore the BT SDIO interface.
> */
> if (func->vendor == SDIO_VENDOR_ID_BROADCOM &&
> - func->device == SDIO_DEVICE_ID_BROADCOM_43341 &&
> + (func->device == SDIO_DEVICE_ID_BROADCOM_43341 ||
> + func->device == SDIO_DEVICE_ID_BROADCOM_43430) &&
> !mmc_card_is_removable(func->card->host))
> return -ENODEV;

This will turn quickly unreadable. Can we turn the func->device test into a switch statement.

if (!mmc_card_is_rem.. && func->vendor == SDIO_ID..) {
switch (func->device) {
case SDIO_DEV..
return -ENODEV;
}

Regards

Marcel


2018-10-02 09:46:57

by Al Cho

[permalink] [raw]
Subject: [PATCH v2] btsdio: Do not bind to non-removable BCM43430

BCM43430 devices soldered onto the PCB (non-removable)
use an UART connection for bluetooth.
But also advertise btsdio support on their 3th sdio function.

Signed-off-by: Cho, Yu-Chen <[email protected]>
---
drivers/bluetooth/btsdio.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/bluetooth/btsdio.c b/drivers/bluetooth/btsdio.c
index 20142bc77554..a0a6d555901c 100644
--- a/drivers/bluetooth/btsdio.c
+++ b/drivers/bluetooth/btsdio.c
@@ -297,9 +297,15 @@ static int btsdio_probe(struct sdio_func *func,
* uart connection for bluetooth, ignore the BT SDIO interface.
*/
if (func->vendor == SDIO_VENDOR_ID_BROADCOM &&
- func->device == SDIO_DEVICE_ID_BROADCOM_43341 &&
- !mmc_card_is_removable(func->card->host))
- return -ENODEV;
+ !mmc_card_is_removable(func->card->host)) {
+ switch(func->device) {
+ case SDIO_DEVICE_ID_BROADCOM_43341:
+ case SDIO_DEVICE_ID_BROADCOM_43430:
+ return -ENODEV;
+ default:
+ break;
+ }
+ }

data = devm_kzalloc(&func->dev, sizeof(*data), GFP_KERNEL);
if (!data)
--
2.18.0


2018-10-02 09:59:14

by Al Cho

[permalink] [raw]
Subject: [PATCH v2] btsdio: Do not bind to non-removable BCM43430

BCM43430 devices soldered onto the PCB (non-removable)
use an UART connection for bluetooth.
But also advertise btsdio support on their 3th sdio function.

Signed-off-by: Cho, Yu-Chen <[email protected]>
---
drivers/bluetooth/btsdio.c | 12 +++++++++---
1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/drivers/bluetooth/btsdio.c b/drivers/bluetooth/btsdio.c
index 20142bc77554..b5c54053cb0f 100644
--- a/drivers/bluetooth/btsdio.c
+++ b/drivers/bluetooth/btsdio.c
@@ -297,9 +297,15 @@ static int btsdio_probe(struct sdio_func *func,
* uart connection for bluetooth, ignore the BT SDIO interface.
*/
if (func->vendor == SDIO_VENDOR_ID_BROADCOM &&
- func->device == SDIO_DEVICE_ID_BROADCOM_43341 &&
- !mmc_card_is_removable(func->card->host))
- return -ENODEV;
+ !mmc_card_is_removable(func->card->host)) {
+ switch (func->device) {
+ case SDIO_DEVICE_ID_BROADCOM_43341:
+ case SDIO_DEVICE_ID_BROADCOM_43430:
+ return -ENODEV;
+ default:
+ break;
+ }
+ }

data = devm_kzalloc(&func->dev, sizeof(*data), GFP_KERNEL);
if (!data)
--
2.18.0


2018-10-03 07:01:14

by Marcel Holtmann

[permalink] [raw]
Subject: Re: [PATCH v2] btsdio: Do not bind to non-removable BCM43430

Hi Yu-Chen,

> BCM43430 devices soldered onto the PCB (non-removable)
> use an UART connection for bluetooth.
> But also advertise btsdio support on their 3th sdio function.
>
> Signed-off-by: Cho, Yu-Chen <[email protected]>
> ---
> drivers/bluetooth/btsdio.c | 12 +++++++++---
> 1 file changed, 9 insertions(+), 3 deletions(-)

patch (with slight modifications) has been applied to bluetooth-next tree.

Regards

Marcel