diff mbox

brcmfmac: Add support for bcm43364 wireless chipset

Message ID 1525416503-832-1-git-send-email-sean@lano.id.au (mailing list archive)
State New, archived
Headers show

Commit Message

Sean Lanigan May 4, 2018, 6:48 a.m. UTC
Add support for the BCM43364 chipset via an SDIO interface, as used in 
e.g. the Murata 1FX module. 

The BCM43364 uses the same firmware as the BCM43430 (which is already 
included), the only difference is the omission of Bluetooth. 

However, the SDIO_ID for the BCM43364 is 02D0:A9A4, giving it a MODALIAS 
of sdio:c00v02D0dA9A4, which doesn't get recognised and hence doesn't 
load the brcmfmac module. Adding the 'A9A4' ID in the appropriate place 
triggers the brcmfmac driver to load, and then correctly use the 
firmware file 'brcmfmac43430-sdio.bin'. 


Signed-off-by: Sean Lanigan <sean@lano.id.au>
---
 drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 1 +
 include/linux/mmc/sdio_ids.h                              | 1 +
 2 files changed, 2 insertions(+)

Comments

Ulf Hansson May 8, 2018, 7:58 a.m. UTC | #1
On 4 May 2018 at 08:48, Sean Lanigan <sean@lano.id.au> wrote:
> Add support for the BCM43364 chipset via an SDIO interface, as used in
> e.g. the Murata 1FX module.
>
> The BCM43364 uses the same firmware as the BCM43430 (which is already
> included), the only difference is the omission of Bluetooth.
>
> However, the SDIO_ID for the BCM43364 is 02D0:A9A4, giving it a MODALIAS
> of sdio:c00v02D0dA9A4, which doesn't get recognised and hence doesn't
> load the brcmfmac module. Adding the 'A9A4' ID in the appropriate place
> triggers the brcmfmac driver to load, and then correctly use the
> firmware file 'brcmfmac43430-sdio.bin'.
>
>
> Signed-off-by: Sean Lanigan <sean@lano.id.au>

Acked-by: Ulf Hansson <ulf.hansson@linaro.org>

Arend, I assume you want to pick this up? If not, just tell and I can do it.

Kind regards
Uffe

> ---
>  drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c | 1 +
>  include/linux/mmc/sdio_ids.h                              | 1 +
>  2 files changed, 2 insertions(+)
>
> diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> index 0b68240..4648a3d 100644
> --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
> @@ -963,6 +963,7 @@ static const struct sdio_device_id brcmf_sdmmc_ids[] = {
>         BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43340),
>         BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43341),
>         BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43362),
> +       BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43364),
>         BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4335_4339),
>         BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4339),
>         BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43430),
> diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h
> index cdd66a5..0a7abe8 100644
> --- a/include/linux/mmc/sdio_ids.h
> +++ b/include/linux/mmc/sdio_ids.h
> @@ -35,6 +35,7 @@
>  #define SDIO_DEVICE_ID_BROADCOM_4335_4339      0x4335
>  #define SDIO_DEVICE_ID_BROADCOM_4339           0x4339
>  #define SDIO_DEVICE_ID_BROADCOM_43362          0xa962
> +#define SDIO_DEVICE_ID_BROADCOM_43364          0xa9a4
>  #define SDIO_DEVICE_ID_BROADCOM_43430          0xa9a6
>  #define SDIO_DEVICE_ID_BROADCOM_4345           0x4345
>  #define SDIO_DEVICE_ID_BROADCOM_43455          0xa9bf
> --
> 2.7.4
>
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Arend Van Spriel May 8, 2018, 12:11 p.m. UTC | #2
+ Kalle (explicitly)

On 5/8/2018 9:58 AM, Ulf Hansson wrote:
> On 4 May 2018 at 08:48, Sean Lanigan <sean@lano.id.au> wrote:
>> Add support for the BCM43364 chipset via an SDIO interface, as used in
>> e.g. the Murata 1FX module.
>>
>> The BCM43364 uses the same firmware as the BCM43430 (which is already
>> included), the only difference is the omission of Bluetooth.
>>
>> However, the SDIO_ID for the BCM43364 is 02D0:A9A4, giving it a MODALIAS
>> of sdio:c00v02D0dA9A4, which doesn't get recognised and hence doesn't
>> load the brcmfmac module. Adding the 'A9A4' ID in the appropriate place
>> triggers the brcmfmac driver to load, and then correctly use the
>> firmware file 'brcmfmac43430-sdio.bin'.
>>
>>
>> Signed-off-by: Sean Lanigan <sean@lano.id.au>
>
> Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
>
> Arend, I assume you want to pick this up? If not, just tell and I can do it.

