diff options
author | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-27 17:41:24 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-09-27 17:41:24 -0400 |
commit | a77c64c1a641950626181b4857abb701d8f38ccc (patch) | |
tree | 9bfd2a99cc969b3d863d583b9ef18114a4fc4793 /drivers/net/wireless/bcm43xx | |
parent | ac7f6b5e44cb0982b98c31fa33298ba73fb5dcfc (diff) | |
parent | 0ba8821b12231386c8c1d506c682061f7225ae49 (diff) |
Merge branch 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6
* 'upstream-linus' of master.kernel.org:/pub/scm/linux/kernel/git/jgarzik/netdev-2.6: (48 commits)
[PATCH] bonding: update version number
[PATCH] git-netdev-all: pc300_tty build fix
[PATCH] Make PC300 WAN driver compile again
[PATCH] Modularize generic HDLC
[PATCH] more s2io __iomem annotations
[PATCH] restore __iomem annotations in e1000
[PATCH] 64bit bugs in s2io
[PATCH] bonding: Fix primary selection error at enslavement time
[PATCH] bonding: Don't mangle LACPDUs
[PATCH] bonding: Validate probe replies in ARP monitor
[PATCH] bonding: Don't release slaves when master is admin down
[PATCH] bonding: Add priv_flag to avoid event mishandling
[PATCH] bonding: Handle large hard_header_len
[PATCH] bonding: Remove unneeded NULL test
[PATCH] bonding: Format fix in seq_printf call
[PATCH] bonding: Convert delay value from s16 to int
[PATCH] bonding: Allow bonding to enslave a 10 Gig adapter
Delete unused drivers/net/gt64240eth.h
[PATCH] skge: fiber support
[PATCH] fix possible NULL ptr deref in forcedeth
...
Diffstat (limited to 'drivers/net/wireless/bcm43xx')
-rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx.h | 1 | ||||
-rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx_main.c | 10 | ||||
-rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx_phy.c | 15 | ||||
-rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx_wx.c | 2 | ||||
-rw-r--r-- | drivers/net/wireless/bcm43xx/bcm43xx_xmit.c | 5 |
5 files changed, 15 insertions, 18 deletions
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx.h b/drivers/net/wireless/bcm43xx/bcm43xx.h index 6d4ea36bc564..d6a8bf09878e 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx.h +++ b/drivers/net/wireless/bcm43xx/bcm43xx.h | |||
@@ -666,7 +666,6 @@ struct bcm43xx_noise_calculation { | |||
666 | }; | 666 | }; |
667 | 667 | ||
668 | struct bcm43xx_stats { | 668 | struct bcm43xx_stats { |
669 | u8 link_quality; | ||
670 | u8 noise; | 669 | u8 noise; |
671 | struct iw_statistics wstats; | 670 | struct iw_statistics wstats; |
672 | /* Store the last TX/RX times here for updating the leds. */ | 671 | /* Store the last TX/RX times here for updating the leds. */ |
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_main.c b/drivers/net/wireless/bcm43xx/bcm43xx_main.c index cb9a3ae8463a..eb65db7393ba 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_main.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_main.c | |||
@@ -2405,9 +2405,10 @@ static int bcm43xx_chip_init(struct bcm43xx_private *bcm) | |||
2405 | BCM43xx_UCODE_TIME) & 0x1f); | 2405 | BCM43xx_UCODE_TIME) & 0x1f); |
2406 | 2406 | ||
2407 | if ( value16 > 0x128 ) { | 2407 | if ( value16 > 0x128 ) { |
2408 | dprintk(KERN_ERR PFX | 2408 | printk(KERN_ERR PFX |
2409 | "Firmware: no support for microcode rev > 0x128\n"); | 2409 | "Firmware: no support for microcode extracted " |
2410 | err = -1; | 2410 | "from version 4.x binary drivers.\n"); |
2411 | err = -EOPNOTSUPP; | ||
2411 | goto err_release_fw; | 2412 | goto err_release_fw; |
2412 | } | 2413 | } |
2413 | 2414 | ||
@@ -3169,8 +3170,7 @@ static void bcm43xx_periodic_work_handler(void *d) | |||
3169 | * be preemtible. | 3170 | * be preemtible. |
3170 | */ | 3171 | */ |
3171 | mutex_lock(&bcm->mutex); | 3172 | mutex_lock(&bcm->mutex); |
3172 | netif_stop_queue(bcm->net_dev); | 3173 | netif_tx_disable(bcm->net_dev); |
3173 | synchronize_net(); | ||
3174 | spin_lock_irqsave(&bcm->irq_lock, flags); | 3174 | spin_lock_irqsave(&bcm->irq_lock, flags); |
3175 | bcm43xx_mac_suspend(bcm); | 3175 | bcm43xx_mac_suspend(bcm); |
3176 | if (bcm43xx_using_pio(bcm)) | 3176 | if (bcm43xx_using_pio(bcm)) |
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_phy.c b/drivers/net/wireless/bcm43xx/bcm43xx_phy.c index eafd0f662686..52ce2a9334fb 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_phy.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_phy.c | |||
@@ -361,7 +361,7 @@ static void bcm43xx_phy_setupg(struct bcm43xx_private *bcm) | |||
361 | if (phy->rev <= 2) | 361 | if (phy->rev <= 2) |
362 | for (i = 0; i < BCM43xx_ILT_NOISESCALEG_SIZE; i++) | 362 | for (i = 0; i < BCM43xx_ILT_NOISESCALEG_SIZE; i++) |
363 | bcm43xx_ilt_write(bcm, 0x1400 + i, bcm43xx_ilt_noisescaleg1[i]); | 363 | bcm43xx_ilt_write(bcm, 0x1400 + i, bcm43xx_ilt_noisescaleg1[i]); |
364 | else if ((phy->rev == 7) && (bcm43xx_phy_read(bcm, 0x0449) & 0x0200)) | 364 | else if ((phy->rev >= 7) && (bcm43xx_phy_read(bcm, 0x0449) & 0x0200)) |
365 | for (i = 0; i < BCM43xx_ILT_NOISESCALEG_SIZE; i++) | 365 | for (i = 0; i < BCM43xx_ILT_NOISESCALEG_SIZE; i++) |
366 | bcm43xx_ilt_write(bcm, 0x1400 + i, bcm43xx_ilt_noisescaleg3[i]); | 366 | bcm43xx_ilt_write(bcm, 0x1400 + i, bcm43xx_ilt_noisescaleg3[i]); |
367 | else | 367 | else |
@@ -371,7 +371,7 @@ static void bcm43xx_phy_setupg(struct bcm43xx_private *bcm) | |||
371 | if (phy->rev == 2) | 371 | if (phy->rev == 2) |
372 | for (i = 0; i < BCM43xx_ILT_SIGMASQR_SIZE; i++) | 372 | for (i = 0; i < BCM43xx_ILT_SIGMASQR_SIZE; i++) |
373 | bcm43xx_ilt_write(bcm, 0x5000 + i, bcm43xx_ilt_sigmasqr1[i]); | 373 | bcm43xx_ilt_write(bcm, 0x5000 + i, bcm43xx_ilt_sigmasqr1[i]); |
374 | else if ((phy->rev > 2) && (phy->rev <= 7)) | 374 | else if ((phy->rev > 2) && (phy->rev <= 8)) |
375 | for (i = 0; i < BCM43xx_ILT_SIGMASQR_SIZE; i++) | 375 | for (i = 0; i < BCM43xx_ILT_SIGMASQR_SIZE; i++) |
376 | bcm43xx_ilt_write(bcm, 0x5000 + i, bcm43xx_ilt_sigmasqr2[i]); | 376 | bcm43xx_ilt_write(bcm, 0x5000 + i, bcm43xx_ilt_sigmasqr2[i]); |
377 | 377 | ||
@@ -1197,7 +1197,7 @@ static void bcm43xx_phy_initg(struct bcm43xx_private *bcm) | |||
1197 | 1197 | ||
1198 | if (phy->rev == 1) | 1198 | if (phy->rev == 1) |
1199 | bcm43xx_phy_initb5(bcm); | 1199 | bcm43xx_phy_initb5(bcm); |
1200 | else if (phy->rev >= 2 && phy->rev <= 7) | 1200 | else |
1201 | bcm43xx_phy_initb6(bcm); | 1201 | bcm43xx_phy_initb6(bcm); |
1202 | if (phy->rev >= 2 || phy->connected) | 1202 | if (phy->rev >= 2 || phy->connected) |
1203 | bcm43xx_phy_inita(bcm); | 1203 | bcm43xx_phy_inita(bcm); |
@@ -1241,23 +1241,22 @@ static void bcm43xx_phy_initg(struct bcm43xx_private *bcm) | |||
1241 | bcm43xx_phy_lo_g_measure(bcm); | 1241 | bcm43xx_phy_lo_g_measure(bcm); |
1242 | } else { | 1242 | } else { |
1243 | if (radio->version == 0x2050 && radio->revision == 8) { | 1243 | if (radio->version == 0x2050 && radio->revision == 8) { |
1244 | //FIXME | 1244 | bcm43xx_radio_write16(bcm, 0x0052, |
1245 | (radio->txctl1 << 4) | radio->txctl2); | ||
1245 | } else { | 1246 | } else { |
1246 | bcm43xx_radio_write16(bcm, 0x0052, | 1247 | bcm43xx_radio_write16(bcm, 0x0052, |
1247 | (bcm43xx_radio_read16(bcm, 0x0052) | 1248 | (bcm43xx_radio_read16(bcm, 0x0052) |
1248 | & 0xFFF0) | radio->txctl1); | 1249 | & 0xFFF0) | radio->txctl1); |
1249 | } | 1250 | } |
1250 | if (phy->rev >= 6) { | 1251 | if (phy->rev >= 6) { |
1251 | /* | ||
1252 | bcm43xx_phy_write(bcm, 0x0036, | 1252 | bcm43xx_phy_write(bcm, 0x0036, |
1253 | (bcm43xx_phy_read(bcm, 0x0036) | 1253 | (bcm43xx_phy_read(bcm, 0x0036) |
1254 | & 0xF000) | (FIXME << 12)); | 1254 | & 0xF000) | (radio->txctl2 << 12)); |
1255 | */ | ||
1256 | } | 1255 | } |
1257 | if (bcm->sprom.boardflags & BCM43xx_BFL_PACTRL) | 1256 | if (bcm->sprom.boardflags & BCM43xx_BFL_PACTRL) |
1258 | bcm43xx_phy_write(bcm, 0x002E, 0x8075); | 1257 | bcm43xx_phy_write(bcm, 0x002E, 0x8075); |
1259 | else | 1258 | else |
1260 | bcm43xx_phy_write(bcm, 0x003E, 0x807F); | 1259 | bcm43xx_phy_write(bcm, 0x002E, 0x807F); |
1261 | if (phy->rev < 2) | 1260 | if (phy->rev < 2) |
1262 | bcm43xx_phy_write(bcm, 0x002F, 0x0101); | 1261 | bcm43xx_phy_write(bcm, 0x002F, 0x0101); |
1263 | else | 1262 | else |
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c index 888077fc14c4..9b7b15cf6561 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_wx.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_wx.c | |||
@@ -334,7 +334,7 @@ static int bcm43xx_wx_get_nick(struct net_device *net_dev, | |||
334 | size_t len; | 334 | size_t len; |
335 | 335 | ||
336 | mutex_lock(&bcm->mutex); | 336 | mutex_lock(&bcm->mutex); |
337 | len = strlen(bcm->nick) + 1; | 337 | len = strlen(bcm->nick); |
338 | memcpy(extra, bcm->nick, len); | 338 | memcpy(extra, bcm->nick, len); |
339 | data->data.length = (__u16)len; | 339 | data->data.length = (__u16)len; |
340 | data->data.flags = 1; | 340 | data->data.flags = 1; |
diff --git a/drivers/net/wireless/bcm43xx/bcm43xx_xmit.c b/drivers/net/wireless/bcm43xx/bcm43xx_xmit.c index c0efbfe605a5..0159e4e93201 100644 --- a/drivers/net/wireless/bcm43xx/bcm43xx_xmit.c +++ b/drivers/net/wireless/bcm43xx/bcm43xx_xmit.c | |||
@@ -496,15 +496,14 @@ int bcm43xx_rx(struct bcm43xx_private *bcm, | |||
496 | stats.signal = bcm43xx_rssi_postprocess(bcm, rxhdr->rssi, is_ofdm, | 496 | stats.signal = bcm43xx_rssi_postprocess(bcm, rxhdr->rssi, is_ofdm, |
497 | !!(rxflags1 & BCM43xx_RXHDR_FLAGS1_2053RSSIADJ), | 497 | !!(rxflags1 & BCM43xx_RXHDR_FLAGS1_2053RSSIADJ), |
498 | !!(rxflags3 & BCM43xx_RXHDR_FLAGS3_2050RSSIADJ)); | 498 | !!(rxflags3 & BCM43xx_RXHDR_FLAGS3_2050RSSIADJ)); |
499 | //TODO stats.noise = | 499 | stats.noise = bcm->stats.noise; |
500 | if (is_ofdm) | 500 | if (is_ofdm) |
501 | stats.rate = bcm43xx_plcp_get_bitrate_ofdm(plcp); | 501 | stats.rate = bcm43xx_plcp_get_bitrate_ofdm(plcp); |
502 | else | 502 | else |
503 | stats.rate = bcm43xx_plcp_get_bitrate_cck(plcp); | 503 | stats.rate = bcm43xx_plcp_get_bitrate_cck(plcp); |
504 | stats.received_channel = radio->channel; | 504 | stats.received_channel = radio->channel; |
505 | //TODO stats.control = | ||
506 | stats.mask = IEEE80211_STATMASK_SIGNAL | | 505 | stats.mask = IEEE80211_STATMASK_SIGNAL | |
507 | //TODO IEEE80211_STATMASK_NOISE | | 506 | IEEE80211_STATMASK_NOISE | |
508 | IEEE80211_STATMASK_RATE | | 507 | IEEE80211_STATMASK_RATE | |
509 | IEEE80211_STATMASK_RSSI; | 508 | IEEE80211_STATMASK_RSSI; |
510 | if (phy->type == BCM43xx_PHYTYPE_A) | 509 | if (phy->type == BCM43xx_PHYTYPE_A) |