Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: The following changes since commit d7ea3be56adc95b17351221fd95e78115f3b01f4: Brandon Craig Rhodes (1): hostap: Allocate enough tailroom for TKIP are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Akinobu Mita (1): softmac: use list_for_each_entry Daniel Drake (4): zd1211rw: Add ID for ZyXEL G-200v2 zd1211rw: Extend RF layer zd1211rw: Add UW2453 RF support zd1211rw: Make CCK gain patching conditional on RF type Jouni Malinen (1): hostap: Remove driver version number Larry Finger (1): bcm43xx: Fix deviation from specifications in set_baseband_attenuation Matthias Kaehlcke (1): hostap: Use list_for_each_entry Pavel Roskin (1): hostap: Suppress broadcast if no stations are associated drivers/net/wireless/bcm43xx/bcm43xx_phy.c |2 +- drivers/net/wireless/hostap/hostap_ap.c | 34 +- drivers/net/wireless/hostap/hostap_config.h |2 - drivers/net/wireless/hostap/hostap_cs.c |4 - drivers/net/wireless/hostap/hostap_ioctl.c |2 - drivers/net/wireless/hostap/hostap_main.c |1 - drivers/net/wireless/hostap/hostap_pci.c|5 - drivers/net/wireless/hostap/hostap_plx.c|5 - drivers/net/wireless/zd1211rw/Makefile |2 +- drivers/net/wireless/zd1211rw/zd_chip.c |5 +- drivers/net/wireless/zd1211rw/zd_chip.h |3 + drivers/net/wireless/zd1211rw/zd_rf.c | 21 +- drivers/net/wireless/zd1211rw/zd_rf.h | 28 ++ drivers/net/wireless/zd1211rw/zd_rf_al2230.c|1 + drivers/net/wireless/zd1211rw/zd_rf_al7230b.c |1 + drivers/net/wireless/zd1211rw/zd_rf_uw2453.c| 534 +++ drivers/net/wireless/zd1211rw/zd_usb.c |1 + net/ieee80211/softmac/ieee80211softmac_module.c | 32 +- 18 files changed, 611 insertions(+), 72 deletions(-) create mode 100644 drivers/net/wireless/zd1211rw/zd_rf_uw2453.c pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit d7ea3be56adc95b17351221fd95e78115f3b01f4: Brandon Craig Rhodes (1): hostap: Allocate enough tailroom for TKIP are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Akinobu Mita (1): softmac: use list_for_each_entry Daniel Drake (4): zd1211rw: Add ID for ZyXEL G-200v2 zd1211rw: Extend RF layer zd1211rw: Add UW2453 RF support zd1211rw: Make CCK gain patching conditional on RF type Jouni Malinen (1): hostap: Remove driver version number Larry Finger (1): bcm43xx: Fix deviation from specifications in set_baseband_attenuation Matthias Kaehlcke (1): hostap: Use list_for_each_entry Pavel Roskin (1): hostap: Suppress broadcast if no stations are associated drivers/net/wireless/bcm43xx/bcm43xx_phy.c |2 +- drivers/net/wireless/hostap/hostap_ap.c | 34 +- drivers/net/wireless/hostap/hostap_config.h |2 - drivers/net/wireless/hostap/hostap_cs.c |4 - drivers/net/wireless/hostap/hostap_ioctl.c |2 - drivers/net/wireless/hostap/hostap_main.c |1 - drivers/net/wireless/hostap/hostap_pci.c|5 - drivers/net/wireless/hostap/hostap_plx.c|5 - drivers/net/wireless/zd1211rw/Makefile |2 +- drivers/net/wireless/zd1211rw/zd_chip.c |5 +- drivers/net/wireless/zd1211rw/zd_chip.h |3 + drivers/net/wireless/zd1211rw/zd_rf.c | 21 +- drivers/net/wireless/zd1211rw/zd_rf.h | 28 ++ drivers/net/wireless/zd1211rw/zd_rf_al2230.c|1 + drivers/net/wireless/zd1211rw/zd_rf_al7230b.c |1 + drivers/net/wireless/zd1211rw/zd_rf_uw2453.c| 534 +++ drivers/net/wireless/zd1211rw/zd_usb.c |1 + net/ieee80211/softmac/ieee80211softmac_module.c | 32 +- 18 files changed, 611 insertions(+), 72 deletions(-) create mode 100644 drivers/net/wireless/zd1211rw/zd_rf_uw2453.c diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_phy.c b/drivers/net/wireless/bcm43xx/bcm43xx_phy.c index b37f1e3..d779199 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_phy.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_phy.c @@ -1638,7 +1638,7 @@ void bcm43xx_phy_set_baseband_attenuation(struct bcm43xx_private *bcm, return; } - if (phy-analog 1) { + if (phy-analog == 1) { value = bcm43xx_phy_read(bcm, 0x0060) ~0x003C; value |= (baseband_attenuation 2) 0x003C; } else { diff --git a/drivers/net/wireless/hostap/hostap_ap.c b/drivers/net/wireless/hostap/hostap_ap.c index 5b3abd5..9090052 100644 --- a/drivers/net/wireless/hostap/hostap_ap.c +++ b/drivers/net/wireless/hostap/hostap_ap.c @@ -326,7 +326,6 @@ static int ap_control_proc_read(char *page, char **start, off_t off, char *p = page; struct ap_data *ap = (struct ap_data *) data; char *policy_txt; - struct list_head *ptr; struct mac_entry *entry; if (off != 0) { @@ -352,14 +351,12 @@ static int ap_control_proc_read(char *page, char **start, off_t off, p += sprintf(p, MAC entries: %u\n, ap-mac_restrictions.entries); p += sprintf(p, MAC list:\n); spin_lock_bh(ap-mac_restrictions.lock); - for (ptr = ap-mac_restrictions.mac_list.next; -ptr != ap-mac_restrictions.mac_list; ptr = ptr-next) { + list_for_each_entry(entry, ap-mac_restrictions.mac_list, list) { if (p - page PAGE_SIZE - 80) { p += sprintf(p, All entries did not fit one page.\n); break; } - entry = list_entry(ptr, struct mac_entry, list); p += sprintf(p, MACSTR \n, MAC2STR(entry-addr)); } spin_unlock_bh(ap-mac_restrictions.lock); @@ -413,7 +410,6 @@ int ap_control_del_mac(struct mac_restrictions *mac_restrictions, u8 *mac) static int ap_control_mac_deny(struct mac_restrictions *mac_restrictions, u8 *mac) { - struct list_head *ptr; struct mac_entry *entry; int found = 0; @@ -421,10 +417,7 @@ static int ap_control_mac_deny(struct mac_restrictions *mac_restrictions, return 0; spin_lock_bh(mac_restrictions-lock); - for (ptr = mac_restrictions-mac_list.next; -ptr != mac_restrictions-mac_list; ptr = ptr-next) { - entry = list_entry(ptr, struct mac_entry, list); - + list_for_each_entry(entry, mac_restrictions-mac_list, list) { if (memcmp(entry-addr, mac, ETH_ALEN) == 0) { found = 1; break; @@ -519,7 +512,7 @@ static int prism2_ap_proc_read(char *page, char **start, off_t off, { char *p = page; struct ap_data *ap = (struct ap_data *) data; - struct list_head *ptr; + struct sta_info *sta; int i;
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: The following changes since commit 5b94f675f57e4ff16c8fda09088d7480a84dcd91: Linus Torvalds (1): Merge master.kernel.org:/.../davem/sparc-2.6 are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake (1): zd1211rw: Add ID for ZyXEL AG-225H v2 Larry Finger (3): ieee80211: add ieee80211_channel_to_freq ieee80211: include frequency in scan results bcm43xx: Remove dead configuration variable CONFIG_947XX Matthew Davidson (1): zd1211rw: Add ID for Sitecom WL-117 Ulrich Kunitz (1): zd1211rw: Added new USB id for Planex GW-US54ZGL drivers/net/wireless/bcm43xx/bcm43xx.h | 18 +- drivers/net/wireless/bcm43xx/bcm43xx_dma.c |4 - drivers/net/wireless/bcm43xx/bcm43xx_main.c | 81 --- drivers/net/wireless/bcm43xx/bcm43xx_main.h | 19 -- drivers/net/wireless/zd1211rw/zd_usb.c |4 + include/net/ieee80211.h |2 + net/ieee80211/ieee80211_geo.c | 16 + net/ieee80211/ieee80211_wx.c|8 ++- 8 files changed, 31 insertions(+), 121 deletions(-) pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
This request is withdrawn. New request to follow. On Mon, May 07, 2007 at 01:51:21PM -0400, John W. Linville wrote: The following changes since commit 15700770ef7c5d12e2f1659d2ddbeb3f658d9f37: Linus Torvalds (1): Merge git://git.kernel.org/.../sam/kbuild are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake (1): zd1211rw: Add ID for ZyXEL AG-225H v2 Geert Uytterhoeven (1): mac80211: include linux/delay.h instead of asm/delay.h Ivo van Doorn (1): Add 93cx6 eeprom library John W. Linville (1): libertas: fix for wireless Kconfig changes Larry Finger (3): ieee80211: add ieee80211_channel_to_freq ieee80211: include frequency in scan results bcm43xx: Remove dead configuration variable CONFIG_947XX Matthew Davidson (1): zd1211rw: Add ID for Sitecom WL-117 Michael Wu (1): Add rtl8187 wireless driver Ulrich Kunitz (1): zd1211rw: Added new USB id for Planex GW-US54ZGL -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit 5b94f675f57e4ff16c8fda09088d7480a84dcd91: Linus Torvalds (1): Merge master.kernel.org:/.../davem/sparc-2.6 are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake (1): zd1211rw: Add ID for ZyXEL AG-225H v2 Larry Finger (3): ieee80211: add ieee80211_channel_to_freq ieee80211: include frequency in scan results bcm43xx: Remove dead configuration variable CONFIG_947XX Matthew Davidson (1): zd1211rw: Add ID for Sitecom WL-117 Ulrich Kunitz (1): zd1211rw: Added new USB id for Planex GW-US54ZGL drivers/net/wireless/bcm43xx/bcm43xx.h | 18 +- drivers/net/wireless/bcm43xx/bcm43xx_dma.c |4 - drivers/net/wireless/bcm43xx/bcm43xx_main.c | 81 --- drivers/net/wireless/bcm43xx/bcm43xx_main.h | 19 -- drivers/net/wireless/zd1211rw/zd_usb.c |4 + include/net/ieee80211.h |2 + net/ieee80211/ieee80211_geo.c | 16 + net/ieee80211/ieee80211_wx.c|8 ++- 8 files changed, 31 insertions(+), 121 deletions(-) diff --git a/drivers/net/wireless/bcm43xx/bcm43xx.h b/drivers/net/wireless/bcm43xx/bcm43xx.h index f8483c1..10e07e8 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx.h +++ b/drivers/net/wireless/bcm43xx/bcm43xx.h @@ -658,12 +658,6 @@ struct bcm43xx_pio { #define BCM43xx_MAX_80211_CORES2 -#ifdef CONFIG_BCM947XX -#define core_offset(bcm) (bcm)-current_core_offset -#else -#define core_offset(bcm) 0 -#endif - /* Generic information about a core. */ struct bcm43xx_coreinfo { u8 available:1, @@ -789,10 +783,6 @@ struct bcm43xx_private { /* The currently active core. */ struct bcm43xx_coreinfo *current_core; -#ifdef CONFIG_BCM947XX - /** current core memory offset */ - u32 current_core_offset; -#endif struct bcm43xx_coreinfo *active_80211_core; /* coreinfo structs for all possible cores follow. * Note that a core might not exist. @@ -943,25 +933,25 @@ struct bcm43xx_lopair * bcm43xx_get_lopair(struct bcm43xx_phyinfo *phy, static inline u16 bcm43xx_read16(struct bcm43xx_private *bcm, u16 offset) { - return ioread16(bcm-mmio_addr + core_offset(bcm) + offset); + return ioread16(bcm-mmio_addr + offset); } static inline void bcm43xx_write16(struct bcm43xx_private *bcm, u16 offset, u16 value) { - iowrite16(value, bcm-mmio_addr + core_offset(bcm) + offset); + iowrite16(value, bcm-mmio_addr + offset); } static inline u32 bcm43xx_read32(struct bcm43xx_private *bcm, u16 offset) { - return ioread32(bcm-mmio_addr + core_offset(bcm) + offset); + return ioread32(bcm-mmio_addr + offset); } static inline void bcm43xx_write32(struct bcm43xx_private *bcm, u16 offset, u32 value) { - iowrite32(value, bcm-mmio_addr + core_offset(bcm) + offset); + iowrite32(value, bcm-mmio_addr + offset); } static inline diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_dma.c b/drivers/net/wireless/bcm43xx/bcm43xx_dma.c index e3d2e61..1f7731f 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_dma.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_dma.c @@ -660,10 +660,6 @@ struct bcm43xx_dmaring * bcm43xx_setup_dmaring(struct bcm43xx_private *bcm, ring-routing = BCM43xx_DMA32_CLIENTTRANS; if (dma64) ring-routing = BCM43xx_DMA64_CLIENTTRANS; -#ifdef CONFIG_BCM947XX - if (bcm-pci_dev-bus-number == 0) - ring-routing = dma64 ? BCM43xx_DMA64_NOTRANS : BCM43xx_DMA32_NOTRANS; -#endif ring-bcm = bcm; ring-nr_slots = nr_slots; diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c index 5e96bca..ef6b253 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c @@ -61,10 +61,6 @@ MODULE_AUTHOR(Stefano Brivio); MODULE_AUTHOR(Michael Buesch); MODULE_LICENSE(GPL); -#ifdef CONFIG_BCM947XX -extern char *nvram_get(char *name); -#endif - #if defined(CONFIG_BCM43XX_DMA) defined(CONFIG_BCM43XX_PIO) static int modparam_pio; module_param_named(pio, modparam_pio, int, 0444); @@ -142,10 +138,6 @@ MODULE_PARM_DESC(fwpostfix, Postfix for .fw files. Useful for using multiple fi { PCI_VENDOR_ID_BROADCOM, 0x4324, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Broadcom 43XG 802.11b/g */ { PCI_VENDOR_ID_BROADCOM, 0x4325, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, -#ifdef CONFIG_BCM947XX - /* SB bus on BCM947xx */ - { PCI_VENDOR_ID_BROADCOM, 0x0800, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, -#endif { 0 }, }; MODULE_DEVICE_TABLE(pci, bcm43xx_pci_tbl); @@ -786,9 +778,6 @@ static int bcm43xx_sprom_extract(struct bcm43xx_private *bcm) { u16 value; u16 *sprom; -#ifdef CONFIG_BCM947XX - char *c; -#endif sprom = kzalloc(BCM43xx_SPROM_SIZE *
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: The following changes since commit 15700770ef7c5d12e2f1659d2ddbeb3f658d9f37: Linus Torvalds (1): Merge git://git.kernel.org/.../sam/kbuild are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake (1): zd1211rw: Add ID for ZyXEL AG-225H v2 Geert Uytterhoeven (1): mac80211: include linux/delay.h instead of asm/delay.h Ivo van Doorn (1): Add 93cx6 eeprom library John W. Linville (1): libertas: fix for wireless Kconfig changes Larry Finger (3): ieee80211: add ieee80211_channel_to_freq ieee80211: include frequency in scan results bcm43xx: Remove dead configuration variable CONFIG_947XX Matthew Davidson (1): zd1211rw: Add ID for Sitecom WL-117 Michael Wu (1): Add rtl8187 wireless driver Ulrich Kunitz (1): zd1211rw: Added new USB id for Planex GW-US54ZGL The normal development process is: * commit new code to your repository * that goes into -mm for public testing and review * merge window opens * the code that has seen public testing and review goes upstream The general idea is everything you want in 2.6.22 should be prepared and in -mm BEFORE 2.6.21 is released, and the 2.6.22 merge window opens. It's quite normal for fixes and minor changes to trickle in after the push that follows the merge window opening. But new drivers that have not been through this process do not fall under fixes and minor changes. I also did not see any response to my better as a single file driver suggestion. So, I'll pull if you remove the two late additions. Jeff - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Monday 07 May 2007 19:09, Jeff Garzik wrote: The general idea is everything you want in 2.6.22 should be prepared and in -mm BEFORE 2.6.21 is released, and the 2.6.22 merge window opens. rtl8187 has been in -mm since 2.6.21-rc2-mm1. -Michael Wu pgpqlzKVzSGGX.pgp Description: PGP signature
Re: Please pull 'upstream' branch of wireless-2.6
On Mon, May 07, 2007 at 07:09:20PM -0400, Jeff Garzik wrote: John W. Linville wrote: Ivo van Doorn (1): Add 93cx6 eeprom library Michael Wu (1): Add rtl8187 wireless driver I presume these are the two parts you question. (Just checking...) The normal development process is: * commit new code to your repository * that goes into -mm for public testing and review * merge window opens * the code that has seen public testing and review goes upstream The general idea is everything you want in 2.6.22 should be prepared and in -mm BEFORE 2.6.21 is released, and the 2.6.22 merge window opens. It's quite normal for fixes and minor changes to trickle in after the push that follows the merge window opening. But new drivers that have not been through this process do not fall under fixes and minor changes. I agree whole-heartedly. The whole mac80211 driver package (including rtl8187) has been in -mm (and rawhide) for most of the 2.6.21 development cycle. The rtl8187 driver in particular has been relatively stable for the past couple of months (3 files changed, 13 insertions(+), 4 deletions(-) since 7 March 2007), and it seems to work well. I also did not see any response to my better as a single file driver suggestion. Yes, I see that now. Do you consider this a merge requirement? My main concern pre-merge would be accidentally destabilizing the code while stitching the files together. Other than that, the suggestion seems worthwhile. However, I think Michael plans to expand the driver to support rtl8180 and rtl8185. This may factor into why he chose to organize the code the way he has. So, I'll pull if you remove the two late additions. Any chance that you find the comments above persuasive? :-) John -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull upstream branch of wireless-2.6
On Wed, Feb 07, 2007 at 04:11:17PM -0500, John W. Linville wrote: On Tue, Feb 06, 2007 at 07:06:07PM -0500, Jeff Garzik wrote: Would you mind rebasing resending, kind sir? By your command! :-) And once more, now with feeling! :-) --- The following changes since commit 62d0cfcb27cf755cebdc93ca95dabc83608007cd: Linus Torvalds (1): Linux 2.6.20 are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake (1): zd1211rw: Remove noisy debug message Larry Finger (5): bcm43xx: Fix problem with 1 GB RAM bcm43xx: Fix scaling error for 'iwlist rate' information bcm43xx: Fix scaling error for 'iwlist freq' information bcm43xx: Check error returns in initialization routines ieee80211: Fix sparse warning Maxime Austruy (1): zd1211rw: fix potential leak in usb_init Michael Buesch (1): bcm43xx: Enable fwpostfix in nondebug bcm43xx Robert P. J. Day (2): Rename IPW2100 debugging macros to not look like config options. Replace incorrect macro name WIRELESS_EXT with CONFIG_WIRELESS_EXT Ulrich Kunitz (3): zd1211rw: Reset device in the probe call zd1211rw: Fixed array size issue in reset_mode zd1211rw: Added error stats update drivers/net/wireless/bcm43xx/bcm43xx.h |1 + drivers/net/wireless/bcm43xx/bcm43xx_dma.c | 171 +++ drivers/net/wireless/bcm43xx/bcm43xx_main.c | 25 +++-- drivers/net/wireless/bcm43xx/bcm43xx_wx.c | 28 ++-- drivers/net/wireless/ipw2100.c | 16 ++-- drivers/net/wireless/zd1211rw/zd_mac.c | 44 ++-- drivers/net/wireless/zd1211rw/zd_usb.c | 12 ++ net/core/net-sysfs.c|4 +- net/ieee80211/ieee80211_tx.c|3 - 9 files changed, 210 insertions(+), 94 deletions(-) diff --git a/drivers/net/wireless/bcm43xx/bcm43xx.h b/drivers/net/wireless/bcm43xx/bcm43xx.h index 8286678..4168b1a 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx.h +++ b/drivers/net/wireless/bcm43xx/bcm43xx.h @@ -766,6 +766,7 @@ struct bcm43xx_private { * This is currently always BCM43xx_BUSTYPE_PCI */ u8 bustype; + u64 dma_mask; u16 board_vendor; u16 board_type; diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_dma.c b/drivers/net/wireless/bcm43xx/bcm43xx_dma.c index 978ed09..6e0dc76 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_dma.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_dma.c @@ -145,16 +145,14 @@ dma_addr_t map_descbuffer(struct bcm43xx_dmaring *ring, int tx) { dma_addr_t dmaaddr; + int direction = PCI_DMA_FROMDEVICE; - if (tx) { - dmaaddr = dma_map_single(ring-bcm-pci_dev-dev, -buf, len, -DMA_TO_DEVICE); - } else { - dmaaddr = dma_map_single(ring-bcm-pci_dev-dev, + if (tx) + direction = PCI_DMA_TODEVICE; + + dmaaddr = pci_map_single(ring-bcm-pci_dev, buf, len, -DMA_FROM_DEVICE); - } +direction); return dmaaddr; } @@ -166,13 +164,13 @@ void unmap_descbuffer(struct bcm43xx_dmaring *ring, int tx) { if (tx) { - dma_unmap_single(ring-bcm-pci_dev-dev, + pci_unmap_single(ring-bcm-pci_dev, addr, len, -DMA_TO_DEVICE); +PCI_DMA_TODEVICE); } else { - dma_unmap_single(ring-bcm-pci_dev-dev, + pci_unmap_single(ring-bcm-pci_dev, addr, len, -DMA_FROM_DEVICE); +PCI_DMA_FROMDEVICE); } } @@ -183,8 +181,8 @@ void sync_descbuffer_for_cpu(struct bcm43xx_dmaring *ring, { assert(!ring-tx); - dma_sync_single_for_cpu(ring-bcm-pci_dev-dev, - addr, len, DMA_FROM_DEVICE); + pci_dma_sync_single_for_cpu(ring-bcm-pci_dev, + addr, len, PCI_DMA_FROMDEVICE); } static inline @@ -194,8 +192,8 @@ void sync_descbuffer_for_device(struct bcm43xx_dmaring *ring, { assert(!ring-tx); - dma_sync_single_for_device(ring-bcm-pci_dev-dev, - addr, len, DMA_FROM_DEVICE); + pci_dma_sync_single_for_cpu(ring-bcm-pci_dev, + addr, len, PCI_DMA_TODEVICE); } /* Unmap and free a descriptor buffer. */ @@ -214,17 +212,53 @@ void free_descriptor_buffer(struct bcm43xx_dmaring *ring, static int alloc_ringmemory(struct bcm43xx_dmaring *ring) { - struct device *dev = (ring-bcm-pci_dev-dev); - - ring-descbase = dma_alloc_coherent(dev,
Re: Please pull upstream branch of wireless-2.6
John W. Linville wrote: On Wed, Feb 07, 2007 at 04:11:17PM -0500, John W. Linville wrote: On Tue, Feb 06, 2007 at 07:06:07PM -0500, Jeff Garzik wrote: Would you mind rebasing resending, kind sir? By your command! :-) And once more, now with feeling! :-) --- The following changes since commit 62d0cfcb27cf755cebdc93ca95dabc83608007cd: Linus Torvalds (1): Linux 2.6.20 are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake (1): zd1211rw: Remove noisy debug message Larry Finger (5): bcm43xx: Fix problem with 1 GB RAM bcm43xx: Fix scaling error for 'iwlist rate' information bcm43xx: Fix scaling error for 'iwlist freq' information bcm43xx: Check error returns in initialization routines ieee80211: Fix sparse warning Maxime Austruy (1): zd1211rw: fix potential leak in usb_init Michael Buesch (1): bcm43xx: Enable fwpostfix in nondebug bcm43xx Robert P. J. Day (2): Rename IPW2100 debugging macros to not look like config options. Replace incorrect macro name WIRELESS_EXT with CONFIG_WIRELESS_EXT Ulrich Kunitz (3): zd1211rw: Reset device in the probe call zd1211rw: Fixed array size issue in reset_mode zd1211rw: Added error stats update drivers/net/wireless/bcm43xx/bcm43xx.h |1 + drivers/net/wireless/bcm43xx/bcm43xx_dma.c | 171 +++ drivers/net/wireless/bcm43xx/bcm43xx_main.c | 25 +++-- drivers/net/wireless/bcm43xx/bcm43xx_wx.c | 28 ++-- drivers/net/wireless/ipw2100.c | 16 ++-- drivers/net/wireless/zd1211rw/zd_mac.c | 44 ++-- drivers/net/wireless/zd1211rw/zd_usb.c | 12 ++ net/core/net-sysfs.c|4 +- net/ieee80211/ieee80211_tx.c|3 - 9 files changed, 210 insertions(+), 94 deletions(-) pulled, thanks - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull upstream branch of wireless-2.6
This patches are intended for 2.6.21. --- The following changes since commit 541c654cfdeb5cc6d2e945988985570384ee2a43: John W. Linville (1): Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake (1): zd1211rw: Remove noisy debug message Larry Finger (3): bcm43xx: Fix problem with 1 GB RAM bcm43xx: Fix scaling error for 'iwlist rate' information bcm43xx: Fix scaling error for 'iwlist freq' information Michael Buesch (1): bcm43xx: Enable fwpostfix in nondebug bcm43xx Robert P. J. Day (1): Rename IPW2100 debugging macros to not look like config options. Ulrich Kunitz (3): zd1211rw: Reset device in the probe call zd1211rw: Fixed array size issue in reset_mode zd1211rw: Added error stats update drivers/net/wireless/bcm43xx/bcm43xx.h |1 + drivers/net/wireless/bcm43xx/bcm43xx_dma.c | 171 +++ drivers/net/wireless/bcm43xx/bcm43xx_main.c |6 +- drivers/net/wireless/bcm43xx/bcm43xx_wx.c | 28 ++-- drivers/net/wireless/ipw2100.c | 16 ++-- drivers/net/wireless/zd1211rw/zd_mac.c | 44 ++-- drivers/net/wireless/zd1211rw/zd_usb.c | 11 ++ 7 files changed, 193 insertions(+), 84 deletions(-) diff --git a/drivers/net/wireless/bcm43xx/bcm43xx.h b/drivers/net/wireless/bcm43xx/bcm43xx.h index 3a064de..0e790ef 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx.h +++ b/drivers/net/wireless/bcm43xx/bcm43xx.h @@ -771,6 +771,7 @@ struct bcm43xx_private { * This is currently always BCM43xx_BUSTYPE_PCI */ u8 bustype; + u64 dma_mask; u16 board_vendor; u16 board_type; diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_dma.c b/drivers/net/wireless/bcm43xx/bcm43xx_dma.c index 978ed09..6e0dc76 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_dma.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_dma.c @@ -145,16 +145,14 @@ dma_addr_t map_descbuffer(struct bcm43xx_dmaring *ring, int tx) { dma_addr_t dmaaddr; + int direction = PCI_DMA_FROMDEVICE; - if (tx) { - dmaaddr = dma_map_single(ring-bcm-pci_dev-dev, -buf, len, -DMA_TO_DEVICE); - } else { - dmaaddr = dma_map_single(ring-bcm-pci_dev-dev, + if (tx) + direction = PCI_DMA_TODEVICE; + + dmaaddr = pci_map_single(ring-bcm-pci_dev, buf, len, -DMA_FROM_DEVICE); - } +direction); return dmaaddr; } @@ -166,13 +164,13 @@ void unmap_descbuffer(struct bcm43xx_dmaring *ring, int tx) { if (tx) { - dma_unmap_single(ring-bcm-pci_dev-dev, + pci_unmap_single(ring-bcm-pci_dev, addr, len, -DMA_TO_DEVICE); +PCI_DMA_TODEVICE); } else { - dma_unmap_single(ring-bcm-pci_dev-dev, + pci_unmap_single(ring-bcm-pci_dev, addr, len, -DMA_FROM_DEVICE); +PCI_DMA_FROMDEVICE); } } @@ -183,8 +181,8 @@ void sync_descbuffer_for_cpu(struct bcm43xx_dmaring *ring, { assert(!ring-tx); - dma_sync_single_for_cpu(ring-bcm-pci_dev-dev, - addr, len, DMA_FROM_DEVICE); + pci_dma_sync_single_for_cpu(ring-bcm-pci_dev, + addr, len, PCI_DMA_FROMDEVICE); } static inline @@ -194,8 +192,8 @@ void sync_descbuffer_for_device(struct bcm43xx_dmaring *ring, { assert(!ring-tx); - dma_sync_single_for_device(ring-bcm-pci_dev-dev, - addr, len, DMA_FROM_DEVICE); + pci_dma_sync_single_for_cpu(ring-bcm-pci_dev, + addr, len, PCI_DMA_TODEVICE); } /* Unmap and free a descriptor buffer. */ @@ -214,17 +212,53 @@ void free_descriptor_buffer(struct bcm43xx_dmaring *ring, static int alloc_ringmemory(struct bcm43xx_dmaring *ring) { - struct device *dev = (ring-bcm-pci_dev-dev); - - ring-descbase = dma_alloc_coherent(dev, BCM43xx_DMA_RINGMEMSIZE, - (ring-dmabase), GFP_KERNEL); + ring-descbase = pci_alloc_consistent(ring-bcm-pci_dev, BCM43xx_DMA_RINGMEMSIZE, + (ring-dmabase)); if (!ring-descbase) { - printk(KERN_ERR PFX DMA ringmemory allocation failed\n); - return -ENOMEM; + /* Allocation may have failed due to pci_alloc_consistent + insisting on use of GFP_DMA, which is more
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: The following changes since commit 10764889c6355cbb335cf0578ce12427475d1a65: Larry Finger (1): bcm43xx: Fix failure to deliver PCI-E interrupts are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake (6): zd1211rw: Generic HMAC initialization zd1211rw: 2 new ZD1211B device ID's zd1211rw: Consistency for address space constants zd1211rw: Remove addressing abstraction zd1211rw: Add ID for Linksys WUSBF54G zd1211rw: Add ID for ZyXEL ZyAIR G-220 v2 John W. Linville (1): softmac: avoid assert in ieee80211softmac_wx_get_rate Kai Engert (1): prism54: add ethtool -i interface Larry Finger (1): bcm43xx: Interrogate hardware-enable switch and update LEDs Michael Buesch (1): Update Prism54 MAINTAINERS entry Zhu Yi (1): ipw2200: add iwconfig rts/frag auto support pulled, thanks - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re. Please pull 'upstream' branch of wireless-2.6
Kai Engert (1): prism54: add ethtool -i interface I would have expected at least the firmware version to be reported as well as the bus info. (info-fw_version, info-bus_info) Roger While - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Re. Please pull 'upstream' branch of wireless-2.6
On Sat, Jan 20, 2007 at 12:28:44PM +0100, Roger While wrote: Kai Engert (1): prism54: add ethtool -i interface I would have expected at least the firmware version to be reported as well as the bus info. (info-fw_version, info-bus_info) Patches welcome. John -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Thu, Jan 18, 2007 at 10:10:47PM -0500, Jeff Garzik wrote: John W. Linville wrote: The following changes since commit 10764889c6355cbb335cf0578ce12427475d1a65: Larry Finger (1): bcm43xx: Fix failure to deliver PCI-E interrupts are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream ACK. Open question of parentage, though: I just rebased netdev-2.6.git#upstream. Is your wireless-2.6 affected by this rebase? If not, I will go ahead and pull. Right now it looks like this: Linus's tree - my upstream-fixes branch - my upstream branch So, I think it should be fine for your you to pull. Thanks, John -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Tue, Jan 02, 2007 at 09:42:47PM -0500, John W. Linville wrote: The following changes since commit fe5f8e2a1c5c040209c598a28e19c55f30e1040d: Zhu Yi (1): ipw2100: Fix dropping fragmented small packet problem are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake (5): zd1211rw: Generic HMAC initialization zd1211rw: 2 new ZD1211B device ID's zd1211rw: Consistency for address space constants zd1211rw: Remove addressing abstraction zd1211rw: Add ID for Linksys WUSBF54G John W. Linville (1): softmac: avoid assert in ieee80211softmac_wx_get_rate Kai Engert (1): prism54: add ethtool -i interface Larry Finger (1): bcm43xx: Interrogate hardware-enable switch and update LEDs Michael Buesch (1): Update Prism54 MAINTAINERS entry Jeff, it looks like you didn't pull this one yet. I'm going to rebase my upstream branch on top of my additions to my upstream-fixes branch. So, just ignore this request and wait for the next round of pull requests. The next round is ready to go, except I can't login to master.kernel.org today. As soon as that is resolved, I'll push and send the pull requests. Thanks, John P.S. If you haven't pulled due to some objection, please send me a note to let me know why. -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit 10764889c6355cbb335cf0578ce12427475d1a65: Larry Finger (1): bcm43xx: Fix failure to deliver PCI-E interrupts are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake (6): zd1211rw: Generic HMAC initialization zd1211rw: 2 new ZD1211B device ID's zd1211rw: Consistency for address space constants zd1211rw: Remove addressing abstraction zd1211rw: Add ID for Linksys WUSBF54G zd1211rw: Add ID for ZyXEL ZyAIR G-220 v2 John W. Linville (1): softmac: avoid assert in ieee80211softmac_wx_get_rate Kai Engert (1): prism54: add ethtool -i interface Larry Finger (1): bcm43xx: Interrogate hardware-enable switch and update LEDs Michael Buesch (1): Update Prism54 MAINTAINERS entry Zhu Yi (1): ipw2200: add iwconfig rts/frag auto support MAINTAINERS |2 +- drivers/net/wireless/bcm43xx/bcm43xx.h|7 +- drivers/net/wireless/bcm43xx/bcm43xx_leds.c | 11 +- drivers/net/wireless/bcm43xx/bcm43xx_main.c | 36 -- drivers/net/wireless/bcm43xx/bcm43xx_radio.c |2 + drivers/net/wireless/bcm43xx/bcm43xx_radio.h | 16 +++ drivers/net/wireless/ipw2200.c|4 +- drivers/net/wireless/prism54/islpci_dev.c | 13 ++ drivers/net/wireless/prism54/islpci_dev.h |4 + drivers/net/wireless/prism54/islpci_hotplug.c |3 - drivers/net/wireless/zd1211rw/zd_chip.c | 126 ++-- drivers/net/wireless/zd1211rw/zd_chip.h | 158 ++--- drivers/net/wireless/zd1211rw/zd_def.h|2 + drivers/net/wireless/zd1211rw/zd_ieee80211.h |1 - drivers/net/wireless/zd1211rw/zd_rf.h |2 - drivers/net/wireless/zd1211rw/zd_types.h | 71 --- drivers/net/wireless/zd1211rw/zd_usb.c| 128 ++-- drivers/net/wireless/zd1211rw/zd_usb.h|6 +- net/ieee80211/softmac/ieee80211softmac_wx.c |6 + 19 files changed, 256 insertions(+), 342 deletions(-) delete mode 100644 drivers/net/wireless/zd1211rw/zd_types.h diff --git a/MAINTAINERS b/MAINTAINERS index 1b1491d..42b57cf 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2654,7 +2654,7 @@ S:Supported PRISM54 WIRELESS DRIVER P: Prism54 Development Team -M: [EMAIL PROTECTED] +M: [EMAIL PROTECTED] L: netdev@vger.kernel.org W: http://prism54.org S: Maintained diff --git a/drivers/net/wireless/bcm43xx/bcm43xx.h b/drivers/net/wireless/bcm43xx/bcm43xx.h index 8286678..3a064de 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx.h +++ b/drivers/net/wireless/bcm43xx/bcm43xx.h @@ -352,6 +352,10 @@ #define BCM43xx_UCODEFLAG_UNKPACTRL0x0040 #define BCM43xx_UCODEFLAG_JAPAN0x0080 +/* Hardware Radio Enable masks */ +#define BCM43xx_MMIO_RADIO_HWENABLED_HI_MASK (1 16) +#define BCM43xx_MMIO_RADIO_HWENABLED_LO_MASK (1 4) + /* Generic-Interrupt reasons. */ #define BCM43xx_IRQ_READY (1 0) #define BCM43xx_IRQ_BEACON (1 1) @@ -758,7 +762,8 @@ struct bcm43xx_private { bad_frames_preempt:1, /* Use Bad Frames Preemption (default off) */ reg124_set_0x4:1, /* Some variable to keep track of IRQ stuff. */ short_preamble:1, /* TRUE, if short preamble is enabled. */ - firmware_norelease:1; /* Do not release the firmware. Used on suspend. */ + firmware_norelease:1, /* Do not release the firmware. Used on suspend. */ + radio_hw_enable:1; /* TRUE if radio is hardware enabled */ struct bcm43xx_stats stats; diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_leds.c b/drivers/net/wireless/bcm43xx/bcm43xx_leds.c index 7d383a2..8f198be 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_leds.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_leds.c @@ -26,6 +26,7 @@ */ #include bcm43xx_leds.h +#include bcm43xx_radio.h #include bcm43xx.h #include asm/bitops.h @@ -108,6 +109,7 @@ static void bcm43xx_led_init_hardcoded(struct bcm43xx_private *bcm, switch (led_index) { case 0: led-behaviour = BCM43xx_LED_ACTIVITY; + led-activelow = 1; if (bcm-board_vendor == PCI_VENDOR_ID_COMPAQ) led-behaviour = BCM43xx_LED_RADIO_ALL; break; @@ -199,20 +201,21 @@ void bcm43xx_leds_update(struct bcm43xx_private *bcm, int activity) turn_on = activity; break; case BCM43xx_LED_RADIO_ALL: - turn_on = radio-enabled; + turn_on = radio-enabled bcm43xx_is_hw_radio_enabled(bcm); break; case BCM43xx_LED_RADIO_A: case BCM43xx_LED_BCM4303_2: - turn_on = (radio-enabled phy-type ==
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: The following changes since commit 10764889c6355cbb335cf0578ce12427475d1a65: Larry Finger (1): bcm43xx: Fix failure to deliver PCI-E interrupts are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream ACK. Open question of parentage, though: I just rebased netdev-2.6.git#upstream. Is your wireless-2.6 affected by this rebase? If not, I will go ahead and pull. Jeff - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Wed, Dec 27, 2006 at 07:10:57PM -0500, John W. Linville wrote: On Tue, Dec 26, 2006 at 04:39:38PM -0500, Jeff Garzik wrote: John W. Linville wrote: The following changes since commit 0c234ae655a45ac3ee53a25b2e56e9bb6c27d71d: Ulrich Kunitz (1): ieee80211softmac: Fix mutex_lock at exit of ieee80211_softmac_get_genie are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Roy Marples (1): prism54: set carrier flags correctly Why is this not #upstream-fixes material? What's the impact? Just being cautious, really. I have no objection if you want to pull it as a fix. After further review... Jeff, it looks like you have not pulled this one so far. Based on the commentary from Roger While [1], lets hold-off on this one. Roy, please consider refactoring your patch based on Roger's comments. Thanks, John [1] http://marc.10east.com/?l=linux-netdevm=116740017623597w=2 -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit fe5f8e2a1c5c040209c598a28e19c55f30e1040d: Zhu Yi (1): ipw2100: Fix dropping fragmented small packet problem are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake (5): zd1211rw: Generic HMAC initialization zd1211rw: 2 new ZD1211B device ID's zd1211rw: Consistency for address space constants zd1211rw: Remove addressing abstraction zd1211rw: Add ID for Linksys WUSBF54G John W. Linville (1): softmac: avoid assert in ieee80211softmac_wx_get_rate Kai Engert (1): prism54: add ethtool -i interface Larry Finger (1): bcm43xx: Interrogate hardware-enable switch and update LEDs Michael Buesch (1): Update Prism54 MAINTAINERS entry MAINTAINERS |2 +- drivers/net/wireless/bcm43xx/bcm43xx.h|7 +- drivers/net/wireless/bcm43xx/bcm43xx_leds.c | 11 +- drivers/net/wireless/bcm43xx/bcm43xx_main.c | 36 -- drivers/net/wireless/bcm43xx/bcm43xx_radio.c |2 + drivers/net/wireless/bcm43xx/bcm43xx_radio.h | 16 +++ drivers/net/wireless/prism54/islpci_dev.c | 13 ++ drivers/net/wireless/prism54/islpci_dev.h |4 + drivers/net/wireless/prism54/islpci_hotplug.c |3 - drivers/net/wireless/zd1211rw/zd_chip.c | 126 ++-- drivers/net/wireless/zd1211rw/zd_chip.h | 158 ++--- drivers/net/wireless/zd1211rw/zd_def.h|2 + drivers/net/wireless/zd1211rw/zd_ieee80211.h |1 - drivers/net/wireless/zd1211rw/zd_rf.h |2 - drivers/net/wireless/zd1211rw/zd_types.h | 71 --- drivers/net/wireless/zd1211rw/zd_usb.c| 127 ++-- drivers/net/wireless/zd1211rw/zd_usb.h|6 +- net/ieee80211/softmac/ieee80211softmac_wx.c |6 + 18 files changed, 253 insertions(+), 340 deletions(-) delete mode 100644 drivers/net/wireless/zd1211rw/zd_types.h diff --git a/MAINTAINERS b/MAINTAINERS index d5a97d3..edb4c39 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2606,7 +2606,7 @@ S:Supported PRISM54 WIRELESS DRIVER P: Prism54 Development Team -M: [EMAIL PROTECTED] +M: [EMAIL PROTECTED] L: netdev@vger.kernel.org W: http://prism54.org S: Maintained diff --git a/drivers/net/wireless/bcm43xx/bcm43xx.h b/drivers/net/wireless/bcm43xx/bcm43xx.h index 8286678..3a064de 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx.h +++ b/drivers/net/wireless/bcm43xx/bcm43xx.h @@ -352,6 +352,10 @@ #define BCM43xx_UCODEFLAG_UNKPACTRL0x0040 #define BCM43xx_UCODEFLAG_JAPAN0x0080 +/* Hardware Radio Enable masks */ +#define BCM43xx_MMIO_RADIO_HWENABLED_HI_MASK (1 16) +#define BCM43xx_MMIO_RADIO_HWENABLED_LO_MASK (1 4) + /* Generic-Interrupt reasons. */ #define BCM43xx_IRQ_READY (1 0) #define BCM43xx_IRQ_BEACON (1 1) @@ -758,7 +762,8 @@ struct bcm43xx_private { bad_frames_preempt:1, /* Use Bad Frames Preemption (default off) */ reg124_set_0x4:1, /* Some variable to keep track of IRQ stuff. */ short_preamble:1, /* TRUE, if short preamble is enabled. */ - firmware_norelease:1; /* Do not release the firmware. Used on suspend. */ + firmware_norelease:1, /* Do not release the firmware. Used on suspend. */ + radio_hw_enable:1; /* TRUE if radio is hardware enabled */ struct bcm43xx_stats stats; diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_leds.c b/drivers/net/wireless/bcm43xx/bcm43xx_leds.c index 7d383a2..8f198be 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_leds.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_leds.c @@ -26,6 +26,7 @@ */ #include bcm43xx_leds.h +#include bcm43xx_radio.h #include bcm43xx.h #include asm/bitops.h @@ -108,6 +109,7 @@ static void bcm43xx_led_init_hardcoded(struct bcm43xx_private *bcm, switch (led_index) { case 0: led-behaviour = BCM43xx_LED_ACTIVITY; + led-activelow = 1; if (bcm-board_vendor == PCI_VENDOR_ID_COMPAQ) led-behaviour = BCM43xx_LED_RADIO_ALL; break; @@ -199,20 +201,21 @@ void bcm43xx_leds_update(struct bcm43xx_private *bcm, int activity) turn_on = activity; break; case BCM43xx_LED_RADIO_ALL: - turn_on = radio-enabled; + turn_on = radio-enabled bcm43xx_is_hw_radio_enabled(bcm); break; case BCM43xx_LED_RADIO_A: case BCM43xx_LED_BCM4303_2: - turn_on = (radio-enabled phy-type == BCM43xx_PHYTYPE_A); + turn_on = (radio-enabled bcm43xx_is_hw_radio_enabled(bcm) + phy-type == BCM43xx_PHYTYPE_A);
Re. Please pull 'upstream' branch of wireless-2.6
Roy Marples (1): prism54: set carrier flags correctly Why is this not #upstream-fixes material? What's the impact? Actually, I think the patch is incorrect. At best it is insufficient and at worst it stops the driver working correctly. I can't see why we do carrier_off after start_queue in the open. Other drivers (eg. ipw2100) do carrier_on. We should also look at other places where eg. stop_queue is called and do a carrier_off eg. the close routine. (Amongst others) Also according to Documentation/networking/operstates.txt (netif_carrier_on/off) - It is guaranteed that only the driver has write access, however, if different layers of the driver manipulate the same flag, the driver has to provide the synchronisation needed. The trap routine in isl_ioctl.c however is lockless. Assuming that the doc is correct, I would have thought that putting carrier_on/off here is buggy or ? Roger While - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Tue, Dec 26, 2006 at 04:39:38PM -0500, Jeff Garzik wrote: John W. Linville wrote: The following changes since commit 0c234ae655a45ac3ee53a25b2e56e9bb6c27d71d: Ulrich Kunitz (1): ieee80211softmac: Fix mutex_lock at exit of ieee80211_softmac_get_genie are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Roy Marples (1): prism54: set carrier flags correctly Why is this not #upstream-fixes material? What's the impact? Just being cautious, really. I have no objection if you want to pull it as a fix. John -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit 0c234ae655a45ac3ee53a25b2e56e9bb6c27d71d: Ulrich Kunitz (1): ieee80211softmac: Fix mutex_lock at exit of ieee80211_softmac_get_genie are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Roy Marples (1): prism54: set carrier flags correctly drivers/net/wireless/prism54/isl_ioctl.c |5 - drivers/net/wireless/prism54/islpci_dev.c |4 +++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/prism54/isl_ioctl.c b/drivers/net/wireless/prism54/isl_ioctl.c index 838d510..25d42ac 100644 --- a/drivers/net/wireless/prism54/isl_ioctl.c +++ b/drivers/net/wireless/prism54/isl_ioctl.c @@ -2093,8 +2093,11 @@ link_changed(struct net_device *ndev, u32 bitrate) } else send_simple_event(netdev_priv(ndev), Link established); - } else + netif_carrier_on(ndev); + } else { send_simple_event(netdev_priv(ndev), Link lost); + netif_carrier_off(ndev); + } } /* Beacon/ProbeResp payload header */ diff --git a/drivers/net/wireless/prism54/islpci_dev.c b/drivers/net/wireless/prism54/islpci_dev.c index f057fd9..9c8c6f2 100644 --- a/drivers/net/wireless/prism54/islpci_dev.c +++ b/drivers/net/wireless/prism54/islpci_dev.c @@ -386,7 +386,9 @@ islpci_open(struct net_device *ndev) } netif_start_queue(ndev); -/* netif_mark_up( ndev ); */ + + /* Turn off carrier unless we know we have associated */ + netif_carrier_off(ndev); return 0; } -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit 9202f32558601c2c99ddc438eb3218131d00d413: Ralf Baechle: [MIPS] Export local_flush_data_cache_page for sake of IDE. are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Roy Marples: prism54: set carrier flags correctly Ulrich Kunitz: zd1211rw: Call ieee80211_rx in tasklet ieee80211softmac: Fix errors related to the work_struct changes ieee80211softmac: Fix mutex_lock at exit of ieee80211_softmac_get_genie drivers/net/wireless/prism54/isl_ioctl.c |5 + drivers/net/wireless/prism54/islpci_dev.c |4 + drivers/net/wireless/zd1211rw/zd_mac.c | 96 ++-- drivers/net/wireless/zd1211rw/zd_mac.h |5 + drivers/net/wireless/zd1211rw/zd_usb.c |4 + net/ieee80211/softmac/ieee80211softmac_assoc.c |4 + net/ieee80211/softmac/ieee80211softmac_wx.c|2 - 7 files changed, 86 insertions(+), 34 deletions(-) diff --git a/drivers/net/wireless/prism54/isl_ioctl.c b/drivers/net/wireless/prism54/isl_ioctl.c index 96606ed..a6ffed1 100644 --- a/drivers/net/wireless/prism54/isl_ioctl.c +++ b/drivers/net/wireless/prism54/isl_ioctl.c @@ -2093,8 +2093,11 @@ link_changed(struct net_device *ndev, u3 } else send_simple_event(netdev_priv(ndev), Link established); - } else + netif_carrier_on(ndev); + } else { send_simple_event(netdev_priv(ndev), Link lost); + netif_carrier_off(ndev); + } } /* Beacon/ProbeResp payload header */ diff --git a/drivers/net/wireless/prism54/islpci_dev.c b/drivers/net/wireless/prism54/islpci_dev.c index f057fd9..9c8c6f2 100644 --- a/drivers/net/wireless/prism54/islpci_dev.c +++ b/drivers/net/wireless/prism54/islpci_dev.c @@ -386,7 +386,9 @@ islpci_open(struct net_device *ndev) } netif_start_queue(ndev); -/* netif_mark_up( ndev ); */ + + /* Turn off carrier unless we know we have associated */ + netif_carrier_off(ndev); return 0; } diff --git a/drivers/net/wireless/zd1211rw/zd_mac.c b/drivers/net/wireless/zd1211rw/zd_mac.c index 00ca704..a085241 100644 --- a/drivers/net/wireless/zd1211rw/zd_mac.c +++ b/drivers/net/wireless/zd1211rw/zd_mac.c @@ -41,6 +41,8 @@ static void housekeeping_disable(struct static void set_multicast_hash_handler(struct work_struct *work); +static void do_rx(unsigned long mac_ptr); + int zd_mac_init(struct zd_mac *mac, struct net_device *netdev, struct usb_interface *intf) @@ -53,6 +55,10 @@ int zd_mac_init(struct zd_mac *mac, INIT_DELAYED_WORK(mac-set_rts_cts_work, set_rts_cts_work); INIT_DELAYED_WORK(mac-set_basic_rates_work, set_basic_rates_work); + skb_queue_head_init(mac-rx_queue); + tasklet_init(mac-rx_tasklet, do_rx, (unsigned long)mac); + tasklet_disable(mac-rx_tasklet); + ieee_init(ieee); softmac_init(ieee80211_priv(netdev)); zd_chip_init(mac-chip, netdev, intf); @@ -140,6 +146,8 @@ out: void zd_mac_clear(struct zd_mac *mac) { flush_workqueue(zd_workqueue); + skb_queue_purge(mac-rx_queue); + tasklet_kill(mac-rx_tasklet); zd_chip_clear(mac-chip); ZD_ASSERT(!spin_is_locked(mac-lock)); ZD_MEMCLEAR(mac, sizeof(struct zd_mac)); @@ -168,6 +176,8 @@ int zd_mac_open(struct net_device *netde struct zd_chip *chip = mac-chip; int r; + tasklet_enable(mac-rx_tasklet); + r = zd_chip_enable_int(chip); if (r 0) goto out; @@ -218,6 +228,8 @@ int zd_mac_stop(struct net_device *netde */ zd_chip_disable_rx(chip); + skb_queue_purge(mac-rx_queue); + tasklet_disable(mac-rx_tasklet); housekeeping_disable(mac); ieee80211softmac_stop(netdev); @@ -470,13 +482,13 @@ static void bssinfo_change(struct net_de if (changes IEEE80211SOFTMAC_BSSINFOCHG_RATES) { /* Set RTS rate to highest available basic rate */ - u8 rate = ieee80211softmac_highest_supported_rate(softmac, + u8 hi_rate = ieee80211softmac_highest_supported_rate(softmac, bssinfo-supported_rates, 1); - rate = rate_to_zd_rate(rate); + hi_rate = rate_to_zd_rate(hi_rate); spin_lock_irqsave(mac-lock, flags); - if (rate != mac-rts_rate) { - mac-rts_rate = rate; + if (hi_rate != mac-rts_rate) { + mac-rts_rate = hi_rate; need_set_rts_cts = 1; } spin_unlock_irqrestore(mac-lock, flags); @@ -1072,43 +1084,75 @@ static int fill_rx_stats(struct ieee8021 return 0; } -int zd_mac_rx(struct zd_mac *mac, const u8 *buffer, unsigned int length) +static
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: The following changes since commit e62438630ca37539c8cc1553710bbfaa3cf960a7: Matthew Wilcox: Centralise definitions of sector_t and blkcnt_t are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream pulled, but there were workqueue-related conflicts. let me know if #upstream doesn't match what you would like. - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit e62438630ca37539c8cc1553710bbfaa3cf960a7: Matthew Wilcox: Centralise definitions of sector_t and blkcnt_t are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake: zd1211rw: zd_mac_rx isn't always called in IRQ context zd1211rw: Fill enc_capa in GIWRANGE handler Maxime Austruy: softmac: fix unbalanced mutex_lock/unlock in ieee80211softmac_wx_set_mlme Ulrich Kunitz: zd1211rw: Support for multicast addresses softmac: Fixed handling of deassociation from AP Yan Burman: hostap: replace kmalloc+memset with kzalloc prism54: replace kmalloc+memset with kzalloc ipw2200: replace kmalloc+memset with kcalloc Zhu Yi: ipw2200: Add IEEE80211_RADIOTAP_TSFT for promiscuous mode ipw2200: Update version stamp to 1.2.0 ipw2200: Fix a typo ipw2200: Fix debug output endian issue drivers/net/wireless/hostap/hostap_ap.c|4 -- drivers/net/wireless/hostap/hostap_cs.c|3 - drivers/net/wireless/hostap/hostap_download.c |4 -- drivers/net/wireless/hostap/hostap_hw.c| 12 + drivers/net/wireless/hostap/hostap_info.c |3 - drivers/net/wireless/hostap/hostap_ioctl.c | 12 + drivers/net/wireless/hostap/hostap_pci.c |3 - drivers/net/wireless/hostap/hostap_plx.c |3 - drivers/net/wireless/ipw2100.c |2 - drivers/net/wireless/ipw2200.c | 24 +++ drivers/net/wireless/prism54/isl_ioctl.c |9 +--- drivers/net/wireless/prism54/oid_mgt.c |4 -- drivers/net/wireless/zd1211rw/zd_chip.c| 13 ++ drivers/net/wireless/zd1211rw/zd_chip.h| 43 +++ drivers/net/wireless/zd1211rw/zd_mac.c | 53 ++-- drivers/net/wireless/zd1211rw/zd_mac.h |3 + drivers/net/wireless/zd1211rw/zd_netdev.c |2 - net/ieee80211/softmac/ieee80211softmac_assoc.c | 14 +- net/ieee80211/softmac/ieee80211softmac_auth.c |2 + net/ieee80211/softmac/ieee80211softmac_priv.h |2 + net/ieee80211/softmac/ieee80211softmac_wx.c|3 + 21 files changed, 158 insertions(+), 60 deletions(-) diff --git a/drivers/net/wireless/hostap/hostap_ap.c b/drivers/net/wireless/hostap/hostap_ap.c index ba13125..798a855 100644 --- a/drivers/net/wireless/hostap/hostap_ap.c +++ b/drivers/net/wireless/hostap/hostap_ap.c @@ -1099,15 +1099,13 @@ static struct sta_info * ap_add_sta(stru { struct sta_info *sta; - sta = (struct sta_info *) - kmalloc(sizeof(struct sta_info), GFP_ATOMIC); + sta = kzalloc(sizeof(struct sta_info), GFP_ATOMIC); if (sta == NULL) { PDEBUG(DEBUG_AP, AP: kmalloc failed\n); return NULL; } /* initialize STA info data */ - memset(sta, 0, sizeof(struct sta_info)); sta-local = ap-local; skb_queue_head_init(sta-tx_buf); memcpy(sta-addr, addr, ETH_ALEN); diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c index f63909e..ef470e6 100644 --- a/drivers/net/wireless/hostap/hostap_cs.c +++ b/drivers/net/wireless/hostap/hostap_cs.c @@ -566,12 +566,11 @@ static int prism2_config(struct pcmcia_d PDEBUG(DEBUG_FLOW, prism2_config()\n); parse = kmalloc(sizeof(cisparse_t), GFP_KERNEL); - hw_priv = kmalloc(sizeof(*hw_priv), GFP_KERNEL); + hw_priv = kzalloc(sizeof(*hw_priv), GFP_KERNEL); if (parse == NULL || hw_priv == NULL) { ret = -ENOMEM; goto failed; } - memset(hw_priv, 0, sizeof(*hw_priv)); tuple.DesiredTuple = CISTPL_CONFIG; tuple.Attributes = 0; diff --git a/drivers/net/wireless/hostap/hostap_download.c b/drivers/net/wireless/hostap/hostap_download.c index ab26b52..24fc387 100644 --- a/drivers/net/wireless/hostap/hostap_download.c +++ b/drivers/net/wireless/hostap/hostap_download.c @@ -685,14 +685,12 @@ static int prism2_download(local_info_t goto out; } - dl = kmalloc(sizeof(*dl) + param-num_areas * + dl = kzalloc(sizeof(*dl) + param-num_areas * sizeof(struct prism2_download_data_area), GFP_KERNEL); if (dl == NULL) { ret = -ENOMEM; goto out; } - memset(dl, 0, sizeof(*dl) + param-num_areas * - sizeof(struct prism2_download_data_area)); dl-dl_cmd = param-dl_cmd; dl-start_addr = param-start_addr; dl-num_areas = param-num_areas; diff --git a/drivers/net/wireless/hostap/hostap_hw.c b/drivers/net/wireless/hostap/hostap_hw.c index ed00ebb..9c50336 100644 --- a/drivers/net/wireless/hostap/hostap_hw.c +++ b/drivers/net/wireless/hostap/hostap_hw.c @@ -347,14 +347,12 @@ static int hfa384x_cmd(struct net_device if
Re: Please pull 'upstream' branch of wireless-2.6
On Tue, Nov 14, 2006 at 08:31:12PM -0500, John W. Linville wrote: The following changes since commit 4c5d3c72166676663c3917839a030b86fa758b23: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Please ignore this request, in favor of the one to be posted later today. -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: The following changes since commit d4f748365129ccfc9dadf6fb14331e45e33cc4ed: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream John W. Linville: wireless: clean-up some check return code warnings Larry Finger: bcm43xx: remove badness variable and related routine bcm43xx: Remove useless core enable/disable messages ieee80211softmac: fix verbosity when debug disabled drivers/net/wireless/bcm43xx/bcm43xx_main.c | 56 + drivers/net/wireless/hostap/hostap_pci.c |8 +++- drivers/net/wireless/ipw2100.c|8 +++- drivers/net/wireless/ipw2200.c|8 +++- drivers/net/wireless/orinoco_pci.h|7 +++ drivers/net/wireless/prism54/islpci_hotplug.c | 20 +++-- net/ieee80211/softmac/ieee80211softmac_auth.c | 10 ++-- 7 files changed, 60 insertions(+), 57 deletions(-) pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit 4c5d3c72166676663c3917839a030b86fa758b23: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream John W. Linville: prism54: correct overly aggressive check of return from pci_set_mwi Larry Finger: bcm43xx: correct Move IV/ICV stripping into ieee80211_rx drivers/net/wireless/bcm43xx/bcm43xx_xmit.c |1 + drivers/net/wireless/prism54/islpci_hotplug.c |4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_xmit.c b/drivers/net/wireless/bcm43xx/bcm43xx_xmit.c index a957bc8..3e24626 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_xmit.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_xmit.c @@ -543,6 +543,7 @@ int bcm43xx_rx(struct bcm43xx_private *b break; } + frame_ctl = le16_to_cpu(wlhdr-frame_ctl); switch (WLAN_FC_GET_TYPE(frame_ctl)) { case IEEE80211_FTYPE_MGMT: ieee80211_rx_mgt(bcm-ieee, wlhdr, stats); diff --git a/drivers/net/wireless/prism54/islpci_hotplug.c b/drivers/net/wireless/prism54/islpci_hotplug.c index e0bca3a..58257b4 100644 --- a/drivers/net/wireless/prism54/islpci_hotplug.c +++ b/drivers/net/wireless/prism54/islpci_hotplug.c @@ -170,8 +170,8 @@ #endif pci_set_master(pdev); /* enable MWI */ - if (pci_set_mwi(pdev)) - goto do_pci_release_regions; + if (!pci_set_mwi(pdev)) + printk(KERN_INFO %s: pci_set_mwi(pdev) succeeded\n, DRV_NAME); /* setup the network device interface and its structure */ if (!(ndev = islpci_setup(pdev))) { -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re. Please pull 'upstream' branch of wireless-2.6
John wrote : Yeah, looks like I was a bit overzealous on the warning squelch... I'll cook-up a new patch that doesn't error-out. I hope you do not bloat the kernel with meaningless warning messages. Something simple like the following will do. /* enable MWI */ /* Shut up the must_check tests - We don't care if this does not succeed */ if (pci_set_mwi(pdev)) rvalue = 0; Roger While - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re. Please pull 'upstream' branch of wireless-2.6
John, you just broke a considerable number of prism54 users. It is NOT an error if the MWI set fails. This is just a performance tweak and has NO effect on the driver working. Roger While - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Re. Please pull 'upstream' branch of wireless-2.6
On Wed, Nov 08, 2006 at 06:27:54PM +0100, Roger While wrote: John, you just broke a considerable number of prism54 users. It is NOT an error if the MWI set fails. This is just a performance tweak and has NO effect on the driver working. Yeah, looks like I was a bit overzealous on the warning squelch... I'll cook-up a new patch that doesn't error-out. John -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Tue, Nov 07, 2006 at 11:59:27PM -0500, John W. Linville wrote: The following changes since commit d4f748365129ccfc9dadf6fb14331e45e33cc4ed: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream John W. Linville: wireless: clean-up some check return code warnings Jeff, hold-off on this pull. You can still go ahead and pull the 'upstream-fixes' branch at your pleasure. John -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit d4f748365129ccfc9dadf6fb14331e45e33cc4ed: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream John W. Linville: wireless: clean-up some check return code warnings Larry Finger: bcm43xx: remove badness variable and related routine bcm43xx: Remove useless core enable/disable messages ieee80211softmac: fix verbosity when debug disabled drivers/net/wireless/bcm43xx/bcm43xx_main.c | 56 + drivers/net/wireless/hostap/hostap_pci.c |8 +++- drivers/net/wireless/ipw2100.c|8 +++- drivers/net/wireless/ipw2200.c|8 +++- drivers/net/wireless/orinoco_pci.h|7 +++ drivers/net/wireless/prism54/islpci_hotplug.c | 20 +++-- net/ieee80211/softmac/ieee80211softmac_auth.c | 10 ++-- 7 files changed, 60 insertions(+), 57 deletions(-) diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c index c6bd868..60a9745 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c @@ -2684,14 +2684,10 @@ #endif bcm-chip_id, bcm-chip_rev); dprintk(KERN_INFO PFX Number of cores: %d\n, core_count); if (bcm-core_chipcommon.available) { - dprintk(KERN_INFO PFX Core 0: ID 0x%x, rev 0x%x, vendor 0x%x, %s\n, - core_id, core_rev, core_vendor, - bcm43xx_core_enabled(bcm) ? enabled : disabled); - } - - if (bcm-core_chipcommon.available) + dprintk(KERN_INFO PFX Core 0: ID 0x%x, rev 0x%x, vendor 0x%x\n, + core_id, core_rev, core_vendor); current_core = 1; - else + } else current_core = 0; for ( ; current_core core_count; current_core++) { struct bcm43xx_coreinfo *core; @@ -2709,9 +2705,8 @@ #endif core_rev = (sb_id_hi 0xF); core_vendor = (sb_id_hi 0x) 16; - dprintk(KERN_INFO PFX Core %d: ID 0x%x, rev 0x%x, vendor 0x%x, %s\n, - current_core, core_id, core_rev, core_vendor, - bcm43xx_core_enabled(bcm) ? enabled : disabled ); + dprintk(KERN_INFO PFX Core %d: ID 0x%x, rev 0x%x, vendor 0x%x\n, + current_core, core_id, core_rev, core_vendor); core = NULL; switch (core_id) { @@ -3209,55 +3204,27 @@ static void bcm43xx_periodic_every15sec( static void do_periodic_work(struct bcm43xx_private *bcm) { - unsigned int state; - - state = bcm-periodic_state; - if (state % 8 == 0) + if (bcm-periodic_state % 8 == 0) bcm43xx_periodic_every120sec(bcm); - if (state % 4 == 0) + if (bcm-periodic_state % 4 == 0) bcm43xx_periodic_every60sec(bcm); - if (state % 2 == 0) + if (bcm-periodic_state % 2 == 0) bcm43xx_periodic_every30sec(bcm); - if (state % 1 == 0) - bcm43xx_periodic_every15sec(bcm); - bcm-periodic_state = state + 1; + bcm43xx_periodic_every15sec(bcm); schedule_delayed_work(bcm-periodic_work, HZ * 15); } -/* Estimate a Badness value based on the periodic work - * state-machine state. Badness is worse (bigger), if the - * periodic work will take longer. - */ -static int estimate_periodic_work_badness(unsigned int state) -{ - int badness = 0; - - if (state % 8 == 0) /* every 120 sec */ - badness += 10; - if (state % 4 == 0) /* every 60 sec */ - badness += 5; - if (state % 2 == 0) /* every 30 sec */ - badness += 1; - if (state % 1 == 0) /* every 15 sec */ - badness += 1; - -#define BADNESS_LIMIT 4 - return badness; -} - static void bcm43xx_periodic_work_handler(void *d) { struct bcm43xx_private *bcm = d; struct net_device *net_dev = bcm-net_dev; unsigned long flags; u32 savedirqs = 0; - int badness; unsigned long orig_trans_start = 0; mutex_lock(bcm-mutex); - badness = estimate_periodic_work_badness(bcm-periodic_state); - if (badness BADNESS_LIMIT) { + if (unlikely(bcm-periodic_state % 4 == 0)) { /* Periodic work will take a long time, so we want it to * be preemtible. */ @@ -3289,7 +3256,7 @@ static void bcm43xx_periodic_work_handle do_periodic_work(bcm); - if (badness BADNESS_LIMIT) { + if (unlikely(bcm-periodic_state % 4 == 0)) { spin_lock_irqsave(bcm-irq_lock, flags); tasklet_enable(bcm-isr_tasklet); bcm43xx_interrupt_enable(bcm, savedirqs); @@ -3300,6 +3267,7 @@
Please pull 'upstream' branch of wireless-2.6.git
The following changes since commit ff584489917961599b9044584bb8ba6fd5d8f11b: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Christian Lamparter: wext: extend MLME support Daniel Drake: zd1211rw: Add ID for ZyXEL G-220 drivers/net/wireless/zd1211rw/zd_usb.c |1 + include/linux/wireless.h |2 ++ 2 files changed, 3 insertions(+), 0 deletions(-) diff --git a/drivers/net/wireless/zd1211rw/zd_usb.c b/drivers/net/wireless/zd1211rw/zd_usb.c index 005ca7a..5cc99b5 100644 --- a/drivers/net/wireless/zd1211rw/zd_usb.c +++ b/drivers/net/wireless/zd1211rw/zd_usb.c @@ -50,6 +50,7 @@ static struct usb_device_id usb_ids[] = { USB_DEVICE(0x1435, 0x0711), .driver_info = DEVICE_ZD1211 }, { USB_DEVICE(0x0586, 0x3409), .driver_info = DEVICE_ZD1211 }, { USB_DEVICE(0x0b3b, 0x1630), .driver_info = DEVICE_ZD1211 }, + { USB_DEVICE(0x0586, 0x3401), .driver_info = DEVICE_ZD1211 }, /* ZD1211B */ { USB_DEVICE(0x0ace, 0x1215), .driver_info = DEVICE_ZD1211B }, { USB_DEVICE(0x157e, 0x300d), .driver_info = DEVICE_ZD1211B }, diff --git a/include/linux/wireless.h b/include/linux/wireless.h index a50a013..7c269f4 100644 --- a/include/linux/wireless.h +++ b/include/linux/wireless.h @@ -546,6 +546,8 @@ #define IW_GENERIC_IE_MAX 1024 /* MLME requests (SIOCSIWMLME / struct iw_mlme) */ #define IW_MLME_DEAUTH 0 #define IW_MLME_DISASSOC 1 +#define IW_MLME_AUTH 2 +#define IW_MLME_ASSOC 3 /* SIOCSIWAUTH/SIOCGIWAUTH struct iw_param flags */ #define IW_AUTH_INDEX 0x0FFF -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: The following changes since commit 41072a1be57f63bf83afc31c44d72de018d800fa: John W. Linville: zd1211rw: fix build-break caused by association race fix are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Alexey Dobriyan: prism54: use BUILD_BUG_ON Daniel Drake: zd1211rw: Add 3 more device IDs ieee80211: Move IV/ICV stripping into ieee80211_rx Dmitry Torokhov: atmel: save on array initialization atmel: use ARRAY_SIZE() atmel: whitespace cleanup prism54: fix potential race in reset scheduling prism54: whitespace cleanup Holden Karau: atmel: output signal strength information Larry Finger: bcm43xx: output proper link quality with scans ieee80211: Drop and count duplicate data frames to remove 'replay detected' log messages matthieu castet: ieee80211: allow mtu bigger than 1500 Stefano Brivio: bcm43xx: add PCI-E code pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6.git
The following changes since commit 7c250413e5b7c3dfae89354725b70c76d7621395: Al Viro: pata_pdc2027x iomem annotations are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake: WE-21 for zd1211rw softmac: Update MAINTAINERS entry Jean Tourrilhes: WE-21 for airo WE-21 for atmel WE-21 for hostap WE-21 for ipw2100 WE-21 for orinoco WE-21 for Prism54 WE-21 for ray_cs WE-21 for wl3501 WE-21 for zd1201 WE-21 for ipw2200 John W. Linville: WE-21 support (core API) Larry Finger: bcm43xx: WE-21 support bcm43xx-softmac: update PHY initialization bcm43xx-softmac: update noise handling bcm43xx-softmac: improve wrong firmware message bcm43xx: fix netdev watchdog timeouts Ulrich Kunitz: zd1211rw: 16-bit writes for physical control registers zd1211rw: Removes wrong assertions zd1211rw: Added workqueue zd1211rw: Add LED support MAINTAINERS |1 drivers/net/wireless/airo.c | 19 ++-- drivers/net/wireless/atmel.c| 18 ++-- drivers/net/wireless/bcm43xx/bcm43xx.h |1 drivers/net/wireless/bcm43xx/bcm43xx_main.c | 10 +- drivers/net/wireless/bcm43xx/bcm43xx_phy.c | 15 +-- drivers/net/wireless/bcm43xx/bcm43xx_wx.c |2 drivers/net/wireless/bcm43xx/bcm43xx_xmit.c |5 - drivers/net/wireless/hostap/hostap_ioctl.c | 10 +- drivers/net/wireless/ipw2100.c | 14 +-- drivers/net/wireless/ipw2200.c | 16 +-- drivers/net/wireless/orinoco.c | 10 +- drivers/net/wireless/prism54/isl_ioctl.c| 16 ++- drivers/net/wireless/ray_cs.c |2 drivers/net/wireless/wl3501_cs.c|6 + drivers/net/wireless/zd1201.c |2 drivers/net/wireless/zd1211rw/zd_chip.c | 137 +++ drivers/net/wireless/zd1211rw/zd_chip.h | 23 +++-- drivers/net/wireless/zd1211rw/zd_mac.c | 50 ++ drivers/net/wireless/zd1211rw/zd_mac.h |5 + drivers/net/wireless/zd1211rw/zd_netdev.c |2 drivers/net/wireless/zd1211rw/zd_usb.c | 10 ++ drivers/net/wireless/zd1211rw/zd_usb.h |2 include/linux/netdevice.h |1 include/linux/wireless.h| 24 - net/core/net-sysfs.c|5 - net/core/wireless.c | 67 - net/ieee80211/softmac/ieee80211softmac_wx.c |8 +- 28 files changed, 274 insertions(+), 207 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index 16af51b..bd446e2 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2655,7 +2655,6 @@ M:[EMAIL PROTECTED] P: Daniel Drake M: [EMAIL PROTECTED] W: http://softmac.sipsolutions.net/ -L: [EMAIL PROTECTED] L: netdev@vger.kernel.org S: Maintained diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c index bff04cb..ba737c6 100644 --- a/drivers/net/wireless/airo.c +++ b/drivers/net/wireless/airo.c @@ -5868,7 +5868,7 @@ static int airo_set_essid(struct net_dev int index = (dwrq-flags IW_ENCODE_INDEX) - 1; /* Check the size of the string */ - if(dwrq-length IW_ESSID_MAX_SIZE+1) { + if(dwrq-length IW_ESSID_MAX_SIZE) { return -E2BIG ; } /* Check if index is valid */ @@ -5880,7 +5880,7 @@ static int airo_set_essid(struct net_dev memset(SSID_rid.ssids[index].ssid, 0, sizeof(SSID_rid.ssids[index].ssid)); memcpy(SSID_rid.ssids[index].ssid, extra, dwrq-length); - SSID_rid.ssids[index].len = dwrq-length - 1; + SSID_rid.ssids[index].len = dwrq-length; } SSID_rid.len = sizeof(SSID_rid); /* Write it to the card */ @@ -5990,7 +5990,7 @@ static int airo_set_nick(struct net_devi struct airo_info *local = dev-priv; /* Check the size of the string */ - if(dwrq-length 16 + 1) { + if(dwrq-length 16) { return -E2BIG; } readConfigRid(local, 1); @@ -6015,7 +6015,7 @@ static int airo_get_nick(struct net_devi readConfigRid(local, 1); strncpy(extra, local-config.nodeName, 16); extra[16] = '\0'; - dwrq-length = strlen(extra) + 1; + dwrq-length = strlen(extra); return 0; } @@ -6767,9 +6767,9 @@ static int airo_set_retry(struct net_dev } readConfigRid(local, 1); if(vwrq-flags IW_RETRY_LIMIT) { - if(vwrq-flags IW_RETRY_MAX) + if(vwrq-flags IW_RETRY_LONG) local-config.longRetryLimit = vwrq-value; - else if (vwrq-flags IW_RETRY_MIN) + else if (vwrq-flags IW_RETRY_SHORT)
wireless-2.6 now has a 'pending' branch (was Re: Please pull 'upstream' branch of wireless-2.6.git)
On Mon, Sep 25, 2006 at 05:50:43PM -0400, John W. Linville wrote: The following changes since commit 7c250413e5b7c3dfae89354725b70c76d7621395: Al Viro: pata_pdc2027x iomem annotations are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream It's been a little while, and for that I apologize. Work, kids, elderly relatives, blah, blah, blah... :-( Anyway, this covers _almost_ everything I've got in my queue for pushing upstream. The exceptions are a couple of patches posted very recently which I'd like to give a chance to simmer first. That gives people a little more time to review them rather than asking me to revert them later... :-) Anyway, I know have a pending branch. Patches on this branch are really only there for three reasons: -- to let the author know I got the patch; -- to let me know that the patch applies to the tree; and, -- to enhance a patch's exposure for review. I do not intend to add my Signed-off-by: to patches on the pending branch. This is intended to further signify (albeit subtley) that they are not yet queued for upstream. This also implies that I won't be pulling from that branch, so you shouldn't be pulling from there into your own trees either (except for the purpose of reviewing the patches, of course). I probably won't usually announce new patches in the pending branch, so feel free to check it periodically. For now, the pending branch is just a trial intended to add more visibility to the process. Feel free to propose changes to the pending process if it does not seem to be effective. YMMV, objects in mirror may be closer than they appear, you are not expected to understand this, etc... :-) John P.S. Individual patches are available here (w/o using git): http://www.kernel.org/pub/linux/kernel/people/linville/wireless-2.6/pending --- The following changes since commit a67ab2bde752b26be75d4b68ecead9a14692eac5: Larry Finger: bcm43xx: fix netdev watchdog timeouts are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git pending Daniel Drake: ieee80211: Move IV/ICV stripping into ieee80211_rx Larry Finger: ieee80211: quiet TKIP and CCMP replay messages for identical TSCs drivers/net/wireless/bcm43xx/bcm43xx_main.c |3 + drivers/net/wireless/bcm43xx/bcm43xx_xmit.c | 19 - drivers/net/wireless/ipw2200.c | 48 +-- include/net/ieee80211.h |4 ++ net/ieee80211/ieee80211_crypt_ccmp.c|2 - net/ieee80211/ieee80211_crypt_tkip.c|2 - net/ieee80211/ieee80211_rx.c| 56 --- 7 files changed, 61 insertions(+), 73 deletions(-) -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6.git
pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Tuesday 12 September 2006 01:59, John W. Linville wrote: + value16 = bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, + BCM43xx_UCODE_REVISION); + + dprintk(KERN_INFO PFX Microcode rev 0x%x, pl 0x%x + (20%.2i-%.2i-%.2i %.2i:%.2i:%.2i)\n, value16, + bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, +BCM43xx_UCODE_PATCHLEVEL), + (bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, + BCM43xx_UCODE_DATE) 12) 0xf, + (bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, + BCM43xx_UCODE_DATE) 8) 0xf, + bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, +BCM43xx_UCODE_DATE) 0xff, + (bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, +BCM43xx_UCODE_TIME) 11) 0x1f, + (bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, +BCM43xx_UCODE_TIME) 5) 0x3f, + bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, +BCM43xx_UCODE_TIME) 0x1f); + + if ( value16 0x128 ) { + dprintk(KERN_ERR PFX + Firmware: no support for microcode rev 0x128\n); + err = -1; + goto err_release_fw; + } Hm, this mustn't be a dprintk, as it's compiled away if debugging is disabled. So it silently fails. The text could be clarified, too. returning -1 as error code is also very bad, as it's propagated to userspace. I suggest EOPNOTSUPP, but maybe there's something better. Larry, can you do a patch which changes it to something like the following? if ( value16 0x128 ) { printk(KERN_ERR PFX Firmware: no support for microcode extracted from version 4.x binary drivers.\n); err = -EOPNOTSUPP; goto err_release_fw; } -- Greetings Michael. - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit 34fa0e319c760189f1fc226acc5b3b387dc58099: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Christian Steineck: hostap_cs: added support for Proxim Harmony PCI W-Lan card Daniel Drake: zd1211rw: Add ID for Siemens Gigaset USB Stick 54 zd1211rw: Add ID for Asus WL-159g Jean Tourrilhes: Prism54 : add bitrates to scan result Larry Finger: bcm43xx-softmac: Init, shutdown and restart fixes bcm43xx: Correct out of sequence initialization step bcm43xx: remove dead statistics code bcm43xx: Add firmware version printout bcm43xx: ucode debug status via sysfs bcm43xx: remove dead code in bcm43xx_sysfs.c Ulrich Kunitz: zd1211rw: Removed unneeded packed attributes drivers/net/wireless/bcm43xx/bcm43xx.h |7 ++ drivers/net/wireless/bcm43xx/bcm43xx_main.c | 78 +- drivers/net/wireless/bcm43xx/bcm43xx_main.h |3 + drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c | 74 ++--- drivers/net/wireless/hostap/hostap_cs.c |1 drivers/net/wireless/prism54/isl_ioctl.c | 30 ++ drivers/net/wireless/zd1211rw/zd_ieee80211.h |2 - drivers/net/wireless/zd1211rw/zd_mac.c |2 - drivers/net/wireless/zd1211rw/zd_mac.h |4 + drivers/net/wireless/zd1211rw/zd_usb.c |2 + drivers/net/wireless/zd1211rw/zd_usb.h | 14 ++--- 11 files changed, 169 insertions(+), 48 deletions(-) diff --git a/drivers/net/wireless/bcm43xx/bcm43xx.h b/drivers/net/wireless/bcm43xx/bcm43xx.h index 62fd7e2..6d4ea36 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx.h +++ b/drivers/net/wireless/bcm43xx/bcm43xx.h @@ -306,6 +306,13 @@ #define BCM43xx_SBF_NO_SSID_BCAST 0x0800 #define BCM43xx_SBF_TIME_UPDATE0x1000 #define BCM43xx_SBF_8000 0x8000 /*FIXME: fix name*/ +/* Microcode */ +#define BCM43xx_UCODE_REVISION 0x +#define BCM43xx_UCODE_PATCHLEVEL 0x0002 +#define BCM43xx_UCODE_DATE 0x0004 +#define BCM43xx_UCODE_TIME 0x0006 +#define BCM43xx_UCODE_STATUS 0x0040 + /* MicrocodeFlagsBitfield (addr + lo-word values?)*/ #define BCM43xx_UCODEFLAGS_OFFSET 0x005E diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c index 966815b..cb9a3ae 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c @@ -519,6 +519,7 @@ static int bcm43xx_disable_interrupts_sy return -EBUSY; } bcm43xx_interrupt_disable(bcm, BCM43xx_IRQ_ALL); + bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_MASK); /* flush */ spin_unlock_irqrestore(bcm-irq_lock, flags); bcm43xx_synchronize_irq(bcm); @@ -1545,17 +1546,7 @@ static void handle_irq_noise(struct bcm4 else average -= 48; -/* FIXME: This is wrong, but people want fancy stats. well... */ -bcm-stats.noise = average; - if (average -65) - bcm-stats.link_quality = 0; - else if (average -75) - bcm-stats.link_quality = 1; - else if (average -85) - bcm-stats.link_quality = 2; - else - bcm-stats.link_quality = 3; -// dprintk(KERN_INFO PFX Link Quality: %u (avg was %d)\n, bcm-stats.link_quality, average); + bcm-stats.noise = average; drop_calculation: bcm-noisecalc.calculation_running = 0; return; @@ -2393,6 +2384,33 @@ static int bcm43xx_chip_init(struct bcm4 } bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); /* dummy read */ + value16 = bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, +BCM43xx_UCODE_REVISION); + + dprintk(KERN_INFO PFX Microcode rev 0x%x, pl 0x%x + (20%.2i-%.2i-%.2i %.2i:%.2i:%.2i)\n, value16, + bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, + BCM43xx_UCODE_PATCHLEVEL), + (bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, + BCM43xx_UCODE_DATE) 12) 0xf, + (bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, + BCM43xx_UCODE_DATE) 8) 0xf, + bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, + BCM43xx_UCODE_DATE) 0xff, + (bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, + BCM43xx_UCODE_TIME) 11) 0x1f, + (bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, + BCM43xx_UCODE_TIME) 5) 0x3f, + bcm43xx_shm_read16(bcm, BCM43xx_SHM_SHARED, +
Re: Please pull 'upstream' branch of wireless-2.6
pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit e4ac2663ea27d5dda88d97d117080995fcfcd6d5: John W. Linville: Merge branch 'from-linus' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Larry Finger: bcm43xx: optimization of DMA bitfields bcm43xx: return correct hard_start_xmit error code bcm43xx - set correct value in mac_suspended for ifdown/ifup sequence bcm43xx: Set floor of wireless signal and noise at -110 dBm Michael Buesch: bcm43xx: 1G and 64bit DMA support bcm43xx: re-add bcm43xx_rng_init() call MAINTAINERS: Add Larry Finger for bcm43xx (softmac) Pavel Roskin: orinoco: Don't use extern inline on locking functions orinoco: include linux/if_arp.h directly Sukadev Bhattiprolu: kthread: airo.c Zhu Yi: ieee80211: Fix header-qos_ctl endian issue ieee80211: remove ieee80211_tx() is_queue_full warning ieee80211: TKIP and CCMP replay check rework ieee80211: Fix TKIP and WEP decryption error on SMP machines ieee80211: Workaround malformed 802.11 frames from AP ipw2200: always enable frequently used debugging code ipw2200: SIOCGIWFREQ ioctl returns frequency rather than channel ipw2200: ipw_wx_set_essid fix ipw2200: Reassociate even if set the same essid. ipw2200: remove unused struct ipw_rx_buffer ipw2200: Fix ipw2200 QOS parameters endian issue ipw2200: remove the MAC timestamp present field from radiotap head ipw2200: mark iwconfig retry 255 as invalid ipw2200: Fix kernel Oops if cmdlog debug is enabled ipw2200: Add pci .shutdown handler ipw2100: Fix deadlock detected by lockdep ipw2200: enable wireless extension passive scan ipw2200: Update version stamp to 1.1.4 ipw2200: Fix compile error when CONFIG_IPW2200_DEBUG is not selected MAINTAINERS |6 drivers/net/wireless/Kconfig| 23 - drivers/net/wireless/airo.c | 40 +- drivers/net/wireless/bcm43xx/bcm43xx.h | 58 ++- drivers/net/wireless/bcm43xx/bcm43xx_dma.c | 583 ++- drivers/net/wireless/bcm43xx/bcm43xx_dma.h | 296 ++ drivers/net/wireless/bcm43xx/bcm43xx_main.c | 97 +++- drivers/net/wireless/bcm43xx/bcm43xx_wx.c |4 drivers/net/wireless/ipw2100.c |5 drivers/net/wireless/ipw2200.c | 215 ++ drivers/net/wireless/ipw2200.h | 51 +- drivers/net/wireless/orinoco.c |1 drivers/net/wireless/orinoco.h |8 net/ieee80211/ieee80211_crypt_ccmp.c| 23 + net/ieee80211/ieee80211_crypt_tkip.c| 108 +++-- net/ieee80211/ieee80211_crypt_wep.c | 35 +- net/ieee80211/ieee80211_rx.c| 17 - net/ieee80211/ieee80211_tx.c|9 18 files changed, 1027 insertions(+), 552 deletions(-) Omnibus patch attached as upstream.patch.bz2. -- John W. Linville [EMAIL PROTECTED] upstream.patch.bz2 Description: BZip2 compressed data
Please pull 'upstream' branch of wireless-2.6
The following changes since commit e9ffb3d7ec94083a44a8721681391beca2ffd68c: John W. Linville: Merge branch 'from-linus' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake: zd1211rw: ZD1211B ASIC/FWT, not jointly decoder zd1211rw: Match vendor driver IFS values zd1211rw: AL2230 ZD1211B vendor sync zd1211rw: Support AL7230B RF zd1211rw: Add ID for Senao NUB-8301 zd1211rw: Add ID for Allnet ALLSPOT Hotspot finder zd1211rw: Firmware version vs bootcode version mismatch handling zd1211rw: Add ID for ZyXEL G220F zd1211rw: Convert installer CDROM device into WLAN device Michael Wu: ray_cs: Remove dependency on ieee80211 Ulrich Kunitz: zd1211rw: USB id 1582:6003 for Longshine 8131G3 added zd1211rw: cleanups drivers/net/wireless/ray_cs.c |2 drivers/net/wireless/zd1211rw/Makefile|1 drivers/net/wireless/zd1211rw/zd_chip.c | 62 -- drivers/net/wireless/zd1211rw/zd_chip.h | 15 + drivers/net/wireless/zd1211rw/zd_def.h|6 + drivers/net/wireless/zd1211rw/zd_mac.c|6 - drivers/net/wireless/zd1211rw/zd_mac.h|2 drivers/net/wireless/zd1211rw/zd_rf.c |7 + drivers/net/wireless/zd1211rw/zd_rf.h |1 drivers/net/wireless/zd1211rw/zd_rf_al2230.c | 155 ++ drivers/net/wireless/zd1211rw/zd_rf_al7230b.c | 274 + drivers/net/wireless/zd1211rw/zd_usb.c| 120 ++- drivers/net/wireless/zd1211rw/zd_usb.h|1 13 files changed, 575 insertions(+), 77 deletions(-) create mode 100644 drivers/net/wireless/zd1211rw/zd_rf_al7230b.c diff --git a/drivers/net/wireless/ray_cs.c b/drivers/net/wireless/ray_cs.c index 61b83a5..8e112d1 100644 --- a/drivers/net/wireless/ray_cs.c +++ b/drivers/net/wireless/ray_cs.c @@ -52,8 +52,8 @@ #include pcmcia/cisreg.h #include pcmcia/ds.h #include pcmcia/mem_op.h -#include net/ieee80211.h #include linux/wireless.h +#include net/iw_handler.h #include asm/io.h #include asm/system.h diff --git a/drivers/net/wireless/zd1211rw/Makefile b/drivers/net/wireless/zd1211rw/Makefile index 500314f..6603ad5 100644 --- a/drivers/net/wireless/zd1211rw/Makefile +++ b/drivers/net/wireless/zd1211rw/Makefile @@ -3,6 +3,7 @@ obj-$(CONFIG_ZD1211RW) += zd1211rw.o zd1211rw-objs := zd_chip.o zd_ieee80211.o \ zd_mac.o zd_netdev.o \ zd_rf_al2230.o zd_rf_rf2959.o \ + zd_rf_al7230b.o \ zd_rf.o zd_usb.o zd_util.o ifeq ($(CONFIG_ZD1211RW_DEBUG),y) diff --git a/drivers/net/wireless/zd1211rw/zd_chip.c b/drivers/net/wireless/zd1211rw/zd_chip.c index da9d06b..5841998 100644 --- a/drivers/net/wireless/zd1211rw/zd_chip.c +++ b/drivers/net/wireless/zd1211rw/zd_chip.c @@ -42,12 +42,11 @@ void zd_chip_init(struct zd_chip *chip, void zd_chip_clear(struct zd_chip *chip) { - mutex_lock(chip-mutex); + ZD_ASSERT(!mutex_is_locked(chip-mutex)); zd_usb_clear(chip-usb); zd_rf_clear(chip-rf); - mutex_unlock(chip-mutex); mutex_destroy(chip-mutex); - memset(chip, 0, sizeof(*chip)); + ZD_MEMCLEAR(chip, sizeof(*chip)); } static int scnprint_mac_oui(const u8 *addr, char *buffer, size_t size) @@ -68,10 +67,11 @@ static int scnprint_id(struct zd_chip *c i += scnprint_mac_oui(chip-e2p_mac, buffer+i, size-i); i += scnprintf(buffer+i, size-i, ); i += zd_rf_scnprint_id(chip-rf, buffer+i, size-i); - i += scnprintf(buffer+i, size-i, pa%1x %c%c%c, chip-pa_type, + i += scnprintf(buffer+i, size-i, pa%1x %c%c%c%c, chip-pa_type, chip-patch_cck_gain ? 'g' : '-', chip-patch_cr157 ? '7' : '-', - chip-patch_6m_band_edge ? '6' : '-'); + chip-patch_6m_band_edge ? '6' : '-', + chip-new_phy_layout ? 'N' : '-'); return i; } @@ -330,13 +330,14 @@ static int read_pod(struct zd_chip *chip chip-patch_cck_gain = (value 8) 0x1; chip-patch_cr157 = (value 13) 0x1; chip-patch_6m_band_edge = (value 21) 0x1; + chip-new_phy_layout = (value 31) 0x1; dev_dbg_f(zd_chip_dev(chip), RF %s %#01x PA type %#01x patch CCK %d patch CR157 %d - patch 6M %d\n, + patch 6M %d new PHY %d\n, zd_rf_name(*rf_type), *rf_type, chip-pa_type, chip-patch_cck_gain, - chip-patch_cr157, chip-patch_6m_band_edge); + chip-patch_cr157, chip-patch_6m_band_edge, chip-new_phy_layout); return 0; error: *rf_type = 0; @@ -344,6 +345,7 @@ error: chip-patch_cck_gain = 0; chip-patch_cr157 = 0; chip-patch_6m_band_edge = 0; + chip-new_phy_layout = 0; return r; } @@ -717,7 +719,7 @@ static int
Re: Please pull 'upstream' branch of wireless-2.6
pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit 416512cb75f51f3d12e5e1aa57b6a36760fd12c9: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Dan Williams: prism54: update to WE-19 for WPA support Daniel Drake: zd1211rw: Implement SIOCGIWNICKN Add zd1211rw MAINTAINERS entry ieee80211: small ERP handling additions softmac: ERP handling and driver-level notifications softmac: export highest_supported_rate function ieee80211: Make ieee80211_rx_any usable softmac: Add MAINTAINERS entry Pavel Machek: cleanup // comments from ipw2200 Robert Schulze: airo: collapse debugging-messages in issuecommand to one line MAINTAINERS | 21 + drivers/net/wireless/airo.c | 12 drivers/net/wireless/ipw2200.c | 29 - drivers/net/wireless/prism54/isl_ioctl.c| 573 ++- drivers/net/wireless/prism54/isl_ioctl.h|6 drivers/net/wireless/prism54/islpci_dev.c |4 drivers/net/wireless/prism54/islpci_dev.h |2 drivers/net/wireless/zd1211rw/zd_netdev.c | 17 + include/net/ieee80211.h |9 include/net/ieee80211softmac.h | 60 ++ net/ieee80211/ieee80211_rx.c| 39 +- net/ieee80211/softmac/ieee80211softmac_assoc.c | 21 + net/ieee80211/softmac/ieee80211softmac_io.c | 14 + net/ieee80211/softmac/ieee80211softmac_module.c | 90 ++-- net/ieee80211/softmac/ieee80211softmac_priv.h |8 15 files changed, 777 insertions(+), 128 deletions(-) diff --git a/MAINTAINERS b/MAINTAINERS index b2afc7a..4e14ee7 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -2588,6 +2588,18 @@ P: Nicolas Pitre M: [EMAIL PROTECTED] S: Maintained +SOFTMAC LAYER (IEEE 802.11) +P: Johannes Berg +M: [EMAIL PROTECTED] +P: Joe Jezak +M: [EMAIL PROTECTED] +P: Daniel Drake +M: [EMAIL PROTECTED] +W: http://softmac.sipsolutions.net/ +L: [EMAIL PROTECTED] +L: netdev@vger.kernel.org +S: Maintained + SOFTWARE RAID (Multiple Disks) SUPPORT P: Ingo Molnar M: [EMAIL PROTECTED] @@ -3296,6 +3308,15 @@ W: http://www.qsl.net/dl1bke/ L: linux-hams@vger.kernel.org S: Maintained +ZD1211RW WIRELESS DRIVER +P: Daniel Drake +M: [EMAIL PROTECTED] +P: Ulrich Kunitz +M: [EMAIL PROTECTED] +W: http://zd1211.ath.cx/wiki/DriverRewrite +L: zd1211-devs@lists.sourceforge.net (subscribers-only) +S: Maintained + ZF MACHZ WATCHDOG P: Fernando Fuganti M: [EMAIL PROTECTED] diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c index a4dd139..16befbc 100644 --- a/drivers/net/wireless/airo.c +++ b/drivers/net/wireless/airo.c @@ -3950,13 +3950,11 @@ static u16 issuecommand(struct airo_info pRsp-rsp0 = IN4500(ai, RESP0); pRsp-rsp1 = IN4500(ai, RESP1); pRsp-rsp2 = IN4500(ai, RESP2); - if ((pRsp-status 0xff00)!=0 pCmd-cmd != CMD_SOFTRESET) { - airo_print_err(ai-dev-name, cmd= %x\n, pCmd-cmd); - airo_print_err(ai-dev-name, status= %x\n, pRsp-status); - airo_print_err(ai-dev-name, Rsp0= %x\n, pRsp-rsp0); - airo_print_err(ai-dev-name, Rsp1= %x\n, pRsp-rsp1); - airo_print_err(ai-dev-name, Rsp2= %x\n, pRsp-rsp2); - } + if ((pRsp-status 0xff00)!=0 pCmd-cmd != CMD_SOFTRESET) + airo_print_err(ai-dev-name, + cmd:%x status:%x rsp0:%x rsp1:%x rsp2:%x, + pCmd-cmd, pRsp-status, pRsp-rsp0, pRsp-rsp1, + pRsp-rsp2); // clear stuck command busy if necessary if (IN4500(ai, COMMAND) COMMAND_BUSY) { diff --git a/drivers/net/wireless/ipw2200.c b/drivers/net/wireless/ipw2200.c index b3300ff..758459e 100644 --- a/drivers/net/wireless/ipw2200.c +++ b/drivers/net/wireless/ipw2200.c @@ -2667,7 +2667,7 @@ static void ipw_fw_dma_abort(struct ipw_ IPW_DEBUG_FW( :\n); - //set the Stop and Abort bit + /* set the Stop and Abort bit */ control = DMA_CONTROL_SMALL_CB_CONST_VALUE | DMA_CB_STOP_AND_ABORT; ipw_write_reg32(priv, IPW_DMA_I_DMA_CONTROL, control); priv-sram_desc.last_cb_index = 0; @@ -3002,8 +3002,6 @@ static int ipw_load_ucode(struct ipw_pri if (rc 0) return rc; -// spin_lock_irqsave(priv-lock, flags); - for (addr = IPW_SHARED_LOWER_BOUND; addr IPW_REGISTER_DOMAIN1_END; addr += 4) { ipw_write32(priv, addr, 0); @@ -3097,8 +3095,6 @@ static int ipw_load_ucode(struct ipw_pri firmware have problem getting alive resp. */ ipw_write_reg8(priv, IPW_BASEBAND_CONTROL_STATUS, 0); -// spin_unlock_irqrestore(priv-lock, flags); -
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: These patches are to be queued for 2.6.19... --- The following changes since commit b312d799b324e895745ffe148def234fc60d5b74: Daniel Drake: zd1211rw: usb_clear_halt not allowed in IRQ context are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake: zd1211rw: Add Sagem device ID's Larry Finger: bcm43xx: improved statistics Michael Buesch: bcm43xx: opencoded locking bcm43xx: voluntary preemtion in the calibration loops drivers/net/wireless/bcm43xx/bcm43xx.h | 64 ++--- drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c | 34 +++-- drivers/net/wireless/bcm43xx/bcm43xx_leds.c| 10 + drivers/net/wireless/bcm43xx/bcm43xx_main.c| 64 + drivers/net/wireless/bcm43xx/bcm43xx_phy.c | 33 +++-- drivers/net/wireless/bcm43xx/bcm43xx_pio.c |4 - drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c | 34 +++-- drivers/net/wireless/bcm43xx/bcm43xx_wx.c | 162 ++-- drivers/net/wireless/zd1211rw/zd_usb.c |2 pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
These patches are to be queued for 2.6.19... --- The following changes since commit b312d799b324e895745ffe148def234fc60d5b74: Daniel Drake: zd1211rw: usb_clear_halt not allowed in IRQ context are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake: zd1211rw: Add Sagem device ID's Larry Finger: bcm43xx: improved statistics Michael Buesch: bcm43xx: opencoded locking bcm43xx: voluntary preemtion in the calibration loops drivers/net/wireless/bcm43xx/bcm43xx.h | 64 ++--- drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c | 34 +++-- drivers/net/wireless/bcm43xx/bcm43xx_leds.c| 10 + drivers/net/wireless/bcm43xx/bcm43xx_main.c| 64 + drivers/net/wireless/bcm43xx/bcm43xx_phy.c | 33 +++-- drivers/net/wireless/bcm43xx/bcm43xx_pio.c |4 - drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c | 34 +++-- drivers/net/wireless/bcm43xx/bcm43xx_wx.c | 162 ++-- drivers/net/wireless/zd1211rw/zd_usb.c |2 9 files changed, 215 insertions(+), 192 deletions(-) diff --git a/drivers/net/wireless/bcm43xx/bcm43xx.h b/drivers/net/wireless/bcm43xx/bcm43xx.h index 17a5682..ee6571e 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx.h +++ b/drivers/net/wireless/bcm43xx/bcm43xx.h @@ -649,6 +649,19 @@ enum { #define bcm43xx_status(bcm)atomic_read((bcm)-init_status) #define bcm43xx_set_status(bcm, stat) atomic_set((bcm)-init_status, (stat)) +/**** THEORY OF LOCKING *** + * + * We have two different locks in the bcm43xx driver. + * = bcm-mutex:General sleeping mutex. Protects struct bcm43xx_private + * and the device registers. This mutex does _not_ protect + * against concurrency from the IRQ handler. + * = bcm-irq_lock: IRQ spinlock. Protects against IRQ handler concurrency. + * + * Please note that, if you only take the irq_lock, you are not protected + * against concurrency from the periodic work handlers. + * Most times you want to take _both_ locks. + */ + struct bcm43xx_private { struct ieee80211_device *ieee; struct ieee80211softmac_device *softmac; @@ -659,7 +672,6 @@ struct bcm43xx_private { void __iomem *mmio_addr; - /* Locking, see theory of locking text below. */ spinlock_t irq_lock; struct mutex mutex; @@ -691,6 +703,7 @@ struct bcm43xx_private { struct bcm43xx_sprominfo sprom; #define BCM43xx_NR_LEDS4 struct bcm43xx_led leds[BCM43xx_NR_LEDS]; + spinlock_t leds_lock; /* The currently active core. */ struct bcm43xx_coreinfo *current_core; @@ -763,55 +776,6 @@ #endif }; -/**** THEORY OF LOCKING *** - * - * We have two different locks in the bcm43xx driver. - * = bcm-mutex:General sleeping mutex. Protects struct bcm43xx_private - * and the device registers. - * = bcm-irq_lock: IRQ spinlock. Protects against IRQ handler concurrency. - * - * We have three types of helper function pairs to utilize these locks. - * (Always use the helper functions.) - * 1) bcm43xx_{un}lock_noirq(): - * Takes bcm-mutex. Does _not_ protect against IRQ concurrency, - * so it is almost always unsafe, if device IRQs are enabled. - * So only use this, if device IRQs are masked. - * Locking may sleep. - * You can sleep within the critical section. - * 2) bcm43xx_{un}lock_irqonly(): - * Takes bcm-irq_lock. Does _not_ protect against - * bcm43xx_lock_noirq() critical sections. - * Does only protect against the IRQ handler path and other - * irqonly() critical sections. - * Locking does not sleep. - * You must not sleep within the critical section. - * 3) bcm43xx_{un}lock_irqsafe(): - * This is the cummulative lock and takes both, mutex and irq_lock. - * Protects against noirq() and irqonly() critical sections (and - * the IRQ handler path). - * Locking may sleep. - * You must not sleep within the critical section. - */ - -/* Lock type 1 */ -#define bcm43xx_lock_noirq(bcm)mutex_lock((bcm)-mutex) -#define bcm43xx_unlock_noirq(bcm) mutex_unlock((bcm)-mutex) -/* Lock type 2 */ -#define bcm43xx_lock_irqonly(bcm, flags) \ - spin_lock_irqsave((bcm)-irq_lock, flags) -#define bcm43xx_unlock_irqonly(bcm, flags) \ - spin_unlock_irqrestore((bcm)-irq_lock, flags) -/* Lock type 3 */ -#define bcm43xx_lock_irqsafe(bcm, flags) do { \ - bcm43xx_lock_noirq(bcm);\ - bcm43xx_lock_irqonly(bcm, flags); \ - } while (0) -#define bcm43xx_unlock_irqsafe(bcm, flags) do {\ - bcm43xx_unlock_irqonly(bcm, flags); \ - bcm43xx_unlock_noirq(bcm); \ - } while (0) - - static inline struct bcm43xx_private * bcm43xx_priv(struct net_device *dev) { diff --git
Re: Please pull 'upstream' branch of wireless-2.6
On Monday 10 July 2006 23:31, you wrote: These patches are to be queued for 2.6.19... --- The following changes since commit b312d799b324e895745ffe148def234fc60d5b74: Daniel Drake: zd1211rw: usb_clear_halt not allowed in IRQ context are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake: zd1211rw: Add Sagem device ID's Larry Finger: bcm43xx: improved statistics Larry, I see that several patches from you got merged now. Please make sure that you also submit patches for bcm43xx-d80211. If you don't, your changes will all be lost, as soon as bcm43xx-d80211 is merged upstream and softmac is dropped. -- Greetings Michael. - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
Michael Buesch wrote: On Monday 10 July 2006 23:31, you wrote: Larry, I see that several patches from you got merged now. Please make sure that you also submit patches for bcm43xx-d80211. If you don't, your changes will all be lost, as soon as bcm43xx-d80211 is merged upstream and softmac is dropped. Will do. A couple of days ago I downloaded a copy of the wireless-dev repository, and now have the master code so that I can prepare the patches. Will the upstream merge of d80211 be made for 2.6.19 or later? Larry - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6 (revised)
John W. Linville wrote: On Fri, Jun 30, 2006 at 12:31:00PM -0400, Jeff Garzik wrote: The following changes since commit fcc18e83e1f6fd9fa6b333735bf0fcd530655511: Malcolm Parsons: uclinux: use PER_LINUX_32BIT in binfmt_flat are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream nothing pulled? Odd, the changes seem to be there...did you happen to pull zd1211rw first? I based that branch off the HEAD of the upstream branch. Sorry to cause more trouble, but... In a moment of thoughtless action, I rebased netdev#upstream, which has the obvious ripple effects :/ Jeff - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6 (revised)
On Fri, Jun 30, 2006 at 03:27:02PM -0400, John W. Linville wrote: On Fri, Jun 30, 2006 at 12:31:00PM -0400, Jeff Garzik wrote: The following changes since commit fcc18e83e1f6fd9fa6b333735bf0fcd530655511: Malcolm Parsons: uclinux: use PER_LINUX_32BIT in binfmt_flat are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream nothing pulled? Odd, the changes seem to be there...did you happen to pull zd1211rw first? I based that branch off the HEAD of the upstream branch. Just to be sure, I re-cloned the netdev-2.6 tree from kernel.org and did pulls from the 'upstream' branch of wireless-2.6. Everything seemed to work as expected. Do you have this commit? 70a332b048e4d90635dfa47fc5d91cf87b5cc3a5 That is the latest one in my upstream branch. John -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6 (revised)
John W. Linville wrote: On Mon, Jun 26, 2006 at 05:25:52PM -0400, John W. Linville wrote: Michael Buesch: bcm43xx: suspend MAC while executing long pwork The above patch ruffled some feathers on netdev. In the interest of moving things along, I have pulled that patch out of wireless-2.6. I expect it will be back soon, probably with some additional changes to satisfy concerns raised on the mailing list. NOTE: While I was mucking around, I pulled a bunch of patches from the master branch out into driver-specific branches for adm8211, prism54usb, tiacx, and zd1211rw. Then I rebuilt the master branch by pulling from the driver branches. This is intended to ease the merging of individual drivers upstream (e.g. zd1211rw and maybe tiacx in the near future). Those working off my upstream branch or off Linus' tree should be unaffected. Anyone who works off my master branch may need to rebase, especially if they want me to be able to pull from them (due to dirty history). I apologize for the hassle and appreciate your cooperation! Thanks, John --- The following changes since commit fcc18e83e1f6fd9fa6b333735bf0fcd530655511: Malcolm Parsons: uclinux: use PER_LINUX_32BIT in binfmt_flat are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream nothing pulled? - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6 (revised)
On Fri, Jun 30, 2006 at 12:31:00PM -0400, Jeff Garzik wrote: The following changes since commit fcc18e83e1f6fd9fa6b333735bf0fcd530655511: Malcolm Parsons: uclinux: use PER_LINUX_32BIT in binfmt_flat are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream nothing pulled? Odd, the changes seem to be there...did you happen to pull zd1211rw first? I based that branch off the HEAD of the upstream branch. John -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Tuesday 27 June 2006 22:37, Larry Finger wrote: Michael Buesch wrote: On Tuesday 27 June 2006 22:06, Larry Finger wrote: John, I would like to find a diplomatic solution to this impasse between Michael and Jeff, which is why I'm writing to you privately. Michael is correct in that the loop in question will not usually delay private? I meant it to be private, but screwed up. long; however, on some hardware it takes longer than on his. On mine, I have seen delays as long as 550 usec. What's the chip? bcm43xx: Chip ID 0x4306, rev 0x2 bcm43xx: Number of cores: 6 bcm43xx: Core 0: ID 0x800, rev 0x2, vendor 0x4243, enabled bcm43xx: Core 1: ID 0x812, rev 0x4, vendor 0x4243, disabled bcm43xx: Core 2: ID 0x80d, rev 0x1, vendor 0x4243, enabled bcm43xx: Core 3: ID 0x807, rev 0x1, vendor 0x4243, disabled bcm43xx: Core 4: ID 0x804, rev 0x7, vendor 0x4243, enabled bcm43xx: Core 5: ID 0x812, rev 0x4, vendor 0x4243, disabled bcm43xx: Ignoring additional 802.11 core. bcm43xx: Detected PHY: Version: 1, Type 2, Revision 1 bcm43xx: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2) It appears to be an older card. There are quite some special codepaths for this, I think. This would make the worst-case delay be 5 msec, but would provide a cushion of 10X the longest I have seen and should be safe. Do you have any suggestions on what should be done next? Leave it as is and find out why it takes so long for your strange card. ;) I once offered you my second, duplicate card for testing, but never heard back. Do you have any ideas regarding diagnostics to see why it takes so long? Remember, this card used to time-out on the 1 second delay before the periodic work was restructured. Well, we did not want to have the card, because at this point it did not make sense. We all have 4306 cards. But now it appears that this card seems to have some special things (because it is older than ours). Well, how to debug. We are waiting for the IRQ Reason register there. Actually, we are waiting for the no IRQ pending, but READY signal state. Your card does not completely (?) clear the bits after MAC shutdown. So very helpful would be to print out in the loop the value. We know, that the card generates silly IRQs, that we did not ask for. That may happen here, too. So it _may_ help to mask out unwanted IRQs before the if-check. But I would first like to see a log of the reason-value on each iteration until it succeeds. -- Greetings Michael. - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
Michael Buesch wrote: It appears to be an older card. There are quite some special codepaths for this, I think. Yes, I bought this card before the G specifications were finalized. Well, we did not want to have the card, because at this point it did not make sense. We all have 4306 cards. But now it appears that this card seems to have some special things (because it is older than ours). Well, how to debug. We are waiting for the IRQ Reason register there. Actually, we are waiting for the no IRQ pending, but READY signal state. Your card does not completely (?) clear the bits after MAC shutdown. So very helpful would be to print out in the loop the value. We know, that the card generates silly IRQs, that we did not ask for. That may happen here, too. So it _may_ help to mask out unwanted IRQs before the if-check. But I would first like to see a log of the reason-value on each iteration until it succeeds. First of all, I have a udelay(1) in the wait loop. I have also moved the udelay to the top of the loop. For the past 12 hours, I have been printing the delay time for the cases where it took more than 2 passes through the loop. There have been single instances of 3 and 4 usec; otherwise the delay is much longer, with the largest delay at 750 usec. The long delays are always found during scanning, associating, and authenticating. I use WPA with wpa_supplicant. Since adding the dump of IRQ reason, every case that took more than 1 pass through the loop has had an IRQ reason of 0x0580 for every pass in the loop. Your idea about the silly IRQ's seems to be right. I'll let you know if I get any results that are different. One other little problem. If I do an ifdown/ifup sequence without unloading the bcm43xx module, I get a failure of the assert(bcm-mac_suspended = 0) at the beginning of bcm43xx_mac_suspend. Larry - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Wednesday 28 June 2006 18:04, Larry Finger wrote: Michael Buesch wrote: It appears to be an older card. There are quite some special codepaths for this, I think. Yes, I bought this card before the G specifications were finalized. Oh, very interresting. I did not know that these old cards were pre-standard. For the past 12 hours, I have been printing the delay time for the cases where it took more than 2 passes through the loop. There have been single instances of 3 and 4 usec; otherwise the delay is much longer, with the largest delay at 750 usec. The long delays are always found during scanning, associating, and authenticating. I use WPA with wpa_supplicant. Oh, well. Forget it all. I remembered the code wrong. At the moment I looked at the code and it has the opposite semantics. It loops to wait for the READY bit to appear. Well, I would say your old device simply takes this long to disable and there is no bug. Oh, well... One other little problem. If I do an ifdown/ifup sequence without unloading the bcm43xx module, I get a failure of the assert(bcm-mac_suspended = 0) at the beginning of bcm43xx_mac_suspend. Unrelated known bug. I will do a patch, soon. -- Greetings Michael. - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
Michael Buesch wrote: On Wednesday 28 June 2006 18:04, Larry Finger wrote: Oh, well. Forget it all. I remembered the code wrong. At the moment I looked at the code and it has the opposite semantics. It loops to wait for the READY bit to appear. Well, I would say your old device simply takes this long to disable and there is no bug. Oh, well... So the conclusion is that my card is really slow. As mine is likely to be the worst of the lot, I propose the following structure for the loop in question: for (i = 1; i; i--) { tmp = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); if (tmp BCM43xx_IRQ_READY) { if (i 9998) printkl(KERN_INFO PFX MAC suspend delay %d usec, IRQ_REASON 0x%08x\n, 1-i, tmp ~BCM43xx_IRQ_READY); goto out; } udelay(1); } printkl(KERN_ERR PFX MAC suspend failed\n); My maximum delay (so far) is 796 usec, thus this loop gives me a safety factor of more than 10, but it should satisfy Jeff and let this patch in question be accepted. Of course, the 'if (i 9998)' statement with the printkl is optional. BTW, as you suspected, the IRQ_REASON value is still at 0x580 when the READY bit is set. Thanks for the help, Larry - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Wednesday 28 June 2006 19:32, Larry Finger wrote: Michael Buesch wrote: On Wednesday 28 June 2006 18:04, Larry Finger wrote: Oh, well. Forget it all. I remembered the code wrong. At the moment I looked at the code and it has the opposite semantics. It loops to wait for the READY bit to appear. Well, I would say your old device simply takes this long to disable and there is no bug. Oh, well... So the conclusion is that my card is really slow. As mine is likely to be the worst of the lot, I propose the following structure for the loop in question: for (i = 1; i; i--) { tmp = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); if (tmp BCM43xx_IRQ_READY) { if (i 9998) printkl(KERN_INFO PFX MAC suspend delay %d usec, IRQ_REASON 0x%08x\n, 1-i, tmp ~BCM43xx_IRQ_READY); goto out; } udelay(1); } printkl(KERN_ERR PFX MAC suspend failed\n); My maximum delay (so far) is 796 usec, thus this loop gives me a safety factor of more than 10, but it should satisfy Jeff and let this patch in question be accepted. Ok, I will send a patch to lower the limit to 1 usec. This won't do _any_ good (or bad), but well... If everybody likes placebos, I will add it to the driver. It's a bit complicated for me to say why your card takes 800usec to suspend MAC. And additionally it is not really possible for me to try to find a way making the card respond earlier (if possible) remotely through you. ;) How problematic might a 800usec delay with IRQs disabled be? Of course, the 'if (i 9998)' statement with the printkl is optional. It is to be removed. ;) -- Greetings Michael. - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Tuesday 27 June 2006 04:27, Larry Finger wrote: Jeff Garzik wrote: John W. Linville wrote: +assert(bcm-mac_suspended = 0); +if (bcm-mac_suspended == 0) { +bcm43xx_power_saving_ctl_bits(bcm, -1, 1); +bcm43xx_write32(bcm, BCM43xx_MMIO_STATUS_BITFIELD, +bcm43xx_read32(bcm, BCM43xx_MMIO_STATUS_BITFIELD) + ~BCM43xx_SBF_MAC_ENABLED); +bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); /* dummy read */ +for (i = 10; i; i--) { +tmp = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); +if (tmp BCM43xx_IRQ_READY) +goto out; +udelay(10); +} +printkl(KERN_ERR PFX MAC suspend failed\n); } NAK this super-long delay... should be done in a workqueue, looks like? ACK everything else. That delay was set to try to accommodate my interface when it refused to suspend the MAC, which resulted in transmit errors. That problem has since been cured by reworking the periodic work handlers - thus such a long delay should not be needed. The original spec from the clean-room group was a delay loop of 1000. I'm currently testing that value now. If it passes the test, would a for (i=1000; i; i--) be acceptable? Short: Don't touch it. Fullstop. Long: The delay will _never_ be exhausted. Actually the for-counter is only there to not lock up the machine, if there is a Bug in the driver. (__much__ easier debugging). The loop will only iterate a few times, typically. Actually, _if_ we want to change something, we should do this: for (i = 100; i; i--) { ... udelay(1); } (max loop multiplied by 10, delay value divided by 10). This will shorten the whole delay by a few usecs (up to 10). I will send a patch for this, if it is desired. But lowering the loop counter value is NACKed by me, because it simply does not make sense. -- Greetings Michael. - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
Jeff Garzik wrote: Michael Buesch wrote: Short: Don't touch it. Fullstop. Long: The delay will _never_ be exhausted. Actually the for-counter is only there to not lock up the machine, if there is a Bug in the driver. (__much__ easier debugging). The loop will only iterate a few times, typically. Actually, _if_ we want to change something, we should do this: for (i = 100; i; i--) { ... udelay(1); } (max loop multiplied by 10, delay value divided by 10). This will shorten the whole delay by a few usecs (up to 10). I will send a patch for this, if it is desired. But lowering the loop counter value is NACKed by me, because it simply does not make sense. My overriding concern was that this type of loop spins the CPU at 100% until the hardware condition is satisfied, which starves all other kernel work on that CPU, and is very unfriendly to power consumption (though I believe monitor/mwait/cpu_relax helps on x86). Overall, bcm43xx is _really really bad_ about this sort of thing. Just grepping for udelay in bcm43xx_radio.c shows some of the worst offenders. bcm43xx_radio_init2060() and bcm43xx_radio_selectchannel() both look like candidates for using msleep() rather than udelay(). It is not my place to get into the middle of this discussion; however, my interface has been pinging my AP for over 12 hours with the loop counter starting at 1000. I get the usual log entries for the hourly TKIP changes, but no MAC suspend failures. Larry - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Tuesday 27 June 2006 16:11, Jeff Garzik wrote: Michael Buesch wrote: On Tuesday 27 June 2006 04:27, Larry Finger wrote: Jeff Garzik wrote: John W. Linville wrote: +assert(bcm-mac_suspended = 0); +if (bcm-mac_suspended == 0) { +bcm43xx_power_saving_ctl_bits(bcm, -1, 1); +bcm43xx_write32(bcm, BCM43xx_MMIO_STATUS_BITFIELD, +bcm43xx_read32(bcm, BCM43xx_MMIO_STATUS_BITFIELD) + ~BCM43xx_SBF_MAC_ENABLED); +bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); /* dummy read */ +for (i = 10; i; i--) { +tmp = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); +if (tmp BCM43xx_IRQ_READY) +goto out; +udelay(10); +} +printkl(KERN_ERR PFX MAC suspend failed\n); } NAK this super-long delay... should be done in a workqueue, looks like? ACK everything else. That delay was set to try to accommodate my interface when it refused to suspend the MAC, which resulted in transmit errors. That problem has since been cured by reworking the periodic work handlers - thus such a long delay should not be needed. The original spec from the clean-room group was a delay loop of 1000. I'm currently testing that value now. If it passes the test, would a for (i=1000; i; i--) be acceptable? Short: Don't touch it. Fullstop. Long: The delay will _never_ be exhausted. Actually the for-counter is only there to not lock up the machine, if there is a Bug in the driver. (__much__ easier debugging). The loop will only iterate a few times, typically. Actually, _if_ we want to change something, we should do this: for (i = 100; i; i--) { ... udelay(1); } (max loop multiplied by 10, delay value divided by 10). This will shorten the whole delay by a few usecs (up to 10). I will send a patch for this, if it is desired. But lowering the loop counter value is NACKed by me, because it simply does not make sense. My overriding concern was that this type of loop spins the CPU at 100% until the hardware condition is satisfied, which starves all other kernel work on that CPU, and is very unfriendly to power consumption (though I believe monitor/mwait/cpu_relax helps on x86). Ok, I did a testrun. Here's the result: [ 68.711243] bcm43xx_d80211: Chip ID 0x4306, rev 0x3 [ 68.712662] bcm43xx_d80211: Number of cores: 5 [ 68.714023] bcm43xx_d80211: Core 0: ID 0x800, rev 0x4, vendor 0x4243, enabled [ 68.715536] bcm43xx_d80211: Core 1: ID 0x812, rev 0x5, vendor 0x4243, disabled [ 68.717062] bcm43xx_d80211: Core 2: ID 0x80d, rev 0x2, vendor 0x4243, enabled [ 68.718575] bcm43xx_d80211: Core 3: ID 0x807, rev 0x2, vendor 0x4243, disabled [ 68.720089] bcm43xx_d80211: Core 4: ID 0x804, rev 0x9, vendor 0x4243, enabled [ 68.724897] bcm43xx_d80211: PHY connected [ 68.726154] bcm43xx_d80211: Detected PHY: Version: 2, Type 2, Revision 2 [ 68.727638] bcm43xx_d80211: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2) [ 68.729232] bcm43xx_d80211: Radio turned off [ 68.730512] bcm43xx_d80211: Radio turned off [ 68.745153] wmaster0: Selected rate control algorithm 'simple' [ 69.853876] bcm43xx_d80211: Virtual interface added (type: 0x0002, ID: 7, MAC: 00:11:24:a0:de:8b) [ 69.861872] bcm43xx_d80211: PHY connected [ 70.000713] bcm43xx_d80211: Radio turned on [ 70.190153] bcm43xx_d80211: Chip initialized [ 70.192051] bcm43xx_d80211: DMA initialized [ 70.193987] bcm43xx_d80211: 80211 cores initialized [ 70.195550] bcm43xx_d80211: Keys cleared [ 70.212565] wmaster0: Does not support passive scan, disabled [ 70.252321] bcm43xx_d80211: mac_suspend() took 1 loops == 10 usec [ 70.542160] NET: Registered protocol family 17 [ 70.692256] sta0: starting scan [ 70.702234] HW CONFIG: channel=1 freq=2412 phymode=3 [ 70.762225] HW CONFIG: channel=2 freq=2417 phymode=3 [ 70.87] HW CONFIG: channel=3 freq=2422 phymode=3 [ 70.882225] HW CONFIG: channel=4 freq=2427 phymode=3 [ 70.942225] HW CONFIG: channel=5 freq=2432 phymode=3 [ 71.002285] HW CONFIG: channel=6 freq=2437 phymode=3 [ 71.062229] HW CONFIG: channel=7 freq=2442 phymode=3 [ 71.122230] HW CONFIG: channel=8 freq=2447 phymode=3 [ 71.182239] HW CONFIG: channel=9 freq=2452 phymode=3 [ 71.242226] HW CONFIG: channel=10 freq=2457 phymode=3 [ 71.302226] HW CONFIG: channel=11 freq=2462 phymode=3 [ 71.512225] HW CONFIG: channel=1 freq=2412 phymode=3 [ 71.520066] sta0: scan completed [ 71.523437] HW CONFIG: channel=6 freq=2437 phymode=3 [ 71.531600] sta0: Initial auth_alg=0 [ 71.531806] sta0: authenticate with AP 00:90:4c:60:04:00 [ 71.533279] sta0: RX authentication from 00:90:4c:60:04:00 (alg=0 transaction=2 status=0) [ 71.533292] sta0: authenticated [ 71.533301] sta0: associate with AP 00:90:4c:60:04:00 [ 71.536264] sta0: RX AssocResp from
Re: Please pull 'upstream' branch of wireless-2.6
No, that totally avoids my point. Your otherwise idle machine test is probably nowhere near worst case in the field, for loops that can potentially lock the CPU for a long time upon hardware fault. And then there are the huge delays in specific functions that I pointed out... Jeff The problem is that these are the delays used in the original driver that we've been writing the specs from. We don't know what they're for or why they're so long. We don't know if reducing the delay will cause issues on some hardware and work fine on others. Without the actual specs from Broadcom, it's hard to say what's excessive and what's not and whether changing it will break the driver. -Joe - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
Michael Buesch wrote: On Tuesday 27 June 2006 16:11, Jeff Garzik wrote: Overall, bcm43xx is _really really bad_ about this sort of thing. Just grepping for udelay in bcm43xx_radio.c shows some of the worst offenders. bcm43xx_radio_init2060() and bcm43xx_radio_selectchannel() both look like candidates for using msleep() rather than udelay(). This is _all_ at initialization time. select_channel How often do you select a channel? That question is irrelevant, because you have no idea what -else- is going on in the system, at the point when bcm43xx chooses to spin the CPU heavily. Initialization time means you are definitely not in a hot path, and can therefore sleep. I recently reworked the periodically exectuted workhandlers, so that they are preemptible. Major classes of users run their kernels without preempt. Please don't depend on that to avoid bad behavior. mac_suspend(): It is always called in atomic context with IRQs disabled. We need to wait for the device here to signal OK, MAC is down now and you can count on it. This takes a few usecs. I guess it sends out all queued packets, or whatever. We don't know really. I can actually measure how long it takes, if you really desire it. We _need_ to wait there. It is something like synchronize_irq(), or whatever. It is a synchronizing function and we need it to be synchronizing. And I don't think it is worth the pain to insert a preemption point there (or doing even fancier things with workqueues and completions). Overall, I don't think bcm43xx is still so bad at wasting CPU. Maybe we should still insert some voluntary preemption points, if the bcm43xx user does not run a fully preemptible kernel. But if a fully preemptible kernel is run, I think it is all OK. Never assume a preemptible kernel will clean up problems for you :) Jeff - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
Michael Buesch wrote: So, I will submit a patch to lower the udelay(10) to udelay(1) and we can close the discussion? ;) No, that totally avoids my point. Your otherwise idle machine test is probably nowhere near worst case in the field, for loops that can potentially lock the CPU for a long time upon hardware fault. And then there are the huge delays in specific functions that I pointed out... Jeff - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Tuesday 27 June 2006 18:10, Jeff Garzik wrote: Michael Buesch wrote: On Tuesday 27 June 2006 16:11, Jeff Garzik wrote: Overall, bcm43xx is _really really bad_ about this sort of thing. Just grepping for udelay in bcm43xx_radio.c shows some of the worst offenders. bcm43xx_radio_init2060() and bcm43xx_radio_selectchannel() both look like candidates for using msleep() rather than udelay(). This is _all_ at initialization time. select_channel How often do you select a channel? That question is irrelevant, because you have no idea what -else- is going on in the system, at the point when bcm43xx chooses to spin the CPU heavily. Initialization time means you are definitely not in a hot path, and can therefore sleep. Ok, again: If you are running a preemptible kernel (I am doing a patch for the non-preemptible case), everything is _already_ fine. We are not spinning long times with locks held or IRQs disabled. I already fixed that. And no, I don't really care for initialization time. I am not going to potentially break the driver to remove 1ms of wasted CPU on ifconfig up. In fact, initialization is and always was done lockless. So we should be fine there, too, actually. We don't know why these delays are there all. And we never will. But as this are all some measuring an calibration routines, they surely have some purpose. We don't know if longer delays in some places may have ill effects. Making the whole thing preemptible (as I am doing / have done) surely has its potential to break the driver. I prefer correct operation over an unnoticable 1ms CPU hog. I recently reworked the periodically exectuted workhandlers, so that they are preemptible. Major classes of users run their kernels without preempt. Please don't depend on that to avoid bad behavior. I am doing a patch atm. I will add voluntary preemption points, if the kernel is not preemptible. -- Greetings Michael. - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Tuesday 27 June 2006 18:12, Jeff Garzik wrote: Michael Buesch wrote: So, I will submit a patch to lower the udelay(10) to udelay(1) and we can close the discussion? ;) No, that totally avoids my point. Your otherwise idle machine test is probably nowhere near worst case in the field, for loops that can potentially lock the CPU for a long time upon hardware fault. And then there are the huge delays in specific functions that I pointed out... wtf are you requesting from me? 1) I proved you that the loop does only spin _once_ or even _less_. 2) If the hardware is faulty, the user must replace it. Because, if the hardware is faulty, it can crash the whole machine anyway, obviously. 3) There is no huge delay. I proved it with my logs. - No CPU hog = Nothing to fix. -- Greetings Michael. - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
Michael Buesch wrote: On Tuesday 27 June 2006 21:33, John W. Linville wrote: On Tue, Jun 27, 2006 at 06:31:01PM +0200, Michael Buesch wrote: On Tuesday 27 June 2006 18:12, Jeff Garzik wrote: Michael Buesch wrote: So, I will submit a patch to lower the udelay(10) to udelay(1) and we can close the discussion? ;) No, that totally avoids my point. Your otherwise idle machine test is probably nowhere near worst case in the field, for loops that can potentially lock the CPU for a long time upon hardware fault. And then there are the huge delays in specific functions that I pointed out... wtf are you requesting from me? 1) I proved you that the loop does only spin _once_ or even _less_. 2) If the hardware is faulty, the user must replace it. Because, if the hardware is faulty, it can crash the whole machine anyway, obviously. 3) There is no huge delay. I proved it with my logs. - No CPU hog = Nothing to fix. Michael, I think Jeff's concern is that by using udelay you are busy-waiting. And, the for loop limit of 10 means you could freeze the kernel for up to a whole second. Granted that this won't happen very often s/very often/ever/ It won't happen, as long as the driver is not buggy, or the device is hardware broken. So, if it happens, something has to be fixed. In fact, it did happen _never_ for me. If it triggers, the device does not work _at all_ anyway. and in the grand scheme of things a second isn't all _that_ long, but still it would be better to avoid a delay like that -- a second could be the time it takes to avoid a meltdown at the nuclear power plant. :-) Could you not use msleep instead of udelay (and scale the for loop appropriately)? What would be the problem with that? It would get rid of the busy waiting. Becauses it horribly _increases_ the delay. We spin for _at most_ 10 usecs here. Please always remember that. We are talking about a 10 usec delay here. And I already sent a patch to even reduce this to under 10 usec. To be fair, this code was already in the driver and was only being moved by this patch. Still, what better time to fix it than now? :-) If it ain't broken, don't fix it. I'll go ahead and reshuffle wireless-2.6 to drop this patch. A new patch that passes muster w/ Jeff will be most welcome! :-) A new patch won't appear, as there is no problem with this delay. Please don't drop anything and apply the following patch on top of it: John, I would like to find a diplomatic solution to this impasse between Michael and Jeff, which is why I'm writing to you privately. Michael is correct in that the loop in question will not usually delay long; however, on some hardware it takes longer than on his. On mine, I have seen delays as long as 550 usec. In any case, I think that the following code fragment would work and pass Jeff's criticism: for (i=5000; i; i--) { .. usleep(1); } This would make the worst-case delay be 5 msec, but would provide a cushion of 10X the longest I have seen and should be safe. Do you have any suggestions on what should be done next? Larry - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Tuesday 27 June 2006 22:06, Larry Finger wrote: John, I would like to find a diplomatic solution to this impasse between Michael and Jeff, which is why I'm writing to you privately. Michael is correct in that the loop in question will not usually delay private? long; however, on some hardware it takes longer than on his. On mine, I have seen delays as long as 550 usec. What's the chip? In any case, I think that the following code fragment would work and pass Jeff's criticism: for (i=5000; i; i--) { .. usleep(1); usleep? Can't find that in my kernel tree. In fact, I think the lowest possible sleep time depends on HZ and is 1msec on 1000HZ. Additionally, we are holding a spinlock at this time, so it is not as easy as simply replacing udelay() by some sleeping function. This would make the worst-case delay be 5 msec, but would provide a cushion of 10X the longest I have seen and should be safe. Do you have any suggestions on what should be done next? Leave it as is and find out why it takes so long for your strange card. ;) -- Greetings Michael. - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
Michael Buesch wrote: On Tuesday 27 June 2006 22:06, Larry Finger wrote: John, I would like to find a diplomatic solution to this impasse between Michael and Jeff, which is why I'm writing to you privately. Michael is correct in that the loop in question will not usually delay private? I meant it to be private, but screwed up. long; however, on some hardware it takes longer than on his. On mine, I have seen delays as long as 550 usec. What's the chip? bcm43xx: Chip ID 0x4306, rev 0x2 bcm43xx: Number of cores: 6 bcm43xx: Core 0: ID 0x800, rev 0x2, vendor 0x4243, enabled bcm43xx: Core 1: ID 0x812, rev 0x4, vendor 0x4243, disabled bcm43xx: Core 2: ID 0x80d, rev 0x1, vendor 0x4243, enabled bcm43xx: Core 3: ID 0x807, rev 0x1, vendor 0x4243, disabled bcm43xx: Core 4: ID 0x804, rev 0x7, vendor 0x4243, enabled bcm43xx: Core 5: ID 0x812, rev 0x4, vendor 0x4243, disabled bcm43xx: Ignoring additional 802.11 core. bcm43xx: Detected PHY: Version: 1, Type 2, Revision 1 bcm43xx: Detected Radio: ID: 2205017f (Manuf: 17f Ver: 2050 Rev: 2) In any case, I think that the following code fragment would work and pass Jeff's criticism: for (i=5000; i; i--) { .. usleep(1); usleep? Can't find that in my kernel tree. In fact, I think the lowest possible sleep time depends on HZ and is 1msec on 1000HZ. I meant udelay, of course. Additionally, we are holding a spinlock at this time, so it is not as easy as simply replacing udelay() by some sleeping function. I know that. This would make the worst-case delay be 5 msec, but would provide a cushion of 10X the longest I have seen and should be safe. Do you have any suggestions on what should be done next? Leave it as is and find out why it takes so long for your strange card. ;) I once offered you my second, duplicate card for testing, but never heard back. Do you have any ideas regarding diagnostics to see why it takes so long? Remember, this card used to time-out on the 1 second delay before the periodic work was restructured. Larry - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Tue, Jun 27, 2006 at 06:31:01PM +0200, Michael Buesch wrote: On Tuesday 27 June 2006 18:12, Jeff Garzik wrote: Michael Buesch wrote: So, I will submit a patch to lower the udelay(10) to udelay(1) and we can close the discussion? ;) No, that totally avoids my point. Your otherwise idle machine test is probably nowhere near worst case in the field, for loops that can potentially lock the CPU for a long time upon hardware fault. And then there are the huge delays in specific functions that I pointed out... wtf are you requesting from me? 1) I proved you that the loop does only spin _once_ or even _less_. 2) If the hardware is faulty, the user must replace it. Because, if the hardware is faulty, it can crash the whole machine anyway, obviously. 3) There is no huge delay. I proved it with my logs. - No CPU hog = Nothing to fix. Michael, I think Jeff's concern is that by using udelay you are busy-waiting. And, the for loop limit of 10 means you could freeze the kernel for up to a whole second. Granted that this won't happen very often and in the grand scheme of things a second isn't all _that_ long, but still it would be better to avoid a delay like that -- a second could be the time it takes to avoid a meltdown at the nuclear power plant. :-) Could you not use msleep instead of udelay (and scale the for loop appropriately)? What would be the problem with that? It would get rid of the busy waiting. To be fair, this code was already in the driver and was only being moved by this patch. Still, what better time to fix it than now? :-) I'll go ahead and reshuffle wireless-2.6 to drop this patch. A new patch that passes muster w/ Jeff will be most welcome! :-) Thanks, John -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Tuesday 27 June 2006 21:33, John W. Linville wrote: On Tue, Jun 27, 2006 at 06:31:01PM +0200, Michael Buesch wrote: On Tuesday 27 June 2006 18:12, Jeff Garzik wrote: Michael Buesch wrote: So, I will submit a patch to lower the udelay(10) to udelay(1) and we can close the discussion? ;) No, that totally avoids my point. Your otherwise idle machine test is probably nowhere near worst case in the field, for loops that can potentially lock the CPU for a long time upon hardware fault. And then there are the huge delays in specific functions that I pointed out... wtf are you requesting from me? 1) I proved you that the loop does only spin _once_ or even _less_. 2) If the hardware is faulty, the user must replace it. Because, if the hardware is faulty, it can crash the whole machine anyway, obviously. 3) There is no huge delay. I proved it with my logs. - No CPU hog = Nothing to fix. Michael, I think Jeff's concern is that by using udelay you are busy-waiting. And, the for loop limit of 10 means you could freeze the kernel for up to a whole second. Granted that this won't happen very often s/very often/ever/ It won't happen, as long as the driver is not buggy, or the device is hardware broken. So, if it happens, something has to be fixed. In fact, it did happen _never_ for me. If it triggers, the device does not work _at all_ anyway. and in the grand scheme of things a second isn't all _that_ long, but still it would be better to avoid a delay like that -- a second could be the time it takes to avoid a meltdown at the nuclear power plant. :-) Could you not use msleep instead of udelay (and scale the for loop appropriately)? What would be the problem with that? It would get rid of the busy waiting. Becauses it horribly _increases_ the delay. We spin for _at most_ 10 usecs here. Please always remember that. We are talking about a 10 usec delay here. And I already sent a patch to even reduce this to under 10 usec. To be fair, this code was already in the driver and was only being moved by this patch. Still, what better time to fix it than now? :-) If it ain't broken, don't fix it. I'll go ahead and reshuffle wireless-2.6 to drop this patch. A new patch that passes muster w/ Jeff will be most welcome! :-) A new patch won't appear, as there is no problem with this delay. Please don't drop anything and apply the following patch on top of it: -- Microoptimization: This reduces the udelay in bcm43xx_mac_suspend. Signed-off-by: Michael Buesch [EMAIL PROTECTED] Index: wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c === --- wireless-2.6.orig/drivers/net/wireless/bcm43xx/bcm43xx_main.c 2006-06-27 17:47:24.0 +0200 +++ wireless-2.6/drivers/net/wireless/bcm43xx/bcm43xx_main.c2006-06-27 17:53:29.0 +0200 @@ -2328,7 +2328,7 @@ tmp = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); if (tmp BCM43xx_IRQ_READY) goto out; - udelay(10); + udelay(1); } printkl(KERN_ERR PFX MAC suspend failed\n); } -- Greetings Michael. - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6 (revised)
On Mon, Jun 26, 2006 at 05:25:52PM -0400, John W. Linville wrote: Michael Buesch: bcm43xx: suspend MAC while executing long pwork The above patch ruffled some feathers on netdev. In the interest of moving things along, I have pulled that patch out of wireless-2.6. I expect it will be back soon, probably with some additional changes to satisfy concerns raised on the mailing list. NOTE: While I was mucking around, I pulled a bunch of patches from the master branch out into driver-specific branches for adm8211, prism54usb, tiacx, and zd1211rw. Then I rebuilt the master branch by pulling from the driver branches. This is intended to ease the merging of individual drivers upstream (e.g. zd1211rw and maybe tiacx in the near future). Those working off my upstream branch or off Linus' tree should be unaffected. Anyone who works off my master branch may need to rebase, especially if they want me to be able to pull from them (due to dirty history). I apologize for the hassle and appreciate your cooperation! Thanks, John --- The following changes since commit fcc18e83e1f6fd9fa6b333735bf0fcd530655511: Malcolm Parsons: uclinux: use PER_LINUX_32BIT in binfmt_flat are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake: bcm43xx: use softmac-suggested TX rate bcm43xx: enable shared key authentication Eric Sesterhenn: skb used after passing to netif_rx in net/ieee80211/ieee80211_rx.c Faidon Liambotis: Add two PLX device IDs Hong Liu: ieee80211: fix not allocating IV+ICV space when usingencryption in ieee80211_tx_frame Horms: CONFIG_WIRELESS_EXT is neccessary after all John W. Linville: softmac: fix build-break from 881ee6999d66c8fc903b429b73bbe6045b38c549 Joseph Jezak: SoftMAC: Prevent multiple authentication attempts on the same network SoftMAC: Add network to ieee80211softmac_call_events when associate times out Larry Finger: Convert bcm43xx-softmac to use the ieee80211_is_valid_channel routine 2.6.17 missing a call to ieee80211softmac_capabilities from ieee80211softmac_assoc_req Michael Buesch: bcm43xx: workaround init_board vs. IRQ race drivers/net/wireless/bcm43xx/bcm43xx_main.c| 31 - drivers/net/wireless/bcm43xx/bcm43xx_main.h| 24 drivers/net/wireless/bcm43xx/bcm43xx_radio.c |7 + drivers/net/wireless/bcm43xx/bcm43xx_wx.c |2 + drivers/net/wireless/bcm43xx/bcm43xx_xmit.c|5 +++ drivers/net/wireless/hostap/hostap_plx.c |2 + include/net/ieee80211softmac.h |1 + net/ieee80211/ieee80211_rx.c |4 ++- net/ieee80211/ieee80211_tx.c | 15 +++--- net/ieee80211/softmac/ieee80211softmac_assoc.c | 31 - net/ieee80211/softmac/ieee80211softmac_auth.c |4 +-- net/ieee80211/softmac/ieee80211softmac_io.c|3 ++ net/ieee80211/softmac/ieee80211softmac_wx.c| 36 +++- 13 files changed, 105 insertions(+), 60 deletions(-) diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c index 085d785..1cd47c5 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c @@ -1885,6 +1885,15 @@ static irqreturn_t bcm43xx_interrupt_han spin_lock(bcm-irq_lock); + /* Only accept IRQs, if we are initialized properly. +* This avoids an RX race while initializing. +* We should probably not enable IRQs before we are initialized +* completely, but some careful work is needed to fix this. I think it +* is best to stay with this cheap workaround for now... . +*/ + if (unlikely(bcm43xx_status(bcm) != BCM43xx_STAT_INITIALIZED)) + goto out; + reason = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); if (reason == 0x) { /* irq not for us (shared irq) */ @@ -1906,19 +1915,11 @@ static irqreturn_t bcm43xx_interrupt_han bcm43xx_interrupt_ack(bcm, reason); - /* Only accept IRQs, if we are initialized properly. -* This avoids an RX race while initializing. -* We should probably not enable IRQs before we are initialized -* completely, but some careful work is needed to fix this. I think it -* is best to stay with this cheap workaround for now... . -*/ - if (likely(bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED)) { - /* disable all IRQs. They are enabled again in the bottom half. */ - bcm-irq_savedstate = bcm43xx_interrupt_disable(bcm, BCM43xx_IRQ_ALL); - /* save the reason code and call our bottom half. */ - bcm-irq_reason = reason; - tasklet_schedule(bcm-isr_tasklet); - } + /* disable all IRQs. They are enabled
Please pull 'upstream' branch of wireless-2.6
The following changes since commit fcc18e83e1f6fd9fa6b333735bf0fcd530655511: Malcolm Parsons: uclinux: use PER_LINUX_32BIT in binfmt_flat are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake: bcm43xx: use softmac-suggested TX rate bcm43xx: enable shared key authentication Eric Sesterhenn: skb used after passing to netif_rx in net/ieee80211/ieee80211_rx.c Faidon Liambotis: Add two PLX device IDs Hong Liu: ieee80211: fix not allocating IV+ICV space when usingencryption in ieee80211_tx_frame Horms: CONFIG_WIRELESS_EXT is neccessary after all John W. Linville: softmac: fix build-break from 881ee6999d66c8fc903b429b73bbe6045b38c549 Joseph Jezak: SoftMAC: Prevent multiple authentication attempts on the same network SoftMAC: Add network to ieee80211softmac_call_events when associate times out Larry Finger: Convert bcm43xx-softmac to use the ieee80211_is_valid_channel routine 2.6.17 missing a call to ieee80211softmac_capabilities from ieee80211softmac_assoc_req Michael Buesch: bcm43xx: suspend MAC while executing long pwork bcm43xx: workaround init_board vs. IRQ race drivers/net/wireless/bcm43xx/bcm43xx.h |2 + drivers/net/wireless/bcm43xx/bcm43xx_main.c| 82 +++- drivers/net/wireless/bcm43xx/bcm43xx_main.h| 24 --- drivers/net/wireless/bcm43xx/bcm43xx_radio.c |7 +- drivers/net/wireless/bcm43xx/bcm43xx_wx.c |2 - drivers/net/wireless/bcm43xx/bcm43xx_xmit.c|5 + drivers/net/wireless/hostap/hostap_plx.c |2 + include/net/ieee80211softmac.h |1 net/ieee80211/ieee80211_rx.c |4 + net/ieee80211/ieee80211_tx.c | 15 +++- net/ieee80211/softmac/ieee80211softmac_assoc.c | 31 +++-- net/ieee80211/softmac/ieee80211softmac_auth.c |4 + net/ieee80211/softmac/ieee80211softmac_io.c|3 + net/ieee80211/softmac/ieee80211softmac_wx.c| 36 ++- 14 files changed, 139 insertions(+), 79 deletions(-) diff --git a/drivers/net/wireless/bcm43xx/bcm43xx.h b/drivers/net/wireless/bcm43xx/bcm43xx.h index d8f917c..d5e10e2 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx.h +++ b/drivers/net/wireless/bcm43xx/bcm43xx.h @@ -722,6 +722,8 @@ #endif u32 irq_savedstate; /* Link Quality calculation context. */ struct bcm43xx_noise_calculation noisecalc; + /* if 0 MAC is suspended. if == 0 MAC is enabled. */ + int mac_suspended; /* Threshold values. */ //TODO: The RTS thr has to be _used_. Currently, it is only set via WX. diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c index 085d785..af97755 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c @@ -1885,6 +1885,15 @@ static irqreturn_t bcm43xx_interrupt_han spin_lock(bcm-irq_lock); + /* Only accept IRQs, if we are initialized properly. +* This avoids an RX race while initializing. +* We should probably not enable IRQs before we are initialized +* completely, but some careful work is needed to fix this. I think it +* is best to stay with this cheap workaround for now... . +*/ + if (unlikely(bcm43xx_status(bcm) != BCM43xx_STAT_INITIALIZED)) + goto out; + reason = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); if (reason == 0x) { /* irq not for us (shared irq) */ @@ -1906,19 +1915,11 @@ static irqreturn_t bcm43xx_interrupt_han bcm43xx_interrupt_ack(bcm, reason); - /* Only accept IRQs, if we are initialized properly. -* This avoids an RX race while initializing. -* We should probably not enable IRQs before we are initialized -* completely, but some careful work is needed to fix this. I think it -* is best to stay with this cheap workaround for now... . -*/ - if (likely(bcm43xx_status(bcm) == BCM43xx_STAT_INITIALIZED)) { - /* disable all IRQs. They are enabled again in the bottom half. */ - bcm-irq_savedstate = bcm43xx_interrupt_disable(bcm, BCM43xx_IRQ_ALL); - /* save the reason code and call our bottom half. */ - bcm-irq_reason = reason; - tasklet_schedule(bcm-isr_tasklet); - } + /* disable all IRQs. They are enabled again in the bottom half. */ + bcm-irq_savedstate = bcm43xx_interrupt_disable(bcm, BCM43xx_IRQ_ALL); + /* save the reason code and call our bottom half. */ + bcm-irq_reason = reason; + tasklet_schedule(bcm-isr_tasklet); out: mmiowb(); @@ -2297,13 +2298,17 @@ static int bcm43xx_gpio_cleanup(struct b /* http://bcm-specs.sipsolutions.net/EnableMac */ void
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: + assert(bcm-mac_suspended = 0); + if (bcm-mac_suspended == 0) { + bcm43xx_power_saving_ctl_bits(bcm, -1, 1); + bcm43xx_write32(bcm, BCM43xx_MMIO_STATUS_BITFIELD, + bcm43xx_read32(bcm, BCM43xx_MMIO_STATUS_BITFIELD) +~BCM43xx_SBF_MAC_ENABLED); + bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); /* dummy read */ + for (i = 10; i; i--) { + tmp = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); + if (tmp BCM43xx_IRQ_READY) + goto out; + udelay(10); + } + printkl(KERN_ERR PFX MAC suspend failed\n); } NAK this super-long delay... should be done in a workqueue, looks like? ACK everything else. Jeff - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
Jeff Garzik wrote: John W. Linville wrote: +assert(bcm-mac_suspended = 0); +if (bcm-mac_suspended == 0) { +bcm43xx_power_saving_ctl_bits(bcm, -1, 1); +bcm43xx_write32(bcm, BCM43xx_MMIO_STATUS_BITFIELD, +bcm43xx_read32(bcm, BCM43xx_MMIO_STATUS_BITFIELD) + ~BCM43xx_SBF_MAC_ENABLED); +bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); /* dummy read */ +for (i = 10; i; i--) { +tmp = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); +if (tmp BCM43xx_IRQ_READY) +goto out; +udelay(10); +} +printkl(KERN_ERR PFX MAC suspend failed\n); } NAK this super-long delay... should be done in a workqueue, looks like? ACK everything else. That delay was set to try to accommodate my interface when it refused to suspend the MAC, which resulted in transmit errors. That problem has since been cured by reworking the periodic work handlers - thus such a long delay should not be needed. The original spec from the clean-room group was a delay loop of 1000. I'm currently testing that value now. If it passes the test, would a for (i=1000; i; i--) be acceptable? Larry - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
Larry Finger wrote: Jeff Garzik wrote: John W. Linville wrote: +assert(bcm-mac_suspended = 0); +if (bcm-mac_suspended == 0) { +bcm43xx_power_saving_ctl_bits(bcm, -1, 1); +bcm43xx_write32(bcm, BCM43xx_MMIO_STATUS_BITFIELD, +bcm43xx_read32(bcm, BCM43xx_MMIO_STATUS_BITFIELD) + ~BCM43xx_SBF_MAC_ENABLED); +bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); /* dummy read */ +for (i = 10; i; i--) { +tmp = bcm43xx_read32(bcm, BCM43xx_MMIO_GEN_IRQ_REASON); +if (tmp BCM43xx_IRQ_READY) +goto out; +udelay(10); +} +printkl(KERN_ERR PFX MAC suspend failed\n); } NAK this super-long delay... should be done in a workqueue, looks like? ACK everything else. That delay was set to try to accommodate my interface when it refused to suspend the MAC, which resulted in transmit errors. That problem has since been cured by reworking the periodic work handlers - thus such a long delay should not be needed. The original spec from the clean-room group was a delay loop of 1000. I'm currently testing that value now. If it passes the test, would a for (i=1000; i; i--) be acceptable? That's acceptable, yes, but it sounds like the problem has since been cured? Jeff - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: The following changes since commit 76df73ff90e99681a99e457aec4cfe0a240b7982: John W. Linville: Merge branch 'from-linus' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Jiri Slaby: pci: bcm43xx avoid pci_find_device Larry Finger: wireless: Changes to ieee80211.h for user space regulatory daemon wireless: correct dump of WPA IE Michael Buesch: bcm43xx: redesign locking bcm43xx: preemptible periodic work Zhu Yi: ipw2200 locking fix pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit 76df73ff90e99681a99e457aec4cfe0a240b7982: John W. Linville: Merge branch 'from-linus' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Jiri Slaby: pci: bcm43xx avoid pci_find_device Larry Finger: wireless: Changes to ieee80211.h for user space regulatory daemon wireless: correct dump of WPA IE Michael Buesch: bcm43xx: redesign locking bcm43xx: preemptible periodic work Zhu Yi: ipw2200 locking fix drivers/net/wireless/bcm43xx/bcm43xx.h | 100 +++ drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c | 33 ++-- drivers/net/wireless/bcm43xx/bcm43xx_leds.c|4 drivers/net/wireless/bcm43xx/bcm43xx_main.c| 221 drivers/net/wireless/bcm43xx/bcm43xx_phy.c |9 + drivers/net/wireless/bcm43xx/bcm43xx_pio.c | 44 - drivers/net/wireless/bcm43xx/bcm43xx_pio.h | 13 + drivers/net/wireless/bcm43xx/bcm43xx_sysfs.c | 38 ++-- drivers/net/wireless/bcm43xx/bcm43xx_wx.c | 107 ++-- drivers/net/wireless/ipw2200.c | 41 +++- drivers/net/wireless/ipw2200.h |1 include/net/ieee80211.h|5 - net/ieee80211/softmac/ieee80211softmac_wx.c|2 13 files changed, 402 insertions(+), 216 deletions(-) diff --git a/drivers/net/wireless/bcm43xx/bcm43xx.h b/drivers/net/wireless/bcm43xx/bcm43xx.h index e66fdb1..d8f917c 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx.h +++ b/drivers/net/wireless/bcm43xx/bcm43xx.h @@ -636,6 +636,17 @@ struct bcm43xx_key { u8 algorithm; }; +/* Driver initialization status. */ +enum { + BCM43xx_STAT_UNINIT,/* Uninitialized. */ + BCM43xx_STAT_INITIALIZING, /* init_board() in progress. */ + BCM43xx_STAT_INITIALIZED, /* Fully operational. */ + BCM43xx_STAT_SHUTTINGDOWN, /* free_board() in progress. */ + BCM43xx_STAT_RESTARTING,/* controller_restart() called. */ +}; +#define bcm43xx_status(bcm)atomic_read((bcm)-init_status) +#define bcm43xx_set_status(bcm, stat) atomic_set((bcm)-init_status, (stat)) + struct bcm43xx_private { struct ieee80211_device *ieee; struct ieee80211softmac_device *softmac; @@ -646,18 +657,17 @@ struct bcm43xx_private { void __iomem *mmio_addr; - /* Do not use the lock directly. Use the bcm43xx_lock* helper -* functions, to be MMIO-safe. */ - spinlock_t _lock; + /* Locking, see theory of locking text below. */ + spinlock_t irq_lock; + struct mutex mutex; - /* Driver status flags. */ - u32 initialized:1, /* init_board() succeed */ - was_initialized:1, /* for PCI suspend/resume. */ - shutting_down:1,/* free_board() in progress */ + /* Driver initialization status BCM43xx_STAT_*** */ + atomic_t init_status; + + u16 was_initialized:1, /* for PCI suspend/resume. */ __using_pio:1, /* Internal, use bcm43xx_using_pio(). */ bad_frames_preempt:1, /* Use Bad Frames Preemption (default off) */ reg124_set_0x4:1, /* Some variable to keep track of IRQ stuff. */ - powersaving:1, /* TRUE if we are in PowerSaving mode. FALSE otherwise. */ short_preamble:1, /* TRUE, if short preamble is enabled. */ firmware_norelease:1; /* Do not release the firmware. Used on suspend. */ @@ -721,7 +731,7 @@ #endif struct tasklet_struct isr_tasklet; /* Periodic tasks */ - struct timer_list periodic_tasks; + struct work_struct periodic_work; unsigned int periodic_state; struct work_struct restart_work; @@ -746,21 +756,55 @@ #ifdef CONFIG_BCM43XX_DEBUG #endif }; -/* bcm43xx_(un)lock() protect struct bcm43xx_private. - * Note that _NO_ MMIO writes are allowed. If you want to - * write to the device through MMIO in the critical section, use - * the *_mmio lock functions. - * MMIO read-access is allowed, though. - */ -#define bcm43xx_lock(bcm, flags) spin_lock_irqsave((bcm)-_lock, flags) -#define bcm43xx_unlock(bcm, flags) spin_unlock_irqrestore((bcm)-_lock, flags) -/* bcm43xx_(un)lock_mmio() protect struct bcm43xx_private and MMIO. - * MMIO write-access to the device is allowed. - * All MMIO writes are flushed on unlock, so it is guaranteed to not - * interfere with other threads writing MMIO registers. + +/**** THEORY OF LOCKING *** + * + * We have two different locks in the bcm43xx driver. + * = bcm-mutex:General sleeping mutex. Protects struct bcm43xx_private + * and the device registers. + * = bcm-irq_lock: IRQ spinlock. Protects against IRQ handler concurrency. + * + * We have three types of helper function pairs to utilize
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: This pull is intended for 2.6.18. Thanks, John --- The following changes since commit f6882a0688ea83db5fc2f3491ac9fcdce0834cc7: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream applied - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
This pull is intended for 2.6.18. Thanks, John --- The following changes since commit f6882a0688ea83db5fc2f3491ac9fcdce0834cc7: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Daniel Drake: softmac: complete shared key authentication softmac: Fix handling of authentication failure Jason Lunz: bcm43xx: quiet down log spam from set_security Joseph Jezak: softmac: unified capabilities computation Pavel Machek: usb wifi: zd1201 cleanups wireless: move zd1201 where it belongs Toralf Förster: ieee80211softmac_io.c: fix warning defined but not used drivers/net/wireless/Kconfig | 17 ++ drivers/net/wireless/Makefile |2 drivers/net/wireless/bcm43xx/bcm43xx_main.c| 13 +- drivers/net/wireless/zd1201.c | 67 -- drivers/net/wireless/zd1201.h |0 drivers/usb/net/Kconfig| 17 -- drivers/usb/net/Makefile |1 include/net/ieee80211.h|3 include/net/ieee80211softmac.h |2 net/ieee80211/ieee80211_tx.c | 25 +++- net/ieee80211/softmac/Kconfig |1 net/ieee80211/softmac/ieee80211softmac_assoc.c | 22 +++ net/ieee80211/softmac/ieee80211softmac_auth.c | 12 +- net/ieee80211/softmac/ieee80211softmac_event.c |5 + net/ieee80211/softmac/ieee80211softmac_io.c| 169 +++- 15 files changed, 180 insertions(+), 176 deletions(-) rename drivers/{usb/net/zd1201.c = net/wireless/zd1201.c} (98%) rename drivers/{usb/net/zd1201.h = net/wireless/zd1201.h} (100%) Patch included as attachment upstream.patch.bz2 -- John W. Linville [EMAIL PROTECTED] upstream.patch.bz2 Description: BZip2 compressed data
Re: Please pull 'upstream' branch of wireless-2.6
On Wed, May 24, 2006 at 12:35:20AM -0400, Jeff Garzik wrote: John W. Linville wrote: The following changes since commit 01d654d25d23fb73deb7904ce1c0b3a0f5fc2908: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Marcin Juszkiewicz: hostap: new pcmcia IDs drivers/net/wireless/hostap/hostap_cs.c |6 ++ 1 files changed, 6 insertions(+), 0 deletions(-) WTF??? I pull, and see diffstat: Merge db21e578e551421d76641d72cb3f8296ed3f9e61, made by recursive. drivers/net/wireless/airo.c |2 ... This is vastly different from any 'pull upstream' email I've received from you. It is extremely uncool for me to pull, and receive something other than what your email specified. Jeff, I am terribly sorry. I sent a request for this on 24 April, but it does not appear in the archives. It must have been dropped (probably due to size) by the netdev list filters, and I neglected to notice. /me wishes the list would send me a note when it drops stuff due to size... Nonetheless, I looked over the changes and they look OK, so I took the lazy route and kept them. I greatly appreciate that! For the future, I would perhaps recommend creating an upstream-jeff branch at the time of submission, if you insist upon continuing to push The point is well taken. It probably does make sense either to have an upstream-jeff branch or to make a new branch if you haven't yet pulled. I'll keep that in mind. Thanks, John -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit 01d654d25d23fb73deb7904ce1c0b3a0f5fc2908: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Marcin Juszkiewicz: hostap: new pcmcia IDs drivers/net/wireless/hostap/hostap_cs.c |6 ++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/drivers/net/wireless/hostap/hostap_cs.c b/drivers/net/wireless/hostap/hostap_cs.c index 55bed92..db03dc2 100644 --- a/drivers/net/wireless/hostap/hostap_cs.c +++ b/drivers/net/wireless/hostap/hostap_cs.c @@ -881,6 +881,12 @@ static struct pcmcia_device_id hostap_cs PCMCIA_DEVICE_PROD_ID12( ZoomAir 11Mbps High, Rate wireless Networking, 0x273fe3db, 0x32a1eaee), + PCMCIA_DEVICE_PROD_ID123( + Pretec, CompactWLAN Card 802.11b, 2.5, + 0x1cadd3e5, 0xe697636c, 0x7a5bfcf1), + PCMCIA_DEVICE_PROD_ID123( + U.S. Robotics, IEEE 802.11b PC-CARD, Version 01.02, + 0xc7b8df9d, 0x1700d087, 0x4b74baa0), PCMCIA_DEVICE_NULL }; MODULE_DEVICE_TABLE(pcmcia, hostap_cs_ids); -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Wed, May 17, 2006 at 10:23:34PM +0100, Daniel Drake wrote: John W. Linville wrote: Daniel Drake: set_security implementation inside softmac If it's not too late, can you drop this one? Well, it's your patch. If you want to withdraw it, I'll comply. --- The following changes since commit 59d4b684fbe74b25ac8593f39d2aaa86aa485b1f: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Arjan van de Ven: unused exports in wireless drivers drivers/net/wireless/hostap/hostap_80211_tx.c |1 - drivers/net/wireless/hostap/hostap_ap.c | 11 --- drivers/net/wireless/hostap/hostap_main.c |2 -- 3 files changed, 0 insertions(+), 14 deletions(-) diff --git a/drivers/net/wireless/hostap/hostap_80211_tx.c b/drivers/net/wireless/hostap/hostap_80211_tx.c index 06a5214..4a5be70 100644 --- a/drivers/net/wireless/hostap/hostap_80211_tx.c +++ b/drivers/net/wireless/hostap/hostap_80211_tx.c @@ -534,5 +534,4 @@ int hostap_master_start_xmit(struct sk_b } -EXPORT_SYMBOL(hostap_dump_tx_80211); EXPORT_SYMBOL(hostap_master_start_xmit); diff --git a/drivers/net/wireless/hostap/hostap_ap.c b/drivers/net/wireless/hostap/hostap_ap.c index 06c3fa3..ba13125 100644 --- a/drivers/net/wireless/hostap/hostap_ap.c +++ b/drivers/net/wireless/hostap/hostap_ap.c @@ -3276,17 +3276,6 @@ EXPORT_SYMBOL(hostap_init_data); EXPORT_SYMBOL(hostap_init_ap_proc); EXPORT_SYMBOL(hostap_free_data); EXPORT_SYMBOL(hostap_check_sta_fw_version); -EXPORT_SYMBOL(hostap_handle_sta_tx); -EXPORT_SYMBOL(hostap_handle_sta_release); EXPORT_SYMBOL(hostap_handle_sta_tx_exc); -EXPORT_SYMBOL(hostap_update_sta_ps); -EXPORT_SYMBOL(hostap_handle_sta_rx); -EXPORT_SYMBOL(hostap_is_sta_assoc); -EXPORT_SYMBOL(hostap_is_sta_authorized); -EXPORT_SYMBOL(hostap_add_sta); -EXPORT_SYMBOL(hostap_update_rates); -EXPORT_SYMBOL(hostap_add_wds_links); -EXPORT_SYMBOL(hostap_wds_link_oper); #ifndef PRISM2_NO_KERNEL_IEEE80211_MGMT -EXPORT_SYMBOL(hostap_deauth_all_stas); #endif /* PRISM2_NO_KERNEL_IEEE80211_MGMT */ diff --git a/drivers/net/wireless/hostap/hostap_main.c b/drivers/net/wireless/hostap/hostap_main.c index 8dd4c44..93786f4 100644 --- a/drivers/net/wireless/hostap/hostap_main.c +++ b/drivers/net/wireless/hostap/hostap_main.c @@ -1125,11 +1125,9 @@ EXPORT_SYMBOL(hostap_set_auth_algs); EXPORT_SYMBOL(hostap_dump_rx_header); EXPORT_SYMBOL(hostap_dump_tx_header); EXPORT_SYMBOL(hostap_80211_header_parse); -EXPORT_SYMBOL(hostap_80211_prism_header_parse); EXPORT_SYMBOL(hostap_80211_get_hdrlen); EXPORT_SYMBOL(hostap_get_stats); EXPORT_SYMBOL(hostap_setup_dev); -EXPORT_SYMBOL(hostap_proc); EXPORT_SYMBOL(hostap_set_multicast_list_queue); EXPORT_SYMBOL(hostap_set_hostapd); EXPORT_SYMBOL(hostap_set_hostapd_sta); -- John W. Linville [EMAIL PROTECTED] - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: On Wed, May 17, 2006 at 10:23:34PM +0100, Daniel Drake wrote: John W. Linville wrote: Daniel Drake: set_security implementation inside softmac If it's not too late, can you drop this one? Well, it's your patch. If you want to withdraw it, I'll comply. Please do. I didn't sign off or send it to you directly as I wasn't asking for inclusion, but I'll make that clearer next time. Thanks, Daniel - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit 59d4b684fbe74b25ac8593f39d2aaa86aa485b1f: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Arjan van de Ven: unused exports in wireless drivers Daniel Drake: set_security implementation inside softmac drivers/net/wireless/bcm43xx/bcm43xx_main.c | 38 +++ drivers/net/wireless/hostap/hostap_80211_tx.c |1 - drivers/net/wireless/hostap/hostap_ap.c | 11 -- drivers/net/wireless/hostap/hostap_main.c |2 - include/net/ieee80211softmac.h |4 ++ net/ieee80211/softmac/ieee80211softmac_module.c | 46 +++ 6 files changed, 55 insertions(+), 47 deletions(-) diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c index c050290..17b59ef 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c @@ -3547,8 +3547,7 @@ static void bcm43xx_ieee80211_set_chan(s } /* set_security() callback in struct ieee80211_device */ -static void bcm43xx_ieee80211_set_security(struct net_device *net_dev, - struct ieee80211_security *sec) +static void bcm43xx_ieee80211_set_security(struct net_device *net_dev) { struct bcm43xx_private *bcm = bcm43xx_priv(net_dev); struct ieee80211_security *secinfo = bcm-ieee-sec; @@ -3559,42 +3558,15 @@ static void bcm43xx_ieee80211_set_securi bcm43xx_lock_mmio(bcm, flags); - for (keyidx = 0; keyidxWEP_KEYS; keyidx++) - if (sec-flags (1keyidx)) { - secinfo-encode_alg[keyidx] = sec-encode_alg[keyidx]; - secinfo-key_sizes[keyidx] = sec-key_sizes[keyidx]; - memcpy(secinfo-keys[keyidx], sec-keys[keyidx], SCM_KEY_LEN); - } - - if (sec-flags SEC_ACTIVE_KEY) { - secinfo-active_key = sec-active_key; - dprintk(KERN_INFO PFX.active_key = %d\n, sec-active_key); - } - if (sec-flags SEC_UNICAST_GROUP) { - secinfo-unicast_uses_group = sec-unicast_uses_group; - dprintk(KERN_INFO PFX.unicast_uses_group = %d\n, sec-unicast_uses_group); - } - if (sec-flags SEC_LEVEL) { - secinfo-level = sec-level; - dprintk(KERN_INFO PFX.level = %d\n, sec-level); - } - if (sec-flags SEC_ENABLED) { - secinfo-enabled = sec-enabled; - dprintk(KERN_INFO PFX.enabled = %d\n, sec-enabled); - } - if (sec-flags SEC_ENCRYPT) { - secinfo-encrypt = sec-encrypt; - dprintk(KERN_INFO PFX.encrypt = %d\n, sec-encrypt); - } if (bcm-initialized !bcm-ieee-host_encrypt) { if (secinfo-enabled) { /* upload WEP keys to hardware */ char null_address[6] = { 0 }; u8 algorithm = 0; for (keyidx = 0; keyidxWEP_KEYS; keyidx++) { - if (!(sec-flags (1keyidx))) + if (!(secinfo-flags (1keyidx))) continue; - switch (sec-encode_alg[keyidx]) { + switch (secinfo-encode_alg[keyidx]) { case SEC_ALG_NONE: algorithm = BCM43xx_SEC_ALGO_NONE; break; case SEC_ALG_WEP: algorithm = BCM43xx_SEC_ALGO_WEP; @@ -3613,7 +3585,7 @@ static void bcm43xx_ieee80211_set_securi assert(0); break; } - bcm43xx_key_write(bcm, keyidx, algorithm, sec-keys[keyidx], secinfo-key_sizes[keyidx], null_address[0]); + bcm43xx_key_write(bcm, keyidx, algorithm, secinfo-keys[keyidx], secinfo-key_sizes[keyidx], null_address[0]); bcm-key[keyidx].enabled = 1; bcm-key[keyidx].algorithm = algorithm; } @@ -3694,6 +3666,7 @@ static int bcm43xx_init_private(struct b bcm-ieee = netdev_priv(net_dev); bcm-softmac = ieee80211_priv(net_dev); bcm-softmac-set_channel = bcm43xx_ieee80211_set_chan; + bcm-softmac-set_security = bcm43xx_ieee80211_set_security; bcm-irq_savedstate = BCM43xx_IRQ_INITIAL; bcm-pci_dev = pci_dev; @@ -3729,7 +3702,6 @@ #endif /* CONFIG_BCM43XX_PIO */ bcm-ieee-iw_mode = BCM43xx_INITIAL_IWMODE; bcm-ieee-tx_headroom = sizeof(struct bcm43xx_txhdr); - bcm-ieee-set_security =
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: Daniel Drake: set_security implementation inside softmac If it's not too late, can you drop this one? I didn't receive any feedback on it, and I decided it's not the right approach. The interface isn't great, but when done at the driver level it allows drivers to reject various security settings that they don't support by not copying them into secinfo. So, even though this code block will be almost duplicated over bcm43xx, zd1211, and more, I think that level is the right place to put it. Thanks, Daniel - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull upstream branch of wireless-2.6
These are patches intended for the next release (i.e. 2.6.18)...thanks! --- The following changes since commit fd5226a72694d1c0abe1cc39711a86f1754e637d: John W. Linville: Merge branch 'upstream-fixes' into upstream are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Adrian Bunk: ieee80211_wx.c: remove dead code Daniel Drake: softmac: deauthentication implies deassociation softmac: suggest per-frame-type TX rate Michal Schmidt: wireless/airo: minimal WPA awareness Pavel Roskin: orinoco: unregister network device before releasing PCMCIA resources orinoco: report more relevant data on startup orinoco: simplify locking, fix error handling in PCMCIA resume orinoco: eliminate the suspend/resume functions if CONFIG_PM is unset orinoco: don't put PCI resource data to the network device Stefano Brivio: bcm43xx: fix whitespace bcm43xx: add PCI ID for bcm4319 drivers/net/wireless/airo.c |2 drivers/net/wireless/bcm43xx/bcm43xx_main.c |8 +- drivers/net/wireless/orinoco_cs.c | 33 ++ drivers/net/wireless/orinoco_nortel.c |5 + drivers/net/wireless/orinoco_pci.c |5 + drivers/net/wireless/orinoco_pci.h | 31 +- drivers/net/wireless/orinoco_plx.c |5 + drivers/net/wireless/orinoco_tmd.c |5 + drivers/net/wireless/spectrum_cs.c | 33 ++ include/net/ieee80211softmac.h | 38 ++- net/ieee80211/ieee80211_wx.c|2 net/ieee80211/softmac/ieee80211softmac_assoc.c | 72 +++--- net/ieee80211/softmac/ieee80211softmac_auth.c |3 + net/ieee80211/softmac/ieee80211softmac_module.c | 117 +++ net/ieee80211/softmac/ieee80211softmac_priv.h |6 + net/ieee80211/softmac/ieee80211softmac_wx.c |6 + 16 files changed, 222 insertions(+), 149 deletions(-) diff --git a/drivers/net/wireless/airo.c b/drivers/net/wireless/airo.c index 7f2dacf..4069b79 100644 --- a/drivers/net/wireless/airo.c +++ b/drivers/net/wireless/airo.c @@ -2768,7 +2768,7 @@ static int airo_test_wpa_capable(struct /* Only firmware versions 5.30.17 or better can do WPA */ if ((cap_rid.softVer 0x530) - || ((cap_rid.softVer == 0x530) (cap_rid.softSubVer = 0x17))) { + || ((cap_rid.softVer == 0x530) (cap_rid.softSubVer = 17))) { airo_print_info(name, WPA is supported.); return 1; } diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c index 8d0f618..e69e8b5 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c @@ -128,13 +128,15 @@ #endif /* CONFIG_BCM43XX_DEBUG*/ static struct pci_device_id bcm43xx_pci_tbl[] = { /* Broadcom 4303 802.11b */ { PCI_VENDOR_ID_BROADCOM, 0x4301, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, - /* Broadcom 4307 802.11b */ + /* Broadcom 4307 802.11b */ { PCI_VENDOR_ID_BROADCOM, 0x4307, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, - /* Broadcom 4318 802.11b/g */ + /* Broadcom 4318 802.11b/g */ { PCI_VENDOR_ID_BROADCOM, 0x4318, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, + /* Broadcom 4319 802.11a/b/g */ + { PCI_VENDOR_ID_BROADCOM, 0x4319, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Broadcom 4306 802.11b/g */ { PCI_VENDOR_ID_BROADCOM, 0x4320, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, - /* Broadcom 4306 802.11a */ + /* Broadcom 4306 802.11a */ // { PCI_VENDOR_ID_BROADCOM, 0x4321, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, /* Broadcom 4309 802.11a/b/g */ { PCI_VENDOR_ID_BROADCOM, 0x4324, PCI_ANY_ID, PCI_ANY_ID, 0, 0, 0 }, diff --git a/drivers/net/wireless/orinoco_cs.c b/drivers/net/wireless/orinoco_cs.c index d2c48ac..b2aec4d 100644 --- a/drivers/net/wireless/orinoco_cs.c +++ b/drivers/net/wireless/orinoco_cs.c @@ -147,14 +147,11 @@ static void orinoco_cs_detach(struct pcm { struct net_device *dev = link-priv; + if (link-dev_node) + unregister_netdev(dev); + orinoco_cs_release(link); - DEBUG(0, PFX detach: link=%p link-dev_node=%p\n, link, link-dev_node); - if (link-dev_node) { - DEBUG(0, PFX About to unregister net device %p\n, - dev); - unregister_netdev(dev); - } free_orinocodev(dev); } /* orinoco_cs_detach */ @@ -346,19 +343,10 @@ orinoco_cs_config(struct pcmcia_device * net_device has been registered */ /* Finally, report what we've done */ - printk(KERN_DEBUG %s: index 0x%02x: , - dev-name, link-conf.ConfigIndex); - if (link-conf.Vpp) - printk(,
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: The following changes since commit 7c241d37fe0e6442c5cf3b5d73f7f58f2dc66352: Michael Buesch: bcm43xx: make PIO mode usable are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Mon, 2006-04-24 at 20:33 -0400, Dan Williams wrote: Any way to get the event handling cleanup patch into 2.6.17? It's pretty much a bugfix and bcm43xx is useless with wpa_supplicant and NM without the patch... No, that's not true, the cleanup patch is exactly that, code cleanup :) Externally, softmac behaves the same without it since your patch and some other patches I did on top of that have already gone in. johannes signature.asc Description: This is a digitally signed message part
Re: Please pull 'upstream' branch of wireless-2.6
On Tue, 2006-04-25 at 13:30 +0200, Johannes Berg wrote: On Mon, 2006-04-24 at 20:33 -0400, Dan Williams wrote: Any way to get the event handling cleanup patch into 2.6.17? It's pretty much a bugfix and bcm43xx is useless with wpa_supplicant and NM without the patch... No, that's not true, the cleanup patch is exactly that, code cleanup :) Externally, softmac behaves the same without it since your patch and some other patches I did on top of that have already gone in. Ah, sorry, mistook this patch for the one that actually sent the events. Dan - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
On Mon, 2006-04-24 at 16:40 -0400, John W. Linville wrote: The following changes since commit 7c241d37fe0e6442c5cf3b5d73f7f58f2dc66352: Michael Buesch: bcm43xx: make PIO mode usable are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Dan Williams: wireless/airo: minimal WPA awareness Jiri Benc: orinoco: fix BAP0 offset error after several days of operation Johannes Berg: softmac: add SIOCSIWMLME softmac: clean up event handling code Any way to get the event handling cleanup patch into 2.6.17? It's pretty much a bugfix and bcm43xx is useless with wpa_supplicant and NM without the patch... Dan Michael Buesch: bcm43xx: use pci_iomap() for convenience. Pavel Roskin: orinoco: Remove useless CIS validation orinoco: remove PCMCIA audio support, it's useless for wireless cards orinoco: remove underscores from little-endian field names orinoco: remove tracing code, it's unused orinoco: remove debug buffer code and userspace include support orinoco: Symbol card supported by spectrum_cs is LA4137, not LA4100 orinoco: optimize Tx exception handling in orinoco orinoco: orinoco_xmit() should only return valid symbolic constants orinoco replace hermes_write_words() with hermes_write_bytes() orinoco: don't use any padding for Tx frames orinoco: refactor and clean up Tx error handling orinoco: simplify 802.3 encapsulation code orinoco: delay FID allocation after firmware initialization orinoco_pci: disable device and free IRQ when suspending orinoco_pci: use pci_iomap() for resources orinoco: support PCI suspend/resume for Nortel, PLX and TMD adaptors orinoco: reduce differences between PCI drivers, create orinoco_pci.h orinoco: further comment cleanup in the PCI drivers orinoco: bump version to 0.15 Zhu Yi: ieee80211: Fix TKIP MIC calculation for QoS frames ieee80211: Fix TX code doesn't enable QoS when using WPA + QoS ieee80211: export list of bit rates with standard WEXT procddures ieee80211: remove unnecessary CONFIG_WIRELESS_EXT checking ieee80211: replace debug IEEE80211_WARNING with each own debug macro ieee80211: update version stamp to 1.1.13 ipw2200: Exponential averaging for signal and noise Level ipw2200: Fix TX QoS enabled frames problem ipw2200: generates a scan event after a scan has completed ipw2200: add module_param support for antenna selection ipw2200: fix compile warning when !CONFIG_IPW2200_DEBUG ipw2200: Do not continue loading the firmware if kmalloc fails ipw2200: turn off signal debug log ipw2200: Set the 'fixed' flags in wext get_rate ipw2200: Fix endian issues with v3.0 fw image format README.ipw2200: rename CONFIG_IPW_DEBUG to CONFIG_IPW2200_DEBUG ipw2200: Enable rtap interface for RF promiscuous mode while associated ipw2200: version string rework ipw2200: update version stamp to 1.1.2 ipw2200: rename CONFIG_IPW_QOS to CONFIG_IPW2200_QOS wireless Kconfig add IPW2200_RADIOTAP ipw2200: rename CONFIG_IEEE80211_RADIOTAP to CONFIG_IPW2200_RADIOTAP ipw2200: remove priv-last_noise reference ipw2200: Fix wpa_supplicant association problem Documentation/networking/README.ipw2200| 10 drivers/net/wireless/Kconfig | 30 + drivers/net/wireless/airo.c| 271 +--- drivers/net/wireless/bcm43xx/bcm43xx.h |1 drivers/net/wireless/bcm43xx/bcm43xx_debugfs.c |2 drivers/net/wireless/bcm43xx/bcm43xx_main.c| 27 - drivers/net/wireless/hermes.c | 66 -- drivers/net/wireless/hermes.h | 43 - drivers/net/wireless/ipw2200.c | 849 +--- drivers/net/wireless/ipw2200.h | 83 ++ drivers/net/wireless/orinoco.c | 251 ++- drivers/net/wireless/orinoco.h | 19 - drivers/net/wireless/orinoco_cs.c |9 drivers/net/wireless/orinoco_nortel.c | 168 +++-- drivers/net/wireless/orinoco_pci.c | 207 +- drivers/net/wireless/orinoco_pci.h | 125 drivers/net/wireless/orinoco_plx.c | 222 +++--- drivers/net/wireless/orinoco_tmd.c | 96 +-- drivers/net/wireless/spectrum_cs.c | 48 + include/net/ieee80211.h|6 include/net/ieee80211softmac_wx.h |5 net/ieee80211/ieee80211_crypt_tkip.c | 11 net/ieee80211/ieee80211_rx.c | 18 - net/ieee80211/ieee80211_tx.c | 63 +- net/ieee80211/ieee80211_wx.c | 44 + net/ieee80211/softmac/ieee80211softmac_assoc.c |
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: This is the merge of the bcm43xx driver, along with a variety of smaller changes. I would really like to see this in 2.6.17 if at all possible. Thanks! John --- The following changes since commit 5d5d7727a8cde78f798ecf04bac8031eff536f9d: David S. Miller: [SPARC64]: Kill duplicate exports of string library functions. are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 upstream pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
This is the merge of the bcm43xx driver, along with a variety of smaller changes. I would really like to see this in 2.6.17 if at all possible. Thanks! John --- The following changes since commit 5d5d7727a8cde78f798ecf04bac8031eff536f9d: David S. Miller: [SPARC64]: Kill duplicate exports of string library functions. are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6 upstream Adrian Bunk: PCMCIA_SPECTRUM must select FW_LOADER Danny van Dyk: Sync bcm43xx_phy_initb6() with specs David Woodhouse: softmac: reduce scan dwell time softmac: reduce default rate to 11Mbps. Jean Tourrilhes: zd1201 wireless stat update John W. Linville: wireless: import bcm43xx sources bcm43xx: patch Kconfig and wireless/Makefile for import Jouni Malinen: hostap: Make hostap_tx_encrypt() static hostap: Fix EAPOL frame encryption Larry Finger: Minor (janitorial) change to ieee80211 Michael Buesch: bcm43xx: sync with svn.berlios.de bcm43xx: remove linux version compatibility code. bcm43xx: Move README file to Documentation directory. bcm43xx: remove redundant COPYING file. bcm43xx: add DEBUG Kconfig option. Also fix indention. bcm43xx: Fix makefile. Remove all the out-of-tree stuff. bcm43xx: Add more initvals sanity checks and error out, if one sanity check fails. bcm43xx: Remove function bcm43xx_channel_is_allowed() bcm43xx: basic ethtool support bcm43xx: Wireless Ext update bcm43xx: fix txpower reporting in WE. bcm43xx: enable SPROM writing. bcm43xx: heavily increase mac_suspend timeout. bcm43xx: fix compiletime warning (phy_xmitpower) bcm43xx: remove WX debugging. bcm43xx: Partially fix PIO code. Add Kconfig option for PIO or DMA mode (or both). bcm43xx: add a note that not all devices support PIO. Apple Airport: Add Kconfig note that the bcm43xx driver has to be used for Airport Extreme cards. bcm43xx: update README bcm43xx: fix LED code. bcm43xx: rewrite and simplify the periodic task handling. bcm43xx: Code cleanups. This removes various inline statements and reduces codesize. bcm43xx: Move sprom lowlevel reading/writing to its own functions. bcm43xx: make bcm43xx_sprom_crc() static. bcm43xx: split the channel helper functions, so that they can be used without a valid running core. bcm43xx: remove old unused struct. bcm43xx: Fix Kconfig typo (transfer mode default) bcm43xx: Workaround init_board vs IRQ race. bcm43xx: move initialized = 1 to the end of init_board. bcm43xx: add assert(bcm-initialized) to periodic_tasks_setup(). bcm43xx: Move TX/RX related functions to its own file. Add basic RTS/CTS code. bcm43xx: Add sysfs attributes for device specific tunables. bcm43xx: Set both, the DMAmask and the coherent DMAmask. bcm43xx: Abstract the locking mechanism. bcm43xx: Remove the mmio access printing facility overhead. bcm43xx: fix some stuff, add a few missing mmiowb(), remove dead code. bcm43xx: receive TX status on MMIO or DMA unconditionally regarding the 80211 core rev. bcm43xx: add functions bcm43xx_dma_read/write, bcm43xx_dma_tx_suspend/resume. bcm43xx: reduce the size of bcm43xx_private by removing unneeded members. bcm43xx: Fix crash on ifdown, by being careful in pio/dma freeing. bcm43xx: Remove the workaround in dummy_transmission, bcm43xx: Do boardflags workarounds for specific boards. bcm43xx: properly mask txctl1 before writing it to hardware. bcm43xx: remove check for mmio length, as it differs among platforms. (especially embedded) bcm43xx: fix some gpio register trashing (hopefully :D) bcm43xx: merge all iwmode code into the set_iwmode function. bcm43xx: some IRQ handler cleanups. bcm43xx: set default attenuation values. bcm43xx: sync interference mitigation code to the specs. bcm43xx: fix nrssi_threshold calculation. bcm43xx: add useless and broken statistics stuff. People seem to want it. well... bcm43xx: get rid of /* vim: ... lines at the end of several files. bcm43xx: fix include issues on some platforms. bcm43xx: remove some compilerwarnings. bcm43xx: fix the remaining sparse warnings. bcm43xx: sync GPHY init with the specs. bcm43xx: don't set the channel on a device, which is down. Pete Zaitcev: bcm43xx: fix DMA TX skb freeing in case of fragmented packets. Documentation/networking/bcm43xx.txt| 36 drivers/net/wireless/Kconfig|7 drivers/net/wireless/Makefile |1 drivers/net/wireless/bcm43xx/Kconfig| 62 drivers/net/wireless/bcm43xx/Makefile | 12 drivers/net/wireless/bcm43xx/bcm43xx.h | 926 +
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: OK, this should be right... :-) The following changes since commit fe0b06b123762ab620b5bee3dab1576d0a7f: Larry Finger: Fix softmac scan are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit 1c2e02750b992703a8a18634e08b04353face243: Linus Torvalds: Merge git://git.kernel.org/.../perex/alsa are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Denis Vlasenko: ieee80211_rx_any: filter out packets, call ieee80211_rx or ieee80211_rx_mgt Johannes Berg: wireless: Add softmac layer to the kernel make softmac depend on IEEE80211 and EXPERIMENTAL softmac: fix some sparse warnings softmac: fix Makefiles softmac: convert to use global workqueue softmac: correctly use netif_carrier_{on,off} softmac: try to reassociate when being disassociated from the AP softmac: add fixme for disassoc softmac: select best network based on rssi softmac: check if disassociation is for us before processing it softmac: scan at least once before selecting a network by essid softmac: properly check return value of ieee80211softmac_alloc_mgt softmac: some comment stuff softmac: add copyright and license headers softmac: add MODULE_DESCRIPTION and MODULE_AUTHORs softmac: move EXPORT_SYMBOL_GPL right after functions update copyright in softmac trivial fixes to softmac softmac: update deauth handler to quiet warning softmac: add reassociation code softmac: remove dead code Larry Finger: Fix softmac scan include/net/ieee80211softmac.h | 292 ++ include/net/ieee80211softmac_wx.h | 94 + net/ieee80211/Kconfig |1 net/ieee80211/Makefile |1 net/ieee80211/ieee80211_rx.c| 74 net/ieee80211/softmac/Kconfig | 10 net/ieee80211/softmac/Makefile |9 net/ieee80211/softmac/ieee80211softmac_assoc.c | 403 net/ieee80211/softmac/ieee80211softmac_auth.c | 376 ++ net/ieee80211/softmac/ieee80211softmac_event.c | 159 net/ieee80211/softmac/ieee80211softmac_io.c | 474 +++ net/ieee80211/softmac/ieee80211softmac_module.c | 457 ++ net/ieee80211/softmac/ieee80211softmac_priv.h | 239 net/ieee80211/softmac/ieee80211softmac_scan.c | 237 net/ieee80211/softmac/ieee80211softmac_wx.c | 412 15 files changed, 3238 insertions(+), 0 deletions(-) create mode 100644 include/net/ieee80211softmac.h create mode 100644 include/net/ieee80211softmac_wx.h create mode 100644 net/ieee80211/softmac/Kconfig create mode 100644 net/ieee80211/softmac/Makefile create mode 100644 net/ieee80211/softmac/ieee80211softmac_assoc.c create mode 100644 net/ieee80211/softmac/ieee80211softmac_auth.c create mode 100644 net/ieee80211/softmac/ieee80211softmac_event.c create mode 100644 net/ieee80211/softmac/ieee80211softmac_io.c create mode 100644 net/ieee80211/softmac/ieee80211softmac_module.c create mode 100644 net/ieee80211/softmac/ieee80211softmac_priv.h create mode 100644 net/ieee80211/softmac/ieee80211softmac_scan.c create mode 100644 net/ieee80211/softmac/ieee80211softmac_wx.c Compressed diff attached... -- John W. Linville [EMAIL PROTECTED] diff-upstream.bz2 Description: BZip2 compressed data
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: The following changes since commit 1c2e02750b992703a8a18634e08b04353face243: Linus Torvalds: Merge git://git.kernel.org/.../perex/alsa are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Pulled, thanks. Jeff - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Re: Please pull 'upstream' branch of wireless-2.6
John W. Linville wrote: The following changes since commit dd288e7d75b9041f79fecae77d61cfa345da7266: John W. Linville: Merge branch 'upstream-fixes' are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream pulled - To unsubscribe from this list: send the line unsubscribe netdev in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html
Please pull 'upstream' branch of wireless-2.6
The following changes since commit dd288e7d75b9041f79fecae77d61cfa345da7266: John W. Linville: Merge branch 'upstream-fixes' are found in the git repository at: git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-2.6.git upstream Adrian Bunk: drivers/net/wireless/ipw2200.c: make ipw_qos_current_mode() static drivers/net/wireless/ipw2200.c: fix an array overun Bill Moss: ipw2200: Add signal level to iwlist scan output Cahill, Ben M: ipw2200: Set a meaningful silence threshold value ipw2200: Enables the slow diversity algorithm Henrik Brix Andersen: ipw2200: print geography code upon module load Ingo Molnar: ipw2100: semaphore to mutexes conversion James Ketrenos: ipw2200: stop netdev queue if h/w doesn't have space for new packets ipw2200: switch to the new ipw2200-fw-3.0 image format ieee80211: Don't update network statistics from off-channel packets. Larry Finger: Remove duplicated code from ipw2200.c Olivier Hochreutiner: ipw2200: wireless extension sensitivity threshold support Stefan Rompf: ipw2100: add radiotap headers to packtes captured in monitor mode Zhu Yi: ipw2200: fix a potential NULL pointer dereference ipw2200: use generic ieee80211_get_hdrlen() to get packet length ipw2200: remove the WPA card associates to non-WPA AP checking ipw2200: Fix rf_kill is activated after mode change with 'disable=1' ipw2200: Fix ipw_sw_reset() implementation inconsistent with comment ipw2200: Filter unsupported channels out in ad-hoc mode ipw2200: Change debug level for firmware error logging ipw2200: export `debug' module param only if CONFIG_IPW2200_DEBUG ipw2200: Update ipw2200 version stamp to 1.1.1 ipw2x00: expend Copyright to 2006 ipw2100: Fix radiotap code gcc warning ipw2100: move mutex.h include from ipw2100.c to ipw2100.h ipw2100: Update version ipw2100 stamp to 1.2.2 Documentation/networking/README.ipw2100 | 12 - Documentation/networking/README.ipw2200 | 44 +++ drivers/net/wireless/ipw2100.c | 220 ++- drivers/net/wireless/ipw2100.h | 11 + drivers/net/wireless/ipw2200.c | 450 +-- drivers/net/wireless/ipw2200.h | 39 +-- net/ieee80211/ieee80211_rx.c| 14 + 7 files changed, 415 insertions(+), 375 deletions(-) diff --git a/Documentation/networking/README.ipw2100 b/Documentation/networking/README.ipw2100 index 3ab4037..f3fcaa4 100644 --- a/Documentation/networking/README.ipw2100 +++ b/Documentation/networking/README.ipw2100 @@ -3,18 +3,18 @@ Intel(R) PRO/Wireless 2100 Driver for Li Intel(R) PRO/Wireless 2100 Network Connection -Copyright (C) 2003-2005, Intel Corporation +Copyright (C) 2003-2006, Intel Corporation README.ipw2100 -Version: 1.1.3 -Date : October 17, 2005 +Version: git-1.1.5 +Date : January 25, 2006 Index --- 0. IMPORTANT INFORMATION BEFORE USING THIS DRIVER 1. Introduction -2. Release 1.1.3 Current Features +2. Release git-1.1.5 Current Features 3. Command Line Parameters 4. Sysfs Helper Files 5. Radio Kill Switch @@ -89,7 +89,7 @@ potential fixes and patches, as well as for the driver project. -2. Release 1.1.3 Current Supported Features +2. Release git-1.1.5 Current Supported Features --- - Managed (BSS) and Ad-Hoc (IBSS) - WEP (shared key and open) @@ -270,7 +270,7 @@ For installation support on the ipw2100 9. License --- - Copyright(c) 2003 - 2005 Intel Corporation. All rights reserved. + Copyright(c) 2003 - 2006 Intel Corporation. All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License (version 2) as diff --git a/Documentation/networking/README.ipw2200 b/Documentation/networking/README.ipw2200 index c6492d3..acb30c5 100644 --- a/Documentation/networking/README.ipw2200 +++ b/Documentation/networking/README.ipw2200 @@ -10,7 +10,7 @@ both hardware adapters listed above. In PRO/Wireless 2915ABG Driver for Linux will be used to reference the unified driver. -Copyright (C) 2004-2005, Intel Corporation +Copyright (C) 2004-2006, Intel Corporation README.ipw2200 @@ -26,9 +26,11 @@ Index 1.2. Module parameters 1.3. Wireless Extension Private Methods 1.4. Sysfs Helper Files +1.5. Supported channels 2. Ad-Hoc Networking 3. Interacting with Wireless Tools 3.1. iwconfig mode +3.2. iwconfig sens 4. About the Version Numbers 5. Firmware installation 6. Support @@ -314,6 +316,35 @@ For the device level files, see /sys/bus running ifconfig and is therefore disabled by default. +1.5. Supported channels +--- + +Upon loading the Intel(R) PRO/Wireless 2915ABG Driver