Not necessarily. I let Kalle do the leg work ;-) Given the change I do 
not expect any conflict so we can go either way with a slight preference 
for wl-drivers-next. Kalle?

Regards,
Arend
--
To unsubscribe from this list: send the line "unsubscribe linux-mmc" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Kalle Valo May 8, 2018, 12:51 p.m. UTC | #3
Arend van Spriel <arend.vanspriel@broadcom.com> writes:

> + Kalle (explicitly)
>
> On 5/8/2018 9:58 AM, Ulf Hansson wrote:
>> On 4 May 2018 at 08:48, Sean Lanigan <sean@lano.id.au> wrote:
>>> Add support for the BCM43364 chipset via an SDIO interface, as used in
>>> e.g. the Murata 1FX module.
>>>
>>> The BCM43364 uses the same firmware as the BCM43430 (which is already
>>> included), the only difference is the omission of Bluetooth.
>>>
>>> However, the SDIO_ID for the BCM43364 is 02D0:A9A4, giving it a MODALIAS
>>> of sdio:c00v02D0dA9A4, which doesn't get recognised and hence doesn't
>>> load the brcmfmac module. Adding the 'A9A4' ID in the appropriate place
>>> triggers the brcmfmac driver to load, and then correctly use the
>>> firmware file 'brcmfmac43430-sdio.bin'.
>>>
>>>
>>> Signed-off-by: Sean Lanigan <sean@lano.id.au>
>>
>> Acked-by: Ulf Hansson <ulf.hansson@linaro.org>
>>
>> Arend, I assume you want to pick this up? If not, just tell and I can do it.
>
> Not necessarily. I let Kalle do the leg work ;-) Given the change I do
> not expect any conflict so we can go either way with a slight
> preference for wl-drivers-next. Kalle?

Yeah, I would like to take this to wireless-drivers-next. Less conflicts
that way.
Kalle Valo May 9, 2018, 10:25 a.m. UTC | #4
Sean Lanigan <sean@lano.id.au> wrote:

> Add support for the BCM43364 chipset via an SDIO interface, as used in 
> e.g. the Murata 1FX module. 
> 
> The BCM43364 uses the same firmware as the BCM43430 (which is already 
> included), the only difference is the omission of Bluetooth. 
> 
> However, the SDIO_ID for the BCM43364 is 02D0:A9A4, giving it a MODALIAS 
> of sdio:c00v02D0dA9A4, which doesn't get recognised and hence doesn't 
> load the brcmfmac module. Adding the 'A9A4' ID in the appropriate place 
> triggers the brcmfmac driver to load, and then correctly use the 
> firmware file 'brcmfmac43430-sdio.bin'. 
> 
> 
> Signed-off-by: Sean Lanigan <sean@lano.id.au>
> Acked-by: Ulf Hansson <ulf.hansson@linaro.org>

Patch applied to wireless-drivers-next.git, thanks.

9c4a121e8263 brcmfmac: Add support for bcm43364 wireless chipset
diff mbox

Patch

diff --git a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
index 0b68240..4648a3d 100644
--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
+++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/bcmsdh.c
@@ -963,6 +963,7 @@  static const struct sdio_device_id brcmf_sdmmc_ids[] = {
 	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43340),
 	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43341),
 	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43362),
+ 	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43364),
 	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4335_4339),
 	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_4339),
 	BRCMF_SDIO_DEVICE(SDIO_DEVICE_ID_BROADCOM_43430),
diff --git a/include/linux/mmc/sdio_ids.h b/include/linux/mmc/sdio_ids.h
index cdd66a5..0a7abe8 100644
--- a/include/linux/mmc/sdio_ids.h
+++ b/include/linux/mmc/sdio_ids.h
@@ -35,6 +35,7 @@ 
 #define SDIO_DEVICE_ID_BROADCOM_4335_4339	0x4335
 #define SDIO_DEVICE_ID_BROADCOM_4339		0x4339
 #define SDIO_DEVICE_ID_BROADCOM_43362		0xa962
+#define SDIO_DEVICE_ID_BROADCOM_43364		0xa9a4
 #define SDIO_DEVICE_ID_BROADCOM_43430		0xa9a6
 #define SDIO_DEVICE_ID_BROADCOM_4345		0x4345
 #define SDIO_DEVICE_ID_BROADCOM_43455		0xa9bf