mac80211: b43: backport b43 patches from wireless testing
This brings b43 up to wireless-testing/master master-2014-07-10 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> SVN-Revision: 41593
This commit is contained in:
		
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							@@ -22,7 +22,7 @@
 | 
				
			|||||||
 static int modparam_bad_frames_preempt;
 | 
					 static int modparam_bad_frames_preempt;
 | 
				
			||||||
 module_param_named(bad_frames_preempt, modparam_bad_frames_preempt, int, 0444);
 | 
					 module_param_named(bad_frames_preempt, modparam_bad_frames_preempt, int, 0444);
 | 
				
			||||||
 MODULE_PARM_DESC(bad_frames_preempt,
 | 
					 MODULE_PARM_DESC(bad_frames_preempt,
 | 
				
			||||||
@@ -2749,10 +2754,10 @@ static int b43_gpio_init(struct b43_wlde
 | 
					@@ -2787,10 +2792,10 @@ static int b43_gpio_init(struct b43_wlde
 | 
				
			||||||
 	u32 mask, set;
 | 
					 	u32 mask, set;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_GPOUTSMSK, 0);
 | 
					 	b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_GPOUTSMSK, 0);
 | 
				
			||||||
@@ -1,8 +1,8 @@
 | 
				
			|||||||
--- a/drivers/net/wireless/b43/Makefile
 | 
					--- a/drivers/net/wireless/b43/Makefile
 | 
				
			||||||
+++ b/drivers/net/wireless/b43/Makefile
 | 
					+++ b/drivers/net/wireless/b43/Makefile
 | 
				
			||||||
@@ -20,7 +20,7 @@ b43-y				+= xmit.o
 | 
					@@ -16,7 +16,7 @@ b43-$(CPTCFG_B43_PHY_LCN)	+= phy_lcn.o t
 | 
				
			||||||
 b43-y				+= lo.o
 | 
					 b43-y				+= sysfs.o
 | 
				
			||||||
 b43-y				+= wa.o
 | 
					 b43-y				+= xmit.o
 | 
				
			||||||
 b43-y				+= dma.o
 | 
					 b43-y				+= dma.o
 | 
				
			||||||
-b43-y				+= pio.o
 | 
					-b43-y				+= pio.o
 | 
				
			||||||
+b43-$(CPTCFG_B43_PIO)		+= pio.o
 | 
					+b43-$(CPTCFG_B43_PIO)		+= pio.o
 | 
				
			||||||
@@ -11,7 +11,7 @@
 | 
				
			|||||||
 b43-$(CPTCFG_B43_PCMCIA)	+= pcmcia.o
 | 
					 b43-$(CPTCFG_B43_PCMCIA)	+= pcmcia.o
 | 
				
			||||||
--- a/drivers/net/wireless/b43/main.c
 | 
					--- a/drivers/net/wireless/b43/main.c
 | 
				
			||||||
+++ b/drivers/net/wireless/b43/main.c
 | 
					+++ b/drivers/net/wireless/b43/main.c
 | 
				
			||||||
@@ -1909,10 +1909,12 @@ static void b43_do_interrupt_thread(stru
 | 
					@@ -1913,10 +1913,12 @@ static void b43_do_interrupt_thread(stru
 | 
				
			||||||
 			dma_reason[0], dma_reason[1],
 | 
					 			dma_reason[0], dma_reason[1],
 | 
				
			||||||
 			dma_reason[2], dma_reason[3],
 | 
					 			dma_reason[2], dma_reason[3],
 | 
				
			||||||
 			dma_reason[4], dma_reason[5]);
 | 
					 			dma_reason[4], dma_reason[5]);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
--- a/drivers/net/wireless/b43/main.c
 | 
					--- a/drivers/net/wireless/b43/main.c
 | 
				
			||||||
+++ b/drivers/net/wireless/b43/main.c
 | 
					+++ b/drivers/net/wireless/b43/main.c
 | 
				
			||||||
@@ -1556,7 +1556,7 @@ static void b43_write_beacon_template(st
 | 
					@@ -1560,7 +1560,7 @@ static void b43_write_beacon_template(st
 | 
				
			||||||
 				  len, ram_offset, shm_size_offset, rate);
 | 
					 				  len, ram_offset, shm_size_offset, rate);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	/* Write the PHY TX control parameters. */
 | 
					 	/* Write the PHY TX control parameters. */
 | 
				
			||||||
@@ -9,7 +9,7 @@
 | 
				
			|||||||
 	antenna = b43_antenna_to_phyctl(antenna);
 | 
					 	antenna = b43_antenna_to_phyctl(antenna);
 | 
				
			||||||
 	ctl = b43_shm_read16(dev, B43_SHM_SHARED, B43_SHM_SH_BEACPHYCTL);
 | 
					 	ctl = b43_shm_read16(dev, B43_SHM_SHARED, B43_SHM_SH_BEACPHYCTL);
 | 
				
			||||||
 	/* We can't send beacons with short preamble. Would get PHY errors. */
 | 
					 	/* We can't send beacons with short preamble. Would get PHY errors. */
 | 
				
			||||||
@@ -3113,8 +3113,8 @@ static int b43_chip_init(struct b43_wlde
 | 
					@@ -3151,8 +3151,8 @@ static int b43_chip_init(struct b43_wlde
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	/* Select the antennae */
 | 
					 	/* Select the antennae */
 | 
				
			||||||
 	if (phy->ops->set_rx_antenna)
 | 
					 	if (phy->ops->set_rx_antenna)
 | 
				
			||||||
@@ -20,15 +20,15 @@
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	if (phy->type == B43_PHYTYPE_B) {
 | 
					 	if (phy->type == B43_PHYTYPE_B) {
 | 
				
			||||||
 		value16 = b43_read16(dev, 0x005E);
 | 
					 		value16 = b43_read16(dev, 0x005E);
 | 
				
			||||||
@@ -3806,7 +3806,6 @@ static int b43_op_config(struct ieee8021
 | 
					@@ -3846,7 +3846,6 @@ static int b43_op_config(struct ieee8021
 | 
				
			||||||
 	struct b43_wldev *dev;
 | 
					 	struct b43_wldev *dev = wl->current_dev;
 | 
				
			||||||
 	struct b43_phy *phy;
 | 
					 	struct b43_phy *phy = &dev->phy;
 | 
				
			||||||
 	struct ieee80211_conf *conf = &hw->conf;
 | 
					 	struct ieee80211_conf *conf = &hw->conf;
 | 
				
			||||||
-	int antenna;
 | 
					-	int antenna;
 | 
				
			||||||
 	int err = 0;
 | 
					 	int err = 0;
 | 
				
			||||||
 	bool reload_bss = false;
 | 
					 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -3860,11 +3859,9 @@ static int b43_op_config(struct ieee8021
 | 
					 	mutex_lock(&wl->mutex);
 | 
				
			||||||
 | 
					@@ -3886,11 +3885,9 @@ static int b43_op_config(struct ieee8021
 | 
				
			||||||
 	}
 | 
					 	}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	/* Antennas for RX and management frame TX. */
 | 
					 	/* Antennas for RX and management frame TX. */
 | 
				
			||||||
@@ -42,7 +42,7 @@
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
 	if (wl->radio_enabled != phy->radio_on) {
 | 
					 	if (wl->radio_enabled != phy->radio_on) {
 | 
				
			||||||
 		if (wl->radio_enabled) {
 | 
					 		if (wl->radio_enabled) {
 | 
				
			||||||
@@ -4988,6 +4985,47 @@ static int b43_op_get_survey(struct ieee
 | 
					@@ -5019,6 +5016,47 @@ static int b43_op_get_survey(struct ieee
 | 
				
			||||||
 	return 0;
 | 
					 	return 0;
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -90,7 +90,7 @@
 | 
				
			|||||||
 static const struct ieee80211_ops b43_hw_ops = {
 | 
					 static const struct ieee80211_ops b43_hw_ops = {
 | 
				
			||||||
 	.tx			= b43_op_tx,
 | 
					 	.tx			= b43_op_tx,
 | 
				
			||||||
 	.conf_tx		= b43_op_conf_tx,
 | 
					 	.conf_tx		= b43_op_conf_tx,
 | 
				
			||||||
@@ -5009,6 +5047,8 @@ static const struct ieee80211_ops b43_hw
 | 
					@@ -5040,6 +5078,8 @@ static const struct ieee80211_ops b43_hw
 | 
				
			||||||
 	.sw_scan_complete	= b43_op_sw_scan_complete_notifier,
 | 
					 	.sw_scan_complete	= b43_op_sw_scan_complete_notifier,
 | 
				
			||||||
 	.get_survey		= b43_op_get_survey,
 | 
					 	.get_survey		= b43_op_get_survey,
 | 
				
			||||||
 	.rfkill_poll		= b43_rfkill_poll,
 | 
					 	.rfkill_poll		= b43_rfkill_poll,
 | 
				
			||||||
@@ -99,7 +99,7 @@
 | 
				
			|||||||
 };
 | 
					 };
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 /* Hard-reset the chip. Do not call this directly.
 | 
					 /* Hard-reset the chip. Do not call this directly.
 | 
				
			||||||
@@ -5296,6 +5336,8 @@ static int b43_one_core_attach(struct b4
 | 
					@@ -5330,6 +5370,8 @@ static int b43_one_core_attach(struct b4
 | 
				
			||||||
 	if (!wldev)
 | 
					 	if (!wldev)
 | 
				
			||||||
 		goto out;
 | 
					 		goto out;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -108,7 +108,7 @@
 | 
				
			|||||||
 	wldev->use_pio = b43_modparam_pio;
 | 
					 	wldev->use_pio = b43_modparam_pio;
 | 
				
			||||||
 	wldev->dev = dev;
 | 
					 	wldev->dev = dev;
 | 
				
			||||||
 	wldev->wl = wl;
 | 
					 	wldev->wl = wl;
 | 
				
			||||||
@@ -5386,6 +5428,9 @@ static struct b43_wl *b43_wireless_init(
 | 
					@@ -5420,6 +5462,9 @@ static struct b43_wl *b43_wireless_init(
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 	hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
 | 
					 	hw->wiphy->flags |= WIPHY_FLAG_IBSS_RSN;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -74,7 +74,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 | 
				
			|||||||
 struct b43_bus_dev *b43_bus_dev_ssb_init(struct ssb_device *sdev);
 | 
					 struct b43_bus_dev *b43_bus_dev_ssb_init(struct ssb_device *sdev);
 | 
				
			||||||
--- a/drivers/net/wireless/b43/main.c
 | 
					--- a/drivers/net/wireless/b43/main.c
 | 
				
			||||||
+++ b/drivers/net/wireless/b43/main.c
 | 
					+++ b/drivers/net/wireless/b43/main.c
 | 
				
			||||||
@@ -4380,7 +4380,7 @@ static int b43_phy_versioning(struct b43
 | 
					@@ -4411,7 +4411,7 @@ static int b43_phy_versioning(struct b43
 | 
				
			||||||
 		u16 radio24[3];
 | 
					 		u16 radio24[3];
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 		for (tmp = 0; tmp < 3; tmp++) {
 | 
					 		for (tmp = 0; tmp < 3; tmp++) {
 | 
				
			||||||
@@ -83,7 +83,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 | 
				
			|||||||
 			radio24[tmp] = b43_read16(dev, B43_MMIO_RADIO24_DATA);
 | 
					 			radio24[tmp] = b43_read16(dev, B43_MMIO_RADIO24_DATA);
 | 
				
			||||||
 		}
 | 
					 		}
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -4399,10 +4399,10 @@ static int b43_phy_versioning(struct b43
 | 
					@@ -4430,10 +4430,10 @@ static int b43_phy_versioning(struct b43
 | 
				
			||||||
 			else
 | 
					 			else
 | 
				
			||||||
 				tmp = 0x5205017F;
 | 
					 				tmp = 0x5205017F;
 | 
				
			||||||
 		} else {
 | 
					 		} else {
 | 
				
			||||||
@@ -98,7 +98,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 | 
				
			|||||||
 				<< 16;
 | 
					 				<< 16;
 | 
				
			||||||
--- a/drivers/net/wireless/b43/phy_common.c
 | 
					--- a/drivers/net/wireless/b43/phy_common.c
 | 
				
			||||||
+++ b/drivers/net/wireless/b43/phy_common.c
 | 
					+++ b/drivers/net/wireless/b43/phy_common.c
 | 
				
			||||||
@@ -267,6 +267,12 @@ void b43_phy_write(struct b43_wldev *dev
 | 
					@@ -275,6 +275,12 @@ void b43_phy_write(struct b43_wldev *dev
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 	assert_mac_suspended(dev);
 | 
					 	assert_mac_suspended(dev);
 | 
				
			||||||
 	dev->phy.ops->phy_write(dev, reg, value);
 | 
					 	dev->phy.ops->phy_write(dev, reg, value);
 | 
				
			||||||
@@ -199,7 +199,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 | 
				
			|||||||
 
 | 
					 
 | 
				
			||||||
--- a/drivers/net/wireless/b43/phy_n.c
 | 
					--- a/drivers/net/wireless/b43/phy_n.c
 | 
				
			||||||
+++ b/drivers/net/wireless/b43/phy_n.c
 | 
					+++ b/drivers/net/wireless/b43/phy_n.c
 | 
				
			||||||
@@ -5641,14 +5641,14 @@ static inline void check_phyreg(struct b
 | 
					@@ -5812,14 +5812,14 @@ static inline void check_phyreg(struct b
 | 
				
			||||||
 static u16 b43_nphy_op_read(struct b43_wldev *dev, u16 reg)
 | 
					 static u16 b43_nphy_op_read(struct b43_wldev *dev, u16 reg)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 	check_phyreg(dev, reg);
 | 
					 	check_phyreg(dev, reg);
 | 
				
			||||||
@@ -216,7 +216,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 | 
				
			|||||||
 	b43_write16(dev, B43_MMIO_PHY_DATA, value);
 | 
					 	b43_write16(dev, B43_MMIO_PHY_DATA, value);
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -5656,7 +5656,7 @@ static void b43_nphy_op_maskset(struct b
 | 
					@@ -5827,7 +5827,7 @@ static void b43_nphy_op_maskset(struct b
 | 
				
			||||||
 				 u16 set)
 | 
					 				 u16 set)
 | 
				
			||||||
 {
 | 
					 {
 | 
				
			||||||
 	check_phyreg(dev, reg);
 | 
					 	check_phyreg(dev, reg);
 | 
				
			||||||
@@ -225,7 +225,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 | 
				
			|||||||
 	b43_maskset16(dev, B43_MMIO_PHY_DATA, mask, set);
 | 
					 	b43_maskset16(dev, B43_MMIO_PHY_DATA, mask, set);
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -5670,7 +5670,7 @@ static u16 b43_nphy_op_radio_read(struct
 | 
					@@ -5841,7 +5841,7 @@ static u16 b43_nphy_op_radio_read(struct
 | 
				
			||||||
 	else
 | 
					 	else
 | 
				
			||||||
 		reg |= 0x100;
 | 
					 		reg |= 0x100;
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -234,7 +234,7 @@ Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
 | 
				
			|||||||
 	return b43_read16(dev, B43_MMIO_RADIO_DATA_LOW);
 | 
					 	return b43_read16(dev, B43_MMIO_RADIO_DATA_LOW);
 | 
				
			||||||
 }
 | 
					 }
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
@@ -5679,7 +5679,7 @@ static void b43_nphy_op_radio_write(stru
 | 
					@@ -5850,7 +5850,7 @@ static void b43_nphy_op_radio_write(stru
 | 
				
			||||||
 	/* Register 1 is a 32-bit register. */
 | 
					 	/* Register 1 is a 32-bit register. */
 | 
				
			||||||
 	B43_WARN_ON(reg == 1);
 | 
					 	B43_WARN_ON(reg == 1);
 | 
				
			||||||
 
 | 
					 
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,6 +1,6 @@
 | 
				
			|||||||
--- a/drivers/net/wireless/b43/main.c
 | 
					--- a/drivers/net/wireless/b43/main.c
 | 
				
			||||||
+++ b/drivers/net/wireless/b43/main.c
 | 
					+++ b/drivers/net/wireless/b43/main.c
 | 
				
			||||||
@@ -2766,6 +2766,14 @@ static int b43_gpio_init(struct b43_wlde
 | 
					@@ -2804,6 +2804,14 @@ static int b43_gpio_init(struct b43_wlde
 | 
				
			||||||
 	} else if (dev->dev->chip_id == 0x5354) {
 | 
					 	} else if (dev->dev->chip_id == 0x5354) {
 | 
				
			||||||
 		/* Don't allow overtaking buttons GPIOs */
 | 
					 		/* Don't allow overtaking buttons GPIOs */
 | 
				
			||||||
 		set &= 0x2; /* 0x2 is LED GPIO on BCM5354 */
 | 
					 		set &= 0x2; /* 0x2 is LED GPIO on BCM5354 */
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user