diff mbox

[OpenWrt-Devel,RFC] mac80211: brcmfmac: separate SDIO and USB support

Message ID alpine.DEB.2.02.1501071946120.29083@trabant.deployis.eu
State Changes Requested
Headers show

Commit Message

Zoltan HERPAI Jan. 7, 2015, 7:37 p.m. UTC
This patch will add options to select SDIO and USB support in the brcmfmac 
driver, and not tie it to only support USB. As the driver doesn't build 
the host interface code into separate .ko, the required ones are selected 
via config options.

PCIe support is not added now, can be added later. As of now, only sunxi 
would use the SDIO support for the Ampak modules.

Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
---

Comments

José Vázquez Fernández Jan. 13, 2015, 8:57 p.m. UTC | #1
2015-01-13 8:46 GMT+01:00, Zoltan HERPAI <wigyori@uid0.hu>:
> I haven't seen any flags that does SDIO_SUPPORT or something similar. It's
> either removing "depend on USB_SUPPORT" or add dependencies for the
> targets that'll use the SDIO part. Do you know of other approach?
>
> Thanks,
> -w-
>
You are right: there isn't SDIO_SUPPORT flag. I suggested to delete
sunxi dependency because maybe in the future will be support for other
boards that belong to different targets that will need sdio support to
make the wifi work.
Anyway, while only sunxi based boards need it, the patch can be left
as is to avoid confusion.

Regards:

Pepe

> On Tue, 13 Jan 2015, José Vázquez wrote:
>
>> IMHO make sdio selecton depends only on sunxi is not a good idea.
>>
>> 2015-01-07 20:37 GMT+01:00, Zoltan HERPAI <wigyori@uid0.hu>:
>>> This patch will add options to select SDIO and USB support in the
>>> brcmfmac
>>> driver, and not tie it to only support USB. As the driver doesn't build
>>> the host interface code into separate .ko, the required ones are
>>> selected
>>> via config options.
>>>
>>> PCIe support is not added now, can be added later. As of now, only sunxi
>>> would use the SDIO support for the Ampak modules.
>>>
>>> Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
>>> ---
>>> Index: package/kernel/mac80211/Makefile
>>> ===================================================================
>>> --- package/kernel/mac80211/Makefile	(revision 43857)
>>> +++ package/kernel/mac80211/Makefile	(working copy)
>>> @@ -1477,17 +1477,36 @@
>>>
>>>   define KernelPackage/brcmfmac
>>>     $(call KernelPackage/mac80211/Default)
>>> -  TITLE:=Broadcom IEEE802.11n USB FullMAC WLAN driver
>>> +  TITLE:=Broadcom IEEE802.11n USB/SDIO FullMAC WLAN driver
>>>     URL:=http://linuxwireless.org/en/users/Drivers/brcm80211
>>> -  DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-cfg80211
>>> +@DRIVER_11N_SUPPORT
>>> +kmod-brcmutil
>>> +  DEPENDS+= @(USB_SUPPORT||TARGET_sunxi) +kmod-cfg80211
>>> +@DRIVER_11N_SUPPORT +kmod-brcmutil
>>>
>>> FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko
>>>     AUTOLOAD:=$(call AutoProbe,brcmfmac)
>>>   endef
>>>
>>>   define KernelPackage/brcmfmac/description
>>> - Kernel module for Broadcom IEEE802.11n USB Wireless cards
>>> + Kernel module for Broadcom IEEE802.11n USB/SDIO Wireless cards
>>>   endef
>>>
>>> +define KernelPackage/brcmfmac/config
>>> +    if PACKAGE_kmod-brcmfmac
>>> +
>>> +		config PACKAGE_BRCMFMAC_SDIO
>>> +			depends TARGET_sunxi
>>> +			bool "Broadcom FullMAC SDIO support"
>>> +			help
>>> +			    Say Y if you want to enable SDIO support for the brcmfmac
>>> driver.
>>> +
>>> +		config PACKAGE_BRCMFMAC_USB
>>> +			select PACKAGE_kmod-usb-core
>>> +			default y
>>> +			bool "Broadcom FullMAC USB support"
>>> +			help
>>> +			    Say Y if you want to enable USB support for the brcmfmac driver.
>>> +
>>> +    endif
>>> +endef
>>> +
>>>   config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
>>>
>>>   config-y:= \
>>> @@ -1558,8 +1577,9 @@
>>>   config-$(call config_package,brcmutil) += BRCMUTIL
>>>   config-$(call config_package,brcmsmac) += BRCMSMAC
>>>   config-$(call config_package,brcmfmac) += BRCMFMAC
>>> -config-y += BRCMFMAC_USB
>>> +config-$(CONFIG_PACKAGE_BRCMFMAC_USB) += BRCMFMAC_USB
>>>   config-$(CONFIG_PACKAGE_BRCM80211_DEBUG) += BRCMDBG
>>> +config-$(CONFIG_PACKAGE_BRCMFMAC_SDIO) += BRCMFMAC_SDIO
>>>
>>>   config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM
>>>
>>> @@ -1969,12 +1989,25 @@
>>>
>>>   define KernelPackage/brcmfmac/install
>>>   	$(INSTALL_DIR) $(1)/lib/firmware/brcm
>>> +ifeq ($(CONFIG_PACKAGE_BRCMFMAC_USB),y)
>>>   	$(INSTALL_DATA) \
>>>   		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43236b.bin
>>> \
>>>   		$(1)/lib/firmware/brcm/
>>>   	$(INSTALL_DATA) \
>>>   		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43143.bin
>>> \
>>>   		$(1)/lib/firmware/brcm/
>>> +endif
>>> +ifeq ($(CONFIG_PACKAGE_BRCMFMAC_SDIO),y)
>>> +	$(INSTALL_DATA) \
>>> +		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4329-sdio.bin
>>> \
>>> +		$(1)/lib/firmware/brcm/
>>> +	$(INSTALL_DATA) \
>>> +		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4330-sdio.bin
>>> \
>>> +		$(1)/lib/firmware/brcm/
>>> +	$(INSTALL_DATA) \
>>> +		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43362-sdio.bin
>>> \
>>> +		$(1)/lib/firmware/brcm/
>>> +endif
>>>   endef
>>>
>>>   $(eval $(call KernelPackage,adm8211))
>>> _______________________________________________
>>> openwrt-devel mailing list
>>> openwrt-devel@lists.openwrt.org
>>> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
>>>
>>
Zoltan HERPAI Jan. 14, 2015, 1:22 p.m. UTC | #2
Jose,

