|
|
@@ -0,0 +1,392 @@
|
|
|
+Index: b43/main.c
|
|
|
+===================================================================
|
|
|
+--- b43.orig/main.c 2008-02-15 22:39:48.000000000 +0100
|
|
|
++++ b43/main.c 2008-02-15 22:45:38.000000000 +0100
|
|
|
+@@ -2017,7 +2017,7 @@ static int b43_gpio_init(struct b43_wlde
|
|
|
+ mask |= 0x0180;
|
|
|
+ set |= 0x0180;
|
|
|
+ }
|
|
|
+- if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_PACTRL) {
|
|
|
++ if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_PACTRL) {
|
|
|
+ b43_write16(dev, B43_MMIO_GPIO_MASK,
|
|
|
+ b43_read16(dev, B43_MMIO_GPIO_MASK)
|
|
|
+ | 0x0200);
|
|
|
+@@ -2384,7 +2384,7 @@ static void b43_periodic_every60sec(stru
|
|
|
+ return;
|
|
|
+ if (!b43_has_hardware_pctl(phy))
|
|
|
+ b43_lo_g_ctl_mark_all_unused(dev);
|
|
|
+- if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_RSSI) {
|
|
|
++ if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_RSSI) {
|
|
|
+ b43_mac_suspend(dev);
|
|
|
+ b43_calc_nrssi_slope(dev);
|
|
|
+ if ((phy->radio_ver == 0x2050) && (phy->radio_rev == 8)) {
|
|
|
+@@ -2794,11 +2794,14 @@ u8 b43_ieee80211_antenna_sanitize(struct
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
+
|
|
|
++#if 0
|
|
|
+ /* Get the mask of available antennas. */
|
|
|
+ if (dev->phy.gmode)
|
|
|
+ antenna_mask = dev->dev->bus->sprom.ant_available_bg;
|
|
|
+ else
|
|
|
+ antenna_mask = dev->dev->bus->sprom.ant_available_a;
|
|
|
++#endif
|
|
|
++ antenna_mask = 0xFF; //FIXME need ssb update
|
|
|
+
|
|
|
+ if (!(antenna_mask & (1 << (antenna_nr - 1)))) {
|
|
|
+ /* This antenna is not available. Fall back to default. */
|
|
|
+@@ -2939,7 +2942,7 @@ static int b43_op_set_key(struct ieee802
|
|
|
+ u8 algorithm;
|
|
|
+ u8 index;
|
|
|
+ int err;
|
|
|
+- DECLARE_MAC_BUF(mac);
|
|
|
++// DECLARE_MAC_BUF(mac);
|
|
|
+
|
|
|
+ if (modparam_nohwcrypt)
|
|
|
+ return -ENOSPC; /* User disabled HW-crypto */
|
|
|
+@@ -3019,10 +3022,12 @@ out_unlock:
|
|
|
+ spin_unlock_irqrestore(&wl->irq_lock, flags);
|
|
|
+ mutex_unlock(&wl->mutex);
|
|
|
+ if (!err) {
|
|
|
++#if 0
|
|
|
+ b43dbg(wl, "%s hardware based encryption for keyidx: %d, "
|
|
|
+ "mac: %s\n",
|
|
|
+ cmd == SET_KEY ? "Using" : "Disabling", key->keyidx,
|
|
|
+ print_mac(mac, addr));
|
|
|
++#endif
|
|
|
+ }
|
|
|
+ return err;
|
|
|
+ }
|
|
|
+@@ -3349,13 +3354,13 @@ static void b43_bluetooth_coext_enable(s
|
|
|
+ struct ssb_sprom *sprom = &dev->dev->bus->sprom;
|
|
|
+ u32 hf;
|
|
|
+
|
|
|
+- if (!(sprom->boardflags_lo & B43_BFL_BTCOEXIST))
|
|
|
++ if (!(sprom->r1.boardflags_lo & B43_BFL_BTCOEXIST))
|
|
|
+ return;
|
|
|
+ if (dev->phy.type != B43_PHYTYPE_B && !dev->phy.gmode)
|
|
|
+ return;
|
|
|
+
|
|
|
+ hf = b43_hf_read(dev);
|
|
|
+- if (sprom->boardflags_lo & B43_BFL_BTCMOD)
|
|
|
++ if (sprom->r1.boardflags_lo & B43_BFL_BTCMOD)
|
|
|
+ hf |= B43_HF_BTCOEXALT;
|
|
|
+ else
|
|
|
+ hf |= B43_HF_BTCOEX;
|
|
|
+@@ -3497,7 +3502,7 @@ static int b43_wireless_core_init(struct
|
|
|
+ hf |= B43_HF_SYMW;
|
|
|
+ if (phy->rev == 1)
|
|
|
+ hf |= B43_HF_GDCW;
|
|
|
+- if (sprom->boardflags_lo & B43_BFL_PACTRL)
|
|
|
++ if (sprom->r1.boardflags_lo & B43_BFL_PACTRL)
|
|
|
+ hf |= B43_HF_OFDMPABOOST;
|
|
|
+ } else if (phy->type == B43_PHYTYPE_B) {
|
|
|
+ hf |= B43_HF_SYMW;
|
|
|
+@@ -4001,10 +4006,10 @@ static void b43_sprom_fixup(struct ssb_b
|
|
|
+ /* boardflags workarounds */
|
|
|
+ if (bus->boardinfo.vendor == SSB_BOARDVENDOR_DELL &&
|
|
|
+ bus->chip_id == 0x4301 && bus->boardinfo.rev == 0x74)
|
|
|
+- bus->sprom.boardflags_lo |= B43_BFL_BTCOEXIST;
|
|
|
++ bus->sprom.r1.boardflags_lo |= B43_BFL_BTCOEXIST;
|
|
|
+ if (bus->boardinfo.vendor == PCI_VENDOR_ID_APPLE &&
|
|
|
+ bus->boardinfo.type == 0x4E && bus->boardinfo.rev > 0x40)
|
|
|
+- bus->sprom.boardflags_lo |= B43_BFL_PACTRL;
|
|
|
++ bus->sprom.r1.boardflags_lo |= B43_BFL_PACTRL;
|
|
|
+ }
|
|
|
+
|
|
|
+ static void b43_wireless_exit(struct ssb_device *dev, struct b43_wl *wl)
|
|
|
+@@ -4038,10 +4043,10 @@ static int b43_wireless_init(struct ssb_
|
|
|
+ hw->max_noise = -110;
|
|
|
+ hw->queues = 1; /* FIXME: hardware has more queues */
|
|
|
+ SET_IEEE80211_DEV(hw, dev->dev);
|
|
|
+- if (is_valid_ether_addr(sprom->et1mac))
|
|
|
+- SET_IEEE80211_PERM_ADDR(hw, sprom->et1mac);
|
|
|
++ if (is_valid_ether_addr(sprom->r1.et1mac))
|
|
|
++ SET_IEEE80211_PERM_ADDR(hw, sprom->r1.et1mac);
|
|
|
+ else
|
|
|
+- SET_IEEE80211_PERM_ADDR(hw, sprom->il0mac);
|
|
|
++ SET_IEEE80211_PERM_ADDR(hw, sprom->r1.il0mac);
|
|
|
+
|
|
|
+ /* Get and initialize struct b43_wl */
|
|
|
+ wl = hw_to_b43_wl(hw);
|
|
|
+Index: b43/leds.c
|
|
|
+===================================================================
|
|
|
+--- b43.orig/leds.c 2008-02-06 00:55:14.000000000 +0100
|
|
|
++++ b43/leds.c 2008-02-15 22:51:32.000000000 +0100
|
|
|
+@@ -190,10 +190,10 @@ void b43_leds_init(struct b43_wldev *dev
|
|
|
+ enum b43_led_behaviour behaviour;
|
|
|
+ bool activelow;
|
|
|
+
|
|
|
+- sprom[0] = bus->sprom.gpio0;
|
|
|
+- sprom[1] = bus->sprom.gpio1;
|
|
|
+- sprom[2] = bus->sprom.gpio2;
|
|
|
+- sprom[3] = bus->sprom.gpio3;
|
|
|
++ sprom[0] = bus->sprom.r1.gpio0;
|
|
|
++ sprom[1] = bus->sprom.r1.gpio1;
|
|
|
++ sprom[2] = bus->sprom.r1.gpio2;
|
|
|
++ sprom[3] = bus->sprom.r1.gpio3;
|
|
|
+
|
|
|
+ for (i = 0; i < 4; i++) {
|
|
|
+ if (sprom[i] == 0xFF) {
|
|
|
+Index: b43/lo.c
|
|
|
+===================================================================
|
|
|
+--- b43.orig/lo.c 2008-02-06 00:55:14.000000000 +0100
|
|
|
++++ b43/lo.c 2008-02-15 22:50:17.000000000 +0100
|
|
|
+@@ -264,7 +264,7 @@ static u16 lo_measure_feedthrough(struct
|
|
|
+ rfover |= pga;
|
|
|
+ rfover |= lna;
|
|
|
+ rfover |= trsw_rx;
|
|
|
+- if ((dev->dev->bus->sprom.boardflags_lo & B43_BFL_EXTLNA)
|
|
|
++ if ((dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_EXTLNA)
|
|
|
+ && phy->rev > 6)
|
|
|
+ rfover |= B43_PHY_RFOVERVAL_EXTLNA;
|
|
|
+
|
|
|
+@@ -634,7 +634,7 @@ static void lo_measure_setup(struct b43_
|
|
|
+ & 0xFFFC);
|
|
|
+ if (phy->type == B43_PHYTYPE_G) {
|
|
|
+ if ((phy->rev >= 7) &&
|
|
|
+- (sprom->boardflags_lo & B43_BFL_EXTLNA)) {
|
|
|
++ (sprom->r1.boardflags_lo & B43_BFL_EXTLNA)) {
|
|
|
+ b43_phy_write(dev, B43_PHY_RFOVER, 0x933);
|
|
|
+ } else {
|
|
|
+ b43_phy_write(dev, B43_PHY_RFOVER, 0x133);
|
|
|
+Index: b43/nphy.c
|
|
|
+===================================================================
|
|
|
+--- b43.orig/nphy.c 2008-02-06 00:55:14.000000000 +0100
|
|
|
++++ b43/nphy.c 2008-02-15 22:48:51.000000000 +0100
|
|
|
+@@ -134,6 +134,8 @@ static void b43_radio_init2055_post(stru
|
|
|
+
|
|
|
+ b43_radio_mask(dev, B2055_MASTER1, 0xFFF3);
|
|
|
+ msleep(1);
|
|
|
++//FIXME ssb update needed
|
|
|
++#if 0
|
|
|
+ if ((sprom->revision != 4) || !(sprom->boardflags_hi & 0x0002)) {
|
|
|
+ if ((binfo->vendor != PCI_VENDOR_ID_BROADCOM) ||
|
|
|
+ (binfo->type != 0x46D) ||
|
|
|
+@@ -143,6 +145,7 @@ static void b43_radio_init2055_post(stru
|
|
|
+ msleep(1);
|
|
|
+ }
|
|
|
+ }
|
|
|
++#endif
|
|
|
+ b43_radio_maskset(dev, B2055_RRCCAL_NOPTSEL, 0x3F, 0x2C);
|
|
|
+ msleep(1);
|
|
|
+ b43_radio_write16(dev, B2055_CAL_MISC, 0x3C);
|
|
|
+Index: b43/phy.c
|
|
|
+===================================================================
|
|
|
+--- b43.orig/phy.c 2008-02-06 00:55:14.000000000 +0100
|
|
|
++++ b43/phy.c 2008-02-15 22:47:55.000000000 +0100
|
|
|
+@@ -924,7 +924,7 @@ static void b43_phy_inita(struct b43_wld
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((phy->type == B43_PHYTYPE_G) &&
|
|
|
+- (dev->dev->bus->sprom.boardflags_lo & B43_BFL_PACTRL)) {
|
|
|
++ (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_PACTRL)) {
|
|
|
+ b43_phy_write(dev, B43_PHY_OFDM(0x6E),
|
|
|
+ (b43_phy_read(dev, B43_PHY_OFDM(0x6E))
|
|
|
+ & 0xE000) | 0x3CF);
|
|
|
+@@ -1027,7 +1027,7 @@ static void b43_phy_initb4(struct b43_wl
|
|
|
+ if (phy->radio_ver == 0x2050)
|
|
|
+ b43_phy_write(dev, 0x002A, 0x88C2);
|
|
|
+ b43_set_txpower_g(dev, &phy->bbatt, &phy->rfatt, phy->tx_control);
|
|
|
+- if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_RSSI) {
|
|
|
++ if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_RSSI) {
|
|
|
+ b43_calc_nrssi_slope(dev);
|
|
|
+ b43_calc_nrssi_threshold(dev);
|
|
|
+ }
|
|
|
+@@ -1174,7 +1174,7 @@ static void b43_phy_initb6(struct b43_wl
|
|
|
+ b43_radio_write16(dev, 0x5A, 0x88);
|
|
|
+ b43_radio_write16(dev, 0x5B, 0x6B);
|
|
|
+ b43_radio_write16(dev, 0x5C, 0x0F);
|
|
|
+- if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_ALTIQ) {
|
|
|
++ if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_ALTIQ) {
|
|
|
+ b43_radio_write16(dev, 0x5D, 0xFA);
|
|
|
+ b43_radio_write16(dev, 0x5E, 0xD8);
|
|
|
+ } else {
|
|
|
+@@ -1266,7 +1266,7 @@ static void b43_phy_initb6(struct b43_wl
|
|
|
+ b43_phy_write(dev, 0x0062, 0x0007);
|
|
|
+ b43_radio_init2050(dev);
|
|
|
+ b43_lo_g_measure(dev);
|
|
|
+- if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_RSSI) {
|
|
|
++ if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_RSSI) {
|
|
|
+ b43_calc_nrssi_slope(dev);
|
|
|
+ b43_calc_nrssi_threshold(dev);
|
|
|
+ }
|
|
|
+@@ -1386,7 +1386,7 @@ static void b43_calc_loopback_gain(struc
|
|
|
+ b43_phy_write(dev, B43_PHY_RFOVERVAL,
|
|
|
+ b43_phy_read(dev, B43_PHY_RFOVERVAL) & 0xCFFF);
|
|
|
+
|
|
|
+- if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_EXTLNA) {
|
|
|
++ if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_EXTLNA) {
|
|
|
+ if (phy->rev >= 7) {
|
|
|
+ b43_phy_write(dev, B43_PHY_RFOVER,
|
|
|
+ b43_phy_read(dev, B43_PHY_RFOVER)
|
|
|
+@@ -1553,7 +1553,7 @@ static void b43_phy_initg(struct b43_wld
|
|
|
+ & 0x0FFF) | (phy->lo_control->
|
|
|
+ tx_bias << 12));
|
|
|
+ }
|
|
|
+- if (dev->dev->bus->sprom.boardflags_lo & B43_BFL_PACTRL)
|
|
|
++ if (dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_PACTRL)
|
|
|
+ b43_phy_write(dev, B43_PHY_CCK(0x2E), 0x8075);
|
|
|
+ else
|
|
|
+ b43_phy_write(dev, B43_PHY_CCK(0x2E), 0x807F);
|
|
|
+@@ -1567,7 +1567,7 @@ static void b43_phy_initg(struct b43_wld
|
|
|
+ b43_phy_write(dev, B43_PHY_LO_MASK, 0x8078);
|
|
|
+ }
|
|
|
+
|
|
|
+- if (!(dev->dev->bus->sprom.boardflags_lo & B43_BFL_RSSI)) {
|
|
|
++ if (!(dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_RSSI)) {
|
|
|
+ /* The specs state to update the NRSSI LT with
|
|
|
+ * the value 0x7FFFFFFF here. I think that is some weird
|
|
|
+ * compiler optimization in the original driver.
|
|
|
+@@ -1776,15 +1776,15 @@ void b43_phy_xmitpower(struct b43_wldev
|
|
|
+ estimated_pwr =
|
|
|
+ b43_phy_estimate_power_out(dev, average);
|
|
|
+
|
|
|
+- max_pwr = dev->dev->bus->sprom.maxpwr_bg;
|
|
|
+- if ((dev->dev->bus->sprom.boardflags_lo
|
|
|
++ max_pwr = dev->dev->bus->sprom.r1.maxpwr_bg;
|
|
|
++ if ((dev->dev->bus->sprom.r1.boardflags_lo
|
|
|
+ & B43_BFL_PACTRL) && (phy->type == B43_PHYTYPE_G))
|
|
|
+ max_pwr -= 0x3;
|
|
|
+ if (unlikely(max_pwr <= 0)) {
|
|
|
+ b43warn(dev->wl,
|
|
|
+ "Invalid max-TX-power value in SPROM.\n");
|
|
|
+ max_pwr = 60; /* fake it */
|
|
|
+- dev->dev->bus->sprom.maxpwr_bg = max_pwr;
|
|
|
++ dev->dev->bus->sprom.r1.maxpwr_bg = max_pwr;
|
|
|
+ }
|
|
|
+
|
|
|
+ /*TODO:
|
|
|
+@@ -1842,7 +1842,7 @@ void b43_phy_xmitpower(struct b43_wldev
|
|
|
+ B43_TXCTL_TXMIX;
|
|
|
+ rfatt += 2;
|
|
|
+ bbatt += 2;
|
|
|
+- } else if (dev->dev->bus->sprom.
|
|
|
++ } else if (dev->dev->bus->sprom.r1.
|
|
|
+ boardflags_lo &
|
|
|
+ B43_BFL_PACTRL) {
|
|
|
+ bbatt += 4 * (rfatt - 2);
|
|
|
+@@ -1921,13 +1921,13 @@ int b43_phy_init_tssi2dbm_table(struct b
|
|
|
+ s8 *dyn_tssi2dbm;
|
|
|
+
|
|
|
+ if (phy->type == B43_PHYTYPE_A) {
|
|
|
+- pab0 = (s16) (dev->dev->bus->sprom.pa1b0);
|
|
|
+- pab1 = (s16) (dev->dev->bus->sprom.pa1b1);
|
|
|
+- pab2 = (s16) (dev->dev->bus->sprom.pa1b2);
|
|
|
++ pab0 = (s16) (dev->dev->bus->sprom.r1.pa1b0);
|
|
|
++ pab1 = (s16) (dev->dev->bus->sprom.r1.pa1b1);
|
|
|
++ pab2 = (s16) (dev->dev->bus->sprom.r1.pa1b2);
|
|
|
+ } else {
|
|
|
+- pab0 = (s16) (dev->dev->bus->sprom.pa0b0);
|
|
|
+- pab1 = (s16) (dev->dev->bus->sprom.pa0b1);
|
|
|
+- pab2 = (s16) (dev->dev->bus->sprom.pa0b2);
|
|
|
++ pab0 = (s16) (dev->dev->bus->sprom.r1.pa0b0);
|
|
|
++ pab1 = (s16) (dev->dev->bus->sprom.r1.pa0b1);
|
|
|
++ pab2 = (s16) (dev->dev->bus->sprom.r1.pa0b2);
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((dev->dev->bus->chip_id == 0x4301) && (phy->radio_ver != 0x2050)) {
|
|
|
+@@ -1940,17 +1940,17 @@ int b43_phy_init_tssi2dbm_table(struct b
|
|
|
+ pab0 != -1 && pab1 != -1 && pab2 != -1) {
|
|
|
+ /* The pabX values are set in SPROM. Use them. */
|
|
|
+ if (phy->type == B43_PHYTYPE_A) {
|
|
|
+- if ((s8) dev->dev->bus->sprom.itssi_a != 0 &&
|
|
|
+- (s8) dev->dev->bus->sprom.itssi_a != -1)
|
|
|
++ if ((s8) dev->dev->bus->sprom.r1.itssi_a != 0 &&
|
|
|
++ (s8) dev->dev->bus->sprom.r1.itssi_a != -1)
|
|
|
+ phy->tgt_idle_tssi =
|
|
|
+- (s8) (dev->dev->bus->sprom.itssi_a);
|
|
|
++ (s8) (dev->dev->bus->sprom.r1.itssi_a);
|
|
|
+ else
|
|
|
+ phy->tgt_idle_tssi = 62;
|
|
|
+ } else {
|
|
|
+- if ((s8) dev->dev->bus->sprom.itssi_bg != 0 &&
|
|
|
+- (s8) dev->dev->bus->sprom.itssi_bg != -1)
|
|
|
++ if ((s8) dev->dev->bus->sprom.r1.itssi_bg != 0 &&
|
|
|
++ (s8) dev->dev->bus->sprom.r1.itssi_bg != -1)
|
|
|
+ phy->tgt_idle_tssi =
|
|
|
+- (s8) (dev->dev->bus->sprom.itssi_bg);
|
|
|
++ (s8) (dev->dev->bus->sprom.r1.itssi_bg);
|
|
|
+ else
|
|
|
+ phy->tgt_idle_tssi = 62;
|
|
|
+ }
|
|
|
+@@ -2894,7 +2894,7 @@ void b43_calc_nrssi_threshold(struct b43
|
|
|
+ if (phy->radio_ver != 0x2050)
|
|
|
+ return;
|
|
|
+ if (!
|
|
|
+- (dev->dev->bus->sprom.
|
|
|
++ (dev->dev->bus->sprom.r1.
|
|
|
+ boardflags_lo & B43_BFL_RSSI))
|
|
|
+ return;
|
|
|
+
|
|
|
+@@ -2925,7 +2925,7 @@ void b43_calc_nrssi_threshold(struct b43
|
|
|
+ }
|
|
|
+ case B43_PHYTYPE_G:
|
|
|
+ if (!phy->gmode ||
|
|
|
+- !(dev->dev->bus->sprom.boardflags_lo & B43_BFL_RSSI)) {
|
|
|
++ !(dev->dev->bus->sprom.r1.boardflags_lo & B43_BFL_RSSI)) {
|
|
|
+ tmp16 = b43_nrssi_hw_read(dev, 0x20);
|
|
|
+ if (tmp16 >= 0x20)
|
|
|
+ tmp16 -= 0x40;
|
|
|
+@@ -3447,7 +3447,7 @@ static u16 radio2050_rfover_val(struct b
|
|
|
+ }
|
|
|
+
|
|
|
+ if ((phy->rev < 7) ||
|
|
|
+- !(sprom->boardflags_lo & B43_BFL_EXTLNA)) {
|
|
|
++ !(sprom->r1.boardflags_lo & B43_BFL_EXTLNA)) {
|
|
|
+ if (phy_register == B43_PHY_RFOVER) {
|
|
|
+ return 0x1B3;
|
|
|
+ } else if (phy_register == B43_PHY_RFOVERVAL) {
|
|
|
+@@ -3487,7 +3487,7 @@ static u16 radio2050_rfover_val(struct b
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ if ((phy->rev < 7) ||
|
|
|
+- !(sprom->boardflags_lo & B43_BFL_EXTLNA)) {
|
|
|
++ !(sprom->r1.boardflags_lo & B43_BFL_EXTLNA)) {
|
|
|
+ if (phy_register == B43_PHY_RFOVER) {
|
|
|
+ return 0x1B3;
|
|
|
+ } else if (phy_register == B43_PHY_RFOVERVAL) {
|
|
|
+@@ -3979,7 +3979,7 @@ int b43_radio_selectchannel(struct b43_w
|
|
|
+ b43_write16(dev, B43_MMIO_CHANNEL, channel2freq_bg(channel));
|
|
|
+
|
|
|
+ if (channel == 14) {
|
|
|
+- if (dev->dev->bus->sprom.country_code ==
|
|
|
++ if (dev->dev->bus->sprom.r1.country_code ==
|
|
|
+ SSB_SPROM1CCODE_JAPAN)
|
|
|
+ b43_hf_write(dev,
|
|
|
+ b43_hf_read(dev) & ~B43_HF_ACPR);
|
|
|
+Index: b43/wa.c
|
|
|
+===================================================================
|
|
|
+--- b43.orig/wa.c 2008-02-06 00:55:14.000000000 +0100
|
|
|
++++ b43/wa.c 2008-02-15 22:50:54.000000000 +0100
|
|
|
+@@ -535,7 +535,7 @@ static void b43_wa_boards_g(struct b43_w
|
|
|
+ } else {
|
|
|
+ b43_ofdmtab_write16(dev, B43_OFDMTAB_GAINX, 1, 0x0002);
|
|
|
+ b43_ofdmtab_write16(dev, B43_OFDMTAB_GAINX, 2, 0x0001);
|
|
|
+- if ((bus->sprom.boardflags_lo & B43_BFL_EXTLNA) &&
|
|
|
++ if ((bus->sprom.r1.boardflags_lo & B43_BFL_EXTLNA) &&
|
|
|
+ (phy->rev >= 7)) {
|
|
|
+ b43_phy_write(dev, B43_PHY_EXTG(0x11),
|
|
|
+ b43_phy_read(dev, B43_PHY_EXTG(0x11)) & 0xF7FF);
|
|
|
+@@ -548,7 +548,7 @@ static void b43_wa_boards_g(struct b43_w
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+- if (bus->sprom.boardflags_lo & B43_BFL_FEM) {
|
|
|
++ if (bus->sprom.r1.boardflags_lo & B43_BFL_FEM) {
|
|
|
+ b43_phy_write(dev, B43_PHY_GTABCTL, 0x3120);
|
|
|
+ b43_phy_write(dev, B43_PHY_GTABDATA, 0xC480);
|
|
|
+ }
|
|
|
+Index: b43/xmit.c
|
|
|
+===================================================================
|
|
|
+--- b43.orig/xmit.c 2008-02-06 00:55:14.000000000 +0100
|
|
|
++++ b43/xmit.c 2008-02-15 22:49:37.000000000 +0100
|
|
|
+@@ -444,7 +444,7 @@ static s8 b43_rssi_postprocess(struct b4
|
|
|
+ else
|
|
|
+ tmp -= 3;
|
|
|
+ } else {
|
|
|
+- if (dev->dev->bus->sprom.
|
|
|
++ if (dev->dev->bus->sprom.r1.
|
|
|
+ boardflags_lo & B43_BFL_RSSI) {
|
|
|
+ if (in_rssi > 63)
|
|
|
+ in_rssi = 63;
|