2010-11-25 14:48:45

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 1/5] compat-wireless: make BRCMFMAC compile

This patch fixes some compile problems when Broadcom IEEE802.11n
embedded FullMAC WLAN driver is selected.

Signed-off-by: Hauke Mehrtens <[email protected]>
---
patches/25-multicast-list_head.patch | 18 ++++++++++++++++--
patches/35-backport-brcm80211-Makefile.patch | 15 +++++++++++++++
2 files changed, 31 insertions(+), 2 deletions(-)

diff --git a/patches/25-multicast-list_head.patch b/patches/25-multicast-list_head.patch
index cd70bf3..48daec4 100644
--- a/patches/25-multicast-list_head.patch
+++ b/patches/25-multicast-list_head.patch
@@ -600,9 +600,23 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856
}

return hash.low | ((u64)hash.high << 32);
+--- a/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
++++ b/drivers/staging/brcm80211/brcmfmac/dhd_linux.c
+@@ -726,7 +726,11 @@ static void _dhd_set_multicast_list(dhd_
+ netdev_for_each_mc_addr(ha, dev) {
+ if (!cnt)
+ break;
++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,35))
+ memcpy(bufp, ha->addr, ETHER_ADDR_LEN);
++#else
++ memcpy(bufp, ha->dmi_addr, ETHER_ADDR_LEN);
++#endif
+ bufp += ETHER_ADDR_LEN;
+ cnt--;
+ }
--- a/include/net/mac80211.h
+++ b/include/net/mac80211.h
-@@ -1763,7 +1763,11 @@ struct ieee80211_ops {
+@@ -1770,7 +1770,11 @@ struct ieee80211_ops {
struct ieee80211_bss_conf *info,
u32 changed);
u64 (*prepare_multicast)(struct ieee80211_hw *hw,
@@ -663,7 +677,7 @@ This also backport commit 2f787b0b76bf5de2eaa3ca3a29d89123ae03c856

--- a/net/mac80211/ieee80211_i.h
+++ b/net/mac80211/ieee80211_i.h
-@@ -724,7 +724,12 @@ struct ieee80211_local {
+@@ -725,7 +725,12 @@ struct ieee80211_local {
struct work_struct recalc_smps;

/* aggregated multicast list */
diff --git a/patches/35-backport-brcm80211-Makefile.patch b/patches/35-backport-brcm80211-Makefile.patch
index ee15121..bc57367 100644
--- a/patches/35-backport-brcm80211-Makefile.patch
+++ b/patches/35-backport-brcm80211-Makefile.patch
@@ -15,3 +15,18 @@

PCI_CFLAGS := -DWLC_LOW

+--- a/drivers/staging/brcm80211/brcmfmac/Makefile
++++ b/drivers/staging/brcm80211/brcmfmac/Makefile
+@@ -33,9 +33,9 @@ ccflags-y := \
+ -DPKT_FILTER_SUPPORT \
+ -DSHOW_EVENTS \
+ -DTOE \
+- -Idrivers/staging/brcm80211/brcmfmac \
+- -Idrivers/staging/brcm80211/include \
+- -Idrivers/staging/brcm80211/util
++ -I$(obj) \
++ -I$(obj)/../include \
++ -I$(obj)/../util
+
+ DHDOFILES = dhd_linux.o ../util/linux_osl.o ../util/bcmutils.o dhd_common.o dhd_custom_gpio.o \
+ wl_iw.o wl_cfg80211.o ../util/siutils.o ../util/sbutils.o ../util/aiutils.o ../util/hndpmu.o ../util/bcmwifi.o dhd_sdio.o \
--
1.7.1



2010-11-25 14:48:50

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 4/5] compat-wireless: fix CONFIG_BRCM80211 config option

CONFIG_BRCM80211 Does not need CONFIG_WIRELESS_EXT, so we can build it
also if this is not available. Add commented out CONFIG_BRCMFMAC
option. This only build if CONFIG_BRCM80211_PCI is not build as module.

Signed-off-by: Hauke Mehrtens <[email protected]>
---
config.mk | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/config.mk b/config.mk
index ad597cb..38477b8 100644
--- a/config.mk
+++ b/config.mk
@@ -516,6 +516,10 @@ CONFIG_BT_HCIBTSDIO=m
CONFIG_BT_MRVL_SDIO=m

ifneq ($(CONFIG_COMPAT_STAGING),)
+
+CONFIG_BRCM80211=m
+CONFIG_BRCM80211_PCI=y
+
ifdef CONFIG_WIRELESS_EXT
CONFIG_ATH6KL_CFG80211=y
CONFIG_ATH6KL_DEBUG=y
@@ -529,8 +533,9 @@ CONFIG_ATH6KL_ENABLE_TARGET_DEBUG_PRINTS=y
CONFIG_ATH6KL_VIRTUAL_SCATTER_GATHER=y
CONFIG_ATH6K_LEGACY=m

-CONFIG_BRCM80211=m
-CONFIG_BRCM80211_PCI=y
+# It is not possible to compile CONFIG_BRCM80211 and CONFIG_BRCMFMAC as
+# module at the same time
+# CONFIG_BRCMFMAC=y

endif #CONFIG_WIRELESS_EXT
endif #CONFIG_MMC
--
1.7.1


2010-11-25 15:01:12

by Hauke Mehrtens

[permalink] [raw]
Subject: Re: [PATCH 2/5] compat-wireless: correct rt2x00 config options

On 11/25/2010 03:52 PM, Luis Correia wrote:
> Hi
>
> On Thu, Nov 25, 2010 at 14:48, Hauke Mehrtens <[email protected]> wrote:
>> * Do not add PCI IDs for not jet supported devices.
>> * remove some not included config options and add some newly introduced
>> options
>>
>> Signed-off-by: Hauke Mehrtens <[email protected]>
>> ---
>> config.mk | 15 ++++-----------
>> 1 files changed, 4 insertions(+), 11 deletions(-)
>>
>> diff --git a/config.mk b/config.mk
>> index ee20543..0f58320 100644
>> --- a/config.mk
>> +++ b/config.mk
>> @@ -312,10 +312,8 @@ CONFIG_RT2400PCI=m
>> CONFIG_RT2500PCI=m
>> ifdef CONFIG_CRC_CCITT
>> CONFIG_RT2800PCI=m
>> -CONFIG_RT2800PCI_PCI=y
>> -# CONFIG_RT2800PCI_RT30XX=y
>> +# CONFIG_RT2800PCI_RT33XX=y
>> # CONFIG_RT2800PCI_RT35XX=y
>> -# CONFIG_RT2800PCI_SOC=y
>> endif #CONFIG_CRC_CCITT
>> NEED_RT2X00=y
>>
>> @@ -324,7 +322,6 @@ NEED_RT2X00=y
>> # driver as we're in the PCI section.
>> ifdef CONFIG_CRC_ITU_T
>> CONFIG_RT61PCI=m
>> -NEED_RT2X00_FIRMWARE=y
>> endif #CONFIG_CRC_ITU_T
>>
>> CONFIG_MWL8K=m
>> @@ -435,8 +432,8 @@ CONFIG_ATH9K_HTC=m
>> CONFIG_RT2500USB=m
>> ifdef CONFIG_CRC_CCITT
>> CONFIG_RT2800USB=m
>> -CONFIG_RT2800USB_RT30XX=y
>> -CONFIG_RT2800USB_RT35XX=y
>> +# CONFIG_RT2800USB_RT33XX=y
>> +# CONFIG_RT2800USB_RT35XX=y
>> CONFIG_RT2800USB_UNKNOWN=y
>> endif #CONFIG_CRC_CCITT
>> CONFIG_RT2X00_LIB_USB=m
>> @@ -444,7 +441,6 @@ NEED_RT2X00=y
>> # RT73USB requires firmware
>> ifdef CONFIG_CRC_ITU_T
>> CONFIG_RT73USB=m
>> -NEED_RT2X00_FIRMWARE=y
>> endif #CONFIG_CRC_ITU_T
>>
>> ifdef CONFIG_COMPAT_KERNEL_27
>> @@ -550,6 +546,7 @@ CONFIG_RT2800_LIB=m
>> CONFIG_RT2X00_LIB_HT=y
>> CONFIG_RT2X00_LIB_FIRMWARE=y
>> CONFIG_RT2X00_LIB_CRYPTO=y
>> +# CONFIG_RT2X00_LIB_SOC=y
>> ifdef CONFIG_COMPAT_KERNEL_25
>> CONFIG_RT2X00_LIB_LEDS=n
>> else #CONFIG_COMPAT_KERNEL_25
>> @@ -559,10 +556,6 @@ endif #CONFIG_COMPAT_KERNEL_25
>> # CONFIG_RT2X00_LIB_DEBUGFS
>> endif
>>
>> -ifeq ($(NEED_RT2X00_FIRMWARE),y)
>> -CONFIG_RT2X00_LIB_FIRMWARE=y
>> -endif
>> -
>> # p54
>> CONFIG_P54_COMMON=m
>> CONFIG_P54_LEDS=y
>> --
>> 1.7.1
>>
>
> I would humble say NAK to parts of this, as at least these devices
> need firmware:
>
> CONFIG_RT61PCI=m
> -NEED_RT2X00_FIRMWARE=y
>
> CONFIG_RT73USB=m
> -NEED_RT2X00_FIRMWARE=y
>
> But, as I'm not really an expert to Kconfig, it may or may not be true.
This is no real Kconfig only a hacked script. ;-)

CONFIG_RT2X00_LIB_FIRMWARE=y was set every time rt2x00 was build and a
second time when NEED_RT2X00_FIRMWARE was set. Somehow it was set two
times in this script.

Hauke

2010-11-25 18:26:54

by Luis R. Rodriguez

[permalink] [raw]
Subject: Re: [PATCH 1/5] compat-wireless: make BRCMFMAC compile

On Thu, Nov 25, 2010 at 6:48 AM, Hauke Mehrtens <[email protected]> wrote:
> This patch fixes some compile problems when Broadcom IEEE802.11n
> embedded FullMAC WLAN driver is selected.
>
> Signed-off-by: Hauke Mehrtens <[email protected]>

Applied and pushed, thanks!

Luis

2010-11-25 14:53:05

by Luis Correia

[permalink] [raw]
Subject: Re: [PATCH 2/5] compat-wireless: correct rt2x00 config options

Hi

On Thu, Nov 25, 2010 at 14:48, Hauke Mehrtens <[email protected]> wrote:
> * Do not add PCI IDs for not jet supported devices.
> * remove some not included config options and add some newly introduced
> options
>
> Signed-off-by: Hauke Mehrtens <[email protected]>
> ---
> ?config.mk | ? 15 ++++-----------
> ?1 files changed, 4 insertions(+), 11 deletions(-)
>
> diff --git a/config.mk b/config.mk
> index ee20543..0f58320 100644
> --- a/config.mk
> +++ b/config.mk
> @@ -312,10 +312,8 @@ CONFIG_RT2400PCI=m
> ?CONFIG_RT2500PCI=m
> ?ifdef CONFIG_CRC_CCITT
> ?CONFIG_RT2800PCI=m
> -CONFIG_RT2800PCI_PCI=y
> -# CONFIG_RT2800PCI_RT30XX=y
> +# CONFIG_RT2800PCI_RT33XX=y
> ?# CONFIG_RT2800PCI_RT35XX=y
> -# CONFIG_RT2800PCI_SOC=y
> ?endif #CONFIG_CRC_CCITT
> ?NEED_RT2X00=y
>
> @@ -324,7 +322,6 @@ NEED_RT2X00=y
> ?# driver as we're in the PCI section.
> ?ifdef CONFIG_CRC_ITU_T
> ?CONFIG_RT61PCI=m
> -NEED_RT2X00_FIRMWARE=y
> ?endif #CONFIG_CRC_ITU_T
>
> ?CONFIG_MWL8K=m
> @@ -435,8 +432,8 @@ CONFIG_ATH9K_HTC=m
> ?CONFIG_RT2500USB=m
> ?ifdef CONFIG_CRC_CCITT
> ?CONFIG_RT2800USB=m
> -CONFIG_RT2800USB_RT30XX=y
> -CONFIG_RT2800USB_RT35XX=y
> +# CONFIG_RT2800USB_RT33XX=y
> +# CONFIG_RT2800USB_RT35XX=y
> ?CONFIG_RT2800USB_UNKNOWN=y
> ?endif #CONFIG_CRC_CCITT
> ?CONFIG_RT2X00_LIB_USB=m
> @@ -444,7 +441,6 @@ NEED_RT2X00=y
> ?# RT73USB requires firmware
> ?ifdef CONFIG_CRC_ITU_T
> ?CONFIG_RT73USB=m
> -NEED_RT2X00_FIRMWARE=y
> ?endif #CONFIG_CRC_ITU_T
>
> ?ifdef CONFIG_COMPAT_KERNEL_27
> @@ -550,6 +546,7 @@ CONFIG_RT2800_LIB=m
> ?CONFIG_RT2X00_LIB_HT=y
> ?CONFIG_RT2X00_LIB_FIRMWARE=y
> ?CONFIG_RT2X00_LIB_CRYPTO=y
> +# CONFIG_RT2X00_LIB_SOC=y
> ?ifdef CONFIG_COMPAT_KERNEL_25
> ?CONFIG_RT2X00_LIB_LEDS=n
> ?else #CONFIG_COMPAT_KERNEL_25
> @@ -559,10 +556,6 @@ endif #CONFIG_COMPAT_KERNEL_25
> ?# CONFIG_RT2X00_LIB_DEBUGFS
> ?endif
>
> -ifeq ($(NEED_RT2X00_FIRMWARE),y)
> -CONFIG_RT2X00_LIB_FIRMWARE=y
> -endif
> -
> ?# p54
> ?CONFIG_P54_COMMON=m
> ?CONFIG_P54_LEDS=y
> --
> 1.7.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to [email protected]
> More majordomo info at ?http://vger.kernel.org/majordomo-info.html
>

I would humble say NAK to parts of this, as at least these devices
need firmware:

CONFIG_RT61PCI=m
-NEED_RT2X00_FIRMWARE=y

CONFIG_RT73USB=m
-NEED_RT2X00_FIRMWARE=y

But, as I'm not really an expert to Kconfig, it may or may not be true.

Luis Correia
rt2x00 project admin

2010-11-25 14:48:54

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 5/5] compat-wireless: remove double definition of CONFIG_SSB_DEBUG

Signed-off-by: Hauke Mehrtens <[email protected]>
---
config.mk | 1 -
1 files changed, 0 insertions(+), 1 deletions(-)

diff --git a/config.mk b/config.mk
index 38477b8..fcf575d 100644
--- a/config.mk
+++ b/config.mk
@@ -286,7 +286,6 @@ endif #CONFIG_WIRELESS_EXT
ifdef CONFIG_SSB
# Sonics Silicon Backplane
CONFIG_SSB_SPROM=y
-# CONFIG_SSB_DEBUG=y

CONFIG_SSB_BLOCKIO=y
CONFIG_SSB_PCIHOST=y
--
1.7.1


2010-11-25 14:48:53

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 3/5] compat-wireless: rename config symbols to CONFIG_WL12XX