On Tue, 13 Jan 2015, José Vázquez wrote:

> 2015-01-13 8:46 GMT+01:00, Zoltan HERPAI <wigyori@uid0.hu>:
>> I haven't seen any flags that does SDIO_SUPPORT or something similar. It's
>> either removing "depend on USB_SUPPORT" or add dependencies for the
>> targets that'll use the SDIO part. Do you know of other approach?
>>
>> Thanks,
>> -w-
>>
> You are right: there isn't SDIO_SUPPORT flag. I suggested to delete
> sunxi dependency because maybe in the future will be support for other
> boards that belong to different targets that will need sdio support to
> make the wifi work.
> Anyway, while only sunxi based boards need it, the patch can be left
> as is to avoid confusion.

Further targets which require this package can be added later - so far 
sunxi is the only one which needs the SDIO support in brcmfmac, unless 
someone comes up with another.

sunxi has USB_SUPPORT, but I wanted to indicate that to enable the SDIO 
part, one does not need to have it, and can be extended easily.

Thanks,
-w-

>> On Tue, 13 Jan 2015, José Vázquez wrote:
>>
>>> IMHO make sdio selecton depends only on sunxi is not a good idea.
>>>
>>> 2015-01-07 20:37 GMT+01:00, Zoltan HERPAI <wigyori@uid0.hu>:
>>>> This patch will add options to select SDIO and USB support in the
>>>> brcmfmac
>>>> driver, and not tie it to only support USB. As the driver doesn't build
>>>> the host interface code into separate .ko, the required ones are
>>>> selected
>>>> via config options.
>>>>
>>>> PCIe support is not added now, can be added later. As of now, only sunxi
>>>> would use the SDIO support for the Ampak modules.
>>>>
>>>> Signed-off-by: Zoltan HERPAI <wigyori@uid0.hu>
>>>> ---
>>>> Index: package/kernel/mac80211/Makefile
>>>> ===================================================================
>>>> --- package/kernel/mac80211/Makefile	(revision 43857)
>>>> +++ package/kernel/mac80211/Makefile	(working copy)
>>>> @@ -1477,17 +1477,36 @@
>>>>
>>>>   define KernelPackage/brcmfmac
>>>>     $(call KernelPackage/mac80211/Default)
>>>> -  TITLE:=Broadcom IEEE802.11n USB FullMAC WLAN driver
>>>> +  TITLE:=Broadcom IEEE802.11n USB/SDIO FullMAC WLAN driver
>>>>     URL:=http://linuxwireless.org/en/users/Drivers/brcm80211
>>>> -  DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-cfg80211
>>>> +@DRIVER_11N_SUPPORT
>>>> +kmod-brcmutil
>>>> +  DEPENDS+= @(USB_SUPPORT||TARGET_sunxi) +kmod-cfg80211
>>>> +@DRIVER_11N_SUPPORT +kmod-brcmutil
>>>>
>>>> FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko
>>>>     AUTOLOAD:=$(call AutoProbe,brcmfmac)
>>>>   endef
>>>>
>>>>   define KernelPackage/brcmfmac/description
>>>> - Kernel module for Broadcom IEEE802.11n USB Wireless cards
>>>> + Kernel module for Broadcom IEEE802.11n USB/SDIO Wireless cards
>>>>   endef
>>>>
>>>> +define KernelPackage/brcmfmac/config
>>>> +    if PACKAGE_kmod-brcmfmac
>>>> +
>>>> +		config PACKAGE_BRCMFMAC_SDIO
>>>> +			depends TARGET_sunxi
>>>> +			bool "Broadcom FullMAC SDIO support"
>>>> +			help
>>>> +			    Say Y if you want to enable SDIO support for the brcmfmac
>>>> driver.
>>>> +
>>>> +		config PACKAGE_BRCMFMAC_USB
>>>> +			select PACKAGE_kmod-usb-core
>>>> +			default y
>>>> +			bool "Broadcom FullMAC USB support"
>>>> +			help
>>>> +			    Say Y if you want to enable USB support for the brcmfmac driver.
>>>> +
>>>> +    endif
>>>> +endef
>>>> +
>>>>   config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)
>>>>
>>>>   config-y:= \
>>>> @@ -1558,8 +1577,9 @@
>>>>   config-$(call config_package,brcmutil) += BRCMUTIL
>>>>   config-$(call config_package,brcmsmac) += BRCMSMAC
>>>>   config-$(call config_package,brcmfmac) += BRCMFMAC
>>>> -config-y += BRCMFMAC_USB
>>>> +config-$(CONFIG_PACKAGE_BRCMFMAC_USB) += BRCMFMAC_USB
>>>>   config-$(CONFIG_PACKAGE_BRCM80211_DEBUG) += BRCMDBG
>>>> +config-$(CONFIG_PACKAGE_BRCMFMAC_SDIO) += BRCMFMAC_SDIO
>>>>
>>>>   config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM
>>>>
>>>> @@ -1969,12 +1989,25 @@
>>>>
>>>>   define KernelPackage/brcmfmac/install
>>>>   	$(INSTALL_DIR) $(1)/lib/firmware/brcm
>>>> +ifeq ($(CONFIG_PACKAGE_BRCMFMAC_USB),y)
>>>>   	$(INSTALL_DATA) \
>>>>   		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43236b.bin
>>>> \
>>>>   		$(1)/lib/firmware/brcm/
>>>>   	$(INSTALL_DATA) \
>>>>   		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43143.bin
>>>> \
>>>>   		$(1)/lib/firmware/brcm/
>>>> +endif
>>>> +ifeq ($(CONFIG_PACKAGE_BRCMFMAC_SDIO),y)
>>>> +	$(INSTALL_DATA) \
>>>> +		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4329-sdio.bin
>>>> \
>>>> +		$(1)/lib/firmware/brcm/
>>>> +	$(INSTALL_DATA) \
>>>> +		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4330-sdio.bin
>>>> \
>>>> +		$(1)/lib/firmware/brcm/
>>>> +	$(INSTALL_DATA) \
>>>> +		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43362-sdio.bin
>>>> \
>>>> +		$(1)/lib/firmware/brcm/
>>>> +endif
>>>>   endef
>>>>
>>>>   $(eval $(call KernelPackage,adm8211))
>>>> _______________________________________________
>>>> openwrt-devel mailing list
>>>> openwrt-devel@lists.openwrt.org
>>>> https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel
>>>>
>>>
>
diff mbox

