From e6b6adc799afe7d6d847c683968b1eee7d82d85a Mon Sep 17 00:00:00 2001 From: mb Date: Tue, 19 Feb 2008 01:24:18 +0000 Subject: ssb: Update to latest upstream version of ssb. git-svn-id: svn://svn.openwrt.org/openwrt/trunk@10490 3c298f89-4303-0410-b956-a3cf2f4a3e73 --- package/b43/patches/001-porting.patch | 366 ---------------------------------- 1 file changed, 366 deletions(-) (limited to 'package/b43/patches') diff --git a/package/b43/patches/001-porting.patch b/package/b43/patches/001-porting.patch index 56f4d6d6f0..bee94a6624 100644 --- a/package/b43/patches/001-porting.patch +++ b/package/b43/patches/001-porting.patch @@ -2,39 +2,6 @@ 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; @@ -57,336 +24,3 @@ Index: b43/main.c } 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; -- cgit v1.2.3