Rename config Symbols from CONFIG_WL1271 to CONFIG_WL12XX. This was
missing in 3bd28daf2ad78adf652c3e6b74645b7fa0cf3fc2.
Add CONFIG_WL12XX_HT and remove double definition of CONFIG_WL12XX

Signed-off-by: Hauke Mehrtens <[email protected]>
---
config.mk | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/config.mk b/config.mk
index 0f58320..ad597cb 100644
--- a/config.mk
+++ b/config.mk
@@ -468,7 +468,7 @@ ifndef CONFIG_COMPAT_KERNEL_25

ifdef CONFIG_CRC7
CONFIG_WL1251_SPI=m
-CONFIG_WL1271_SPI=m
+CONFIG_WL12XX_SPI=m
endif #CONFIG_CRC7
CONFIG_P54_SPI=m

@@ -495,7 +495,7 @@ endif #CONFIG_WL12XX_PLATFORM_DATA

ifndef CONFIG_COMPAT_KERNEL_32
ifdef CONFIG_WL12XX_PLATFORM_DATA
-CONFIG_WL1271_SDIO=m
+CONFIG_WL12XX_SDIO=m
endif #CONFIG_WL12XX_PLATFORM_DATA
endif #CONFIG_COMPAT_KERNEL_32

@@ -564,10 +564,10 @@ CONFIG_P54_LEDS=y
CONFIG_ATH_COMMON=m
# CONFIG_ATH_DEBUG=y