Patch

Index: package/kernel/mac80211/Makefile
===================================================================
--- package/kernel/mac80211/Makefile	(revision 43857)
+++ package/kernel/mac80211/Makefile	(working copy)
@@ -1477,17 +1477,36 @@ 

  define KernelPackage/brcmfmac
    $(call KernelPackage/mac80211/Default)
-  TITLE:=Broadcom IEEE802.11n USB FullMAC WLAN driver
+  TITLE:=Broadcom IEEE802.11n USB/SDIO FullMAC WLAN driver
    URL:=http://linuxwireless.org/en/users/Drivers/brcm80211
-  DEPENDS+= @USB_SUPPORT +kmod-usb-core +kmod-cfg80211 +@DRIVER_11N_SUPPORT +kmod-brcmutil
+  DEPENDS+= @(USB_SUPPORT||TARGET_sunxi) +kmod-cfg80211 +@DRIVER_11N_SUPPORT +kmod-brcmutil
    FILES:=$(PKG_BUILD_DIR)/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko
    AUTOLOAD:=$(call AutoProbe,brcmfmac)
  endef

  define KernelPackage/brcmfmac/description
- Kernel module for Broadcom IEEE802.11n USB Wireless cards
+ Kernel module for Broadcom IEEE802.11n USB/SDIO Wireless cards
  endef