-CONFIG_WL12XX=y
ifdef CONFIG_CRC7
CONFIG_WL1251=m
-CONFIG_WL1271=m
+CONFIG_WL12XX=m
+CONFIG_WL12XX_HT=y
endif #CONFIG_CRC7

ifdef CONFIG_COMPAT_KERNEL_27
--
1.7.1


2010-11-25 14:48:45

by Hauke Mehrtens

[permalink] [raw]
Subject: [PATCH 2/5] compat-wireless: correct rt2x00 config options

* Do not add PCI IDs for not jet supported devices.
* remove some not included config options and add some newly introduced
options

Signed-off-by: Hauke Mehrtens <[email protected]>
---
config.mk | 15 ++++-----------
1 files changed, 4 insertions(+), 11 deletions(-)

diff --git a/config.mk b/config.mk
index ee20543..0f58320 100644
--- a/config.mk
+++ b/config.mk
@@ -312,10 +312,8 @@ CONFIG_RT2400PCI=m
CONFIG_RT2500PCI=m
ifdef CONFIG_CRC_CCITT
CONFIG_RT2800PCI=m
-CONFIG_RT2800PCI_PCI=y
-# CONFIG_RT2800PCI_RT30XX=y
+# CONFIG_RT2800PCI_RT33XX=y
# CONFIG_RT2800PCI_RT35XX=y
-# CONFIG_RT2800PCI_SOC=y
endif #CONFIG_CRC_CCITT
NEED_RT2X00=y

@@ -324,7 +322,6 @@ NEED_RT2X00=y
# driver as we're in the PCI section.
ifdef CONFIG_CRC_ITU_T
CONFIG_RT61PCI=m
-NEED_RT2X00_FIRMWARE=y
endif #CONFIG_CRC_ITU_T

CONFIG_MWL8K=m
@@ -435,8 +432,8 @@ CONFIG_ATH9K_HTC=m
CONFIG_RT2500USB=m
ifdef CONFIG_CRC_CCITT
CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT30XX=y
-CONFIG_RT2800USB_RT35XX=y
+# CONFIG_RT2800USB_RT33XX=y
+# CONFIG_RT2800USB_RT35XX=y
CONFIG_RT2800USB_UNKNOWN=y
endif #CONFIG_CRC_CCITT
CONFIG_RT2X00_LIB_USB=m
@@ -444,7 +441,6 @@ NEED_RT2X00=y
# RT73USB requires firmware
ifdef CONFIG_CRC_ITU_T
CONFIG_RT73USB=m
-NEED_RT2X00_FIRMWARE=y
endif #CONFIG_CRC_ITU_T

ifdef CONFIG_COMPAT_KERNEL_27
@@ -550,6 +546,7 @@ CONFIG_RT2800_LIB=m
CONFIG_RT2X00_LIB_HT=y
CONFIG_RT2X00_LIB_FIRMWARE=y
CONFIG_RT2X00_LIB_CRYPTO=y
+# CONFIG_RT2X00_LIB_SOC=y
ifdef CONFIG_COMPAT_KERNEL_25
CONFIG_RT2X00_LIB_LEDS=n
else #CONFIG_COMPAT_KERNEL_25
@@ -559,10 +556,6 @@ endif #CONFIG_COMPAT_KERNEL_25
# CONFIG_RT2X00_LIB_DEBUGFS
endif

-ifeq ($(NEED_RT2X00_FIRMWARE),y)
-CONFIG_RT2X00_LIB_FIRMWARE=y
-endif
-
# p54
CONFIG_P54_COMMON=m
CONFIG_P54_LEDS=y
--
1.7.1