+define KernelPackage/brcmfmac/config
+    if PACKAGE_kmod-brcmfmac
+
+		config PACKAGE_BRCMFMAC_SDIO
+			depends TARGET_sunxi
+			bool "Broadcom FullMAC SDIO support"
+			help
+			    Say Y if you want to enable SDIO support for the brcmfmac driver.
+
+		config PACKAGE_BRCMFMAC_USB
+			select PACKAGE_kmod-usb-core
+			default y
+			bool "Broadcom FullMAC USB support"
+			help
+			    Say Y if you want to enable USB support for the brcmfmac driver.
+
+    endif
+endef
+
  config_package=$(if $(CONFIG_PACKAGE_kmod-$(1)),m)

  config-y:= \
@@ -1558,8 +1577,9 @@ 
  config-$(call config_package,brcmutil) += BRCMUTIL
  config-$(call config_package,brcmsmac) += BRCMSMAC
  config-$(call config_package,brcmfmac) += BRCMFMAC
-config-y += BRCMFMAC_USB
+config-$(CONFIG_PACKAGE_BRCMFMAC_USB) += BRCMFMAC_USB
  config-$(CONFIG_PACKAGE_BRCM80211_DEBUG) += BRCMDBG
+config-$(CONFIG_PACKAGE_BRCMFMAC_SDIO) += BRCMFMAC_SDIO

  config-$(call config_package,mac80211-hwsim) += MAC80211_HWSIM

@@ -1969,12 +1989,25 @@ 

  define KernelPackage/brcmfmac/install
  	$(INSTALL_DIR) $(1)/lib/firmware/brcm
+ifeq ($(CONFIG_PACKAGE_BRCMFMAC_USB),y)
  	$(INSTALL_DATA) \
  		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43236b.bin \
  		$(1)/lib/firmware/brcm/
  	$(INSTALL_DATA) \
  		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43143.bin \
  		$(1)/lib/firmware/brcm/
+endif
+ifeq ($(CONFIG_PACKAGE_BRCMFMAC_SDIO),y)
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4329-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac4330-sdio.bin \
+		$(1)/lib/firmware/brcm/
+	$(INSTALL_DATA) \
+		$(PKG_BUILD_DIR)/$(PKG_LINUX_FIRMWARE_SUBDIR)/brcm/brcmfmac43362-sdio.bin \
+		$(1)/lib/firmware/brcm/
+endif
  endef

  $(eval $(call KernelPackage,adm8211))