Lines Matching refs:dev

3310 u32 b43_ntab_read(struct b43_wldev *dev, u32 offset)  in b43_ntab_read()  argument
3320 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_read()
3321 value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF; in b43_ntab_read()
3324 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_read()
3325 value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO); in b43_ntab_read()
3328 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_read()
3329 value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO); in b43_ntab_read()
3330 value |= b43_phy_read(dev, B43_NPHY_TABLE_DATAHI) << 16; in b43_ntab_read()
3340 void b43_ntab_read_bulk(struct b43_wldev *dev, u32 offset, in b43_ntab_read_bulk() argument
3351 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_read_bulk()
3355 if (dev->dev->chip_id == 43224 && dev->dev->chip_rev == 1) { in b43_ntab_read_bulk()
3356 b43_phy_read(dev, B43_NPHY_TABLE_DATALO); in b43_ntab_read_bulk()
3357 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset + i); in b43_ntab_read_bulk()
3362 *data = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF; in b43_ntab_read_bulk()
3366 *((u16 *)data) = b43_phy_read(dev, B43_NPHY_TABLE_DATALO); in b43_ntab_read_bulk()
3371 b43_phy_read(dev, B43_NPHY_TABLE_DATALO); in b43_ntab_read_bulk()
3373 b43_phy_read(dev, B43_NPHY_TABLE_DATAHI) << 16; in b43_ntab_read_bulk()
3382 void b43_ntab_write(struct b43_wldev *dev, u32 offset, u32 value) in b43_ntab_write() argument
3392 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_write()
3393 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value); in b43_ntab_write()
3397 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_write()
3398 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value); in b43_ntab_write()
3401 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_write()
3402 b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16); in b43_ntab_write()
3403 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value & 0xFFFF); in b43_ntab_write()
3415 void b43_ntab_write_bulk(struct b43_wldev *dev, u32 offset, in b43_ntab_write_bulk() argument
3426 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_write_bulk()
3430 if ((offset >> 10) == 9 && dev->dev->chip_id == 43224 && in b43_ntab_write_bulk()
3431 dev->dev->chip_rev == 1) { in b43_ntab_write_bulk()
3432 b43_phy_read(dev, B43_NPHY_TABLE_DATALO); in b43_ntab_write_bulk()
3433 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset + i); in b43_ntab_write_bulk()
3441 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value); in b43_ntab_write_bulk()
3447 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value); in b43_ntab_write_bulk()
3452 b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16); in b43_ntab_write_bulk()
3453 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, in b43_ntab_write_bulk()
3462 #define ntab_upload(dev, offset, data) do { \ argument
3463 b43_ntab_write_bulk(dev, offset, ARRAY_SIZE(data), data); \
3466 static void b43_nphy_tables_init_shared_lut(struct b43_wldev *dev) in b43_nphy_tables_init_shared_lut() argument
3468 ntab_upload(dev, B43_NTAB_C0_ESTPLT_R3, b43_ntab_estimatepowerlt0_r3); in b43_nphy_tables_init_shared_lut()
3469 ntab_upload(dev, B43_NTAB_C1_ESTPLT_R3, b43_ntab_estimatepowerlt1_r3); in b43_nphy_tables_init_shared_lut()
3470 ntab_upload(dev, B43_NTAB_C0_ADJPLT_R3, b43_ntab_adjustpower0_r3); in b43_nphy_tables_init_shared_lut()
3471 ntab_upload(dev, B43_NTAB_C1_ADJPLT_R3, b43_ntab_adjustpower1_r3); in b43_nphy_tables_init_shared_lut()
3472 ntab_upload(dev, B43_NTAB_C0_GAINCTL_R3, b43_ntab_gainctl0_r3); in b43_nphy_tables_init_shared_lut()
3473 ntab_upload(dev, B43_NTAB_C1_GAINCTL_R3, b43_ntab_gainctl1_r3); in b43_nphy_tables_init_shared_lut()
3474 ntab_upload(dev, B43_NTAB_C0_IQLT_R3, b43_ntab_iqlt0_r3); in b43_nphy_tables_init_shared_lut()
3475 ntab_upload(dev, B43_NTAB_C1_IQLT_R3, b43_ntab_iqlt1_r3); in b43_nphy_tables_init_shared_lut()
3476 ntab_upload(dev, B43_NTAB_C0_LOFEEDTH_R3, b43_ntab_loftlt0_r3); in b43_nphy_tables_init_shared_lut()
3477 ntab_upload(dev, B43_NTAB_C1_LOFEEDTH_R3, b43_ntab_loftlt1_r3); in b43_nphy_tables_init_shared_lut()
3480 static void b43_nphy_tables_init_rev7_volatile(struct b43_wldev *dev) in b43_nphy_tables_init_rev7_volatile() argument
3482 struct ssb_sprom *sprom = dev->dev->bus_sprom; in b43_nphy_tables_init_rev7_volatile()
3492 if (b43_current_band(dev->wl) == NL80211_BAND_5GHZ) in b43_nphy_tables_init_rev7_volatile()
3503 b43_ntab_write(dev, B43_NTAB8(9, offset), in b43_nphy_tables_init_rev7_volatile()
3509 b43err(dev->wl, "Unsupported antswlut: %d\n", antswlut); in b43_nphy_tables_init_rev7_volatile()
3514 static void b43_nphy_tables_init_rev16(struct b43_wldev *dev) in b43_nphy_tables_init_rev16() argument
3517 if (dev->phy.do_full_init) { in b43_nphy_tables_init_rev16()
3518 ntab_upload(dev, B43_NTAB_NOISEVAR_R7, b43_ntab_noisevar_r7); in b43_nphy_tables_init_rev16()
3519 b43_nphy_tables_init_shared_lut(dev); in b43_nphy_tables_init_rev16()
3523 b43_nphy_tables_init_rev7_volatile(dev); in b43_nphy_tables_init_rev16()
3526 static void b43_nphy_tables_init_rev7(struct b43_wldev *dev) in b43_nphy_tables_init_rev7() argument
3529 if (dev->phy.do_full_init) { in b43_nphy_tables_init_rev7()
3530 ntab_upload(dev, B43_NTAB_FRAMESTRUCT_R3, b43_ntab_framestruct_r3); in b43_nphy_tables_init_rev7()
3531 ntab_upload(dev, B43_NTAB_PILOT_R3, b43_ntab_pilot_r3); in b43_nphy_tables_init_rev7()
3532 ntab_upload(dev, B43_NTAB_TMAP_R7, b43_ntab_tmap_r7); in b43_nphy_tables_init_rev7()
3533 ntab_upload(dev, B43_NTAB_INTLEVEL_R3, b43_ntab_intlevel_r3); in b43_nphy_tables_init_rev7()
3534 ntab_upload(dev, B43_NTAB_TDTRN_R3, b43_ntab_tdtrn_r3); in b43_nphy_tables_init_rev7()
3535 ntab_upload(dev, B43_NTAB_NOISEVAR_R7, b43_ntab_noisevar_r7); in b43_nphy_tables_init_rev7()
3536 ntab_upload(dev, B43_NTAB_MCS_R3, b43_ntab_mcs_r3); in b43_nphy_tables_init_rev7()
3537 ntab_upload(dev, B43_NTAB_TDI20A0_R3, b43_ntab_tdi20a0_r3); in b43_nphy_tables_init_rev7()
3538 ntab_upload(dev, B43_NTAB_TDI20A1_R3, b43_ntab_tdi20a1_r3); in b43_nphy_tables_init_rev7()
3539 ntab_upload(dev, B43_NTAB_TDI40A0_R3, b43_ntab_tdi40a0_r3); in b43_nphy_tables_init_rev7()
3540 ntab_upload(dev, B43_NTAB_TDI40A1_R3, b43_ntab_tdi40a1_r3); in b43_nphy_tables_init_rev7()
3541 ntab_upload(dev, B43_NTAB_PILOTLT_R3, b43_ntab_pilotlt_r3); in b43_nphy_tables_init_rev7()
3542 ntab_upload(dev, B43_NTAB_CHANEST_R3, b43_ntab_channelest_r3); in b43_nphy_tables_init_rev7()
3543 ntab_upload(dev, B43_NTAB_FRAMELT_R3, b43_ntab_framelookup_r3); in b43_nphy_tables_init_rev7()
3544 b43_nphy_tables_init_shared_lut(dev); in b43_nphy_tables_init_rev7()
3548 b43_nphy_tables_init_rev7_volatile(dev); in b43_nphy_tables_init_rev7()
3551 static void b43_nphy_tables_init_rev3(struct b43_wldev *dev) in b43_nphy_tables_init_rev3() argument
3553 struct ssb_sprom *sprom = dev->dev->bus_sprom; in b43_nphy_tables_init_rev3()
3556 if (b43_current_band(dev->wl) == NL80211_BAND_5GHZ) in b43_nphy_tables_init_rev3()
3562 if (dev->phy.do_full_init) { in b43_nphy_tables_init_rev3()
3563 ntab_upload(dev, B43_NTAB_FRAMESTRUCT_R3, b43_ntab_framestruct_r3); in b43_nphy_tables_init_rev3()
3564 ntab_upload(dev, B43_NTAB_PILOT_R3, b43_ntab_pilot_r3); in b43_nphy_tables_init_rev3()
3565 ntab_upload(dev, B43_NTAB_TMAP_R3, b43_ntab_tmap_r3); in b43_nphy_tables_init_rev3()
3566 ntab_upload(dev, B43_NTAB_INTLEVEL_R3, b43_ntab_intlevel_r3); in b43_nphy_tables_init_rev3()
3567 ntab_upload(dev, B43_NTAB_TDTRN_R3, b43_ntab_tdtrn_r3); in b43_nphy_tables_init_rev3()
3568 ntab_upload(dev, B43_NTAB_NOISEVAR_R3, b43_ntab_noisevar_r3); in b43_nphy_tables_init_rev3()
3569 ntab_upload(dev, B43_NTAB_MCS_R3, b43_ntab_mcs_r3); in b43_nphy_tables_init_rev3()
3570 ntab_upload(dev, B43_NTAB_TDI20A0_R3, b43_ntab_tdi20a0_r3); in b43_nphy_tables_init_rev3()
3571 ntab_upload(dev, B43_NTAB_TDI20A1_R3, b43_ntab_tdi20a1_r3); in b43_nphy_tables_init_rev3()
3572 ntab_upload(dev, B43_NTAB_TDI40A0_R3, b43_ntab_tdi40a0_r3); in b43_nphy_tables_init_rev3()
3573 ntab_upload(dev, B43_NTAB_TDI40A1_R3, b43_ntab_tdi40a1_r3); in b43_nphy_tables_init_rev3()
3574 ntab_upload(dev, B43_NTAB_PILOTLT_R3, b43_ntab_pilotlt_r3); in b43_nphy_tables_init_rev3()
3575 ntab_upload(dev, B43_NTAB_CHANEST_R3, b43_ntab_channelest_r3); in b43_nphy_tables_init_rev3()
3576 ntab_upload(dev, B43_NTAB_FRAMELT_R3, b43_ntab_framelookup_r3); in b43_nphy_tables_init_rev3()
3577 b43_nphy_tables_init_shared_lut(dev); in b43_nphy_tables_init_rev3()
3582 ntab_upload(dev, B43_NTAB_ANT_SW_CTL_R3, in b43_nphy_tables_init_rev3()
3588 static void b43_nphy_tables_init_rev0(struct b43_wldev *dev) in b43_nphy_tables_init_rev0() argument
3591 if (dev->phy.do_full_init) { in b43_nphy_tables_init_rev0()
3592 ntab_upload(dev, B43_NTAB_FRAMESTRUCT, b43_ntab_framestruct); in b43_nphy_tables_init_rev0()
3593 ntab_upload(dev, B43_NTAB_FRAMELT, b43_ntab_framelookup); in b43_nphy_tables_init_rev0()
3594 ntab_upload(dev, B43_NTAB_TMAP, b43_ntab_tmap); in b43_nphy_tables_init_rev0()
3595 ntab_upload(dev, B43_NTAB_TDTRN, b43_ntab_tdtrn); in b43_nphy_tables_init_rev0()
3596 ntab_upload(dev, B43_NTAB_INTLEVEL, b43_ntab_intlevel); in b43_nphy_tables_init_rev0()
3597 ntab_upload(dev, B43_NTAB_PILOT, b43_ntab_pilot); in b43_nphy_tables_init_rev0()
3598 ntab_upload(dev, B43_NTAB_TDI20A0, b43_ntab_tdi20a0); in b43_nphy_tables_init_rev0()
3599 ntab_upload(dev, B43_NTAB_TDI20A1, b43_ntab_tdi20a1); in b43_nphy_tables_init_rev0()
3600 ntab_upload(dev, B43_NTAB_TDI40A0, b43_ntab_tdi40a0); in b43_nphy_tables_init_rev0()
3601 ntab_upload(dev, B43_NTAB_TDI40A1, b43_ntab_tdi40a1); in b43_nphy_tables_init_rev0()
3602 ntab_upload(dev, B43_NTAB_CHANEST, b43_ntab_channelest); in b43_nphy_tables_init_rev0()
3603 ntab_upload(dev, B43_NTAB_MCS, b43_ntab_mcs); in b43_nphy_tables_init_rev0()
3604 ntab_upload(dev, B43_NTAB_NOISEVAR10, b43_ntab_noisevar10); in b43_nphy_tables_init_rev0()
3605 ntab_upload(dev, B43_NTAB_NOISEVAR11, b43_ntab_noisevar11); in b43_nphy_tables_init_rev0()
3609 ntab_upload(dev, B43_NTAB_BDI, b43_ntab_bdi); in b43_nphy_tables_init_rev0()
3610 ntab_upload(dev, B43_NTAB_PILOTLT, b43_ntab_pilotlt); in b43_nphy_tables_init_rev0()
3611 ntab_upload(dev, B43_NTAB_C0_GAINCTL, b43_ntab_gainctl0); in b43_nphy_tables_init_rev0()
3612 ntab_upload(dev, B43_NTAB_C1_GAINCTL, b43_ntab_gainctl1); in b43_nphy_tables_init_rev0()
3613 ntab_upload(dev, B43_NTAB_C0_ESTPLT, b43_ntab_estimatepowerlt0); in b43_nphy_tables_init_rev0()
3614 ntab_upload(dev, B43_NTAB_C1_ESTPLT, b43_ntab_estimatepowerlt1); in b43_nphy_tables_init_rev0()
3615 ntab_upload(dev, B43_NTAB_C0_ADJPLT, b43_ntab_adjustpower0); in b43_nphy_tables_init_rev0()
3616 ntab_upload(dev, B43_NTAB_C1_ADJPLT, b43_ntab_adjustpower1); in b43_nphy_tables_init_rev0()
3617 ntab_upload(dev, B43_NTAB_C0_IQLT, b43_ntab_iqlt0); in b43_nphy_tables_init_rev0()
3618 ntab_upload(dev, B43_NTAB_C1_IQLT, b43_ntab_iqlt1); in b43_nphy_tables_init_rev0()
3619 ntab_upload(dev, B43_NTAB_C0_LOFEEDTH, b43_ntab_loftlt0); in b43_nphy_tables_init_rev0()
3620 ntab_upload(dev, B43_NTAB_C1_LOFEEDTH, b43_ntab_loftlt1); in b43_nphy_tables_init_rev0()
3624 void b43_nphy_tables_init(struct b43_wldev *dev) in b43_nphy_tables_init() argument
3626 if (dev->phy.rev >= 16) in b43_nphy_tables_init()
3627 b43_nphy_tables_init_rev16(dev); in b43_nphy_tables_init()
3628 else if (dev->phy.rev >= 7) in b43_nphy_tables_init()
3629 b43_nphy_tables_init_rev7(dev); in b43_nphy_tables_init()
3630 else if (dev->phy.rev >= 3) in b43_nphy_tables_init()
3631 b43_nphy_tables_init_rev3(dev); in b43_nphy_tables_init()
3633 b43_nphy_tables_init_rev0(dev); in b43_nphy_tables_init()
3637 static const u32 *b43_nphy_get_ipa_gain_table(struct b43_wldev *dev) in b43_nphy_get_ipa_gain_table() argument
3639 struct b43_phy *phy = &dev->phy; in b43_nphy_get_ipa_gain_table()
3641 if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ) { in b43_nphy_get_ipa_gain_table()
3656 if (dev->dev->chip_id == BCMA_CHIP_ID_BCM47162) in b43_nphy_get_ipa_gain_table()
3666 b43err(dev->wl, in b43_nphy_get_ipa_gain_table()
3679 b43err(dev->wl, in b43_nphy_get_ipa_gain_table()
3685 const u32 *b43_nphy_get_tx_gain_table(struct b43_wldev *dev) in b43_nphy_get_tx_gain_table() argument
3687 struct b43_phy *phy = &dev->phy; in b43_nphy_get_tx_gain_table()
3688 enum nl80211_band band = b43_current_band(dev->wl); in b43_nphy_get_tx_gain_table()
3689 struct ssb_sprom *sprom = dev->dev->bus_sprom; in b43_nphy_get_tx_gain_table()
3691 if (dev->phy.rev < 3) in b43_nphy_get_tx_gain_table()
3695 if ((dev->phy.n->ipa2g_on && band == NL80211_BAND_2GHZ) || in b43_nphy_get_tx_gain_table()
3696 (dev->phy.n->ipa5g_on && band == NL80211_BAND_5GHZ)) { in b43_nphy_get_tx_gain_table()
3697 return b43_nphy_get_ipa_gain_table(dev); in b43_nphy_get_tx_gain_table()
3698 } else if (b43_current_band(dev->wl) == NL80211_BAND_5GHZ) { in b43_nphy_get_tx_gain_table()
3710 b43err(dev->wl, in b43_nphy_get_tx_gain_table()
3725 b43err(dev->wl, in b43_nphy_get_tx_gain_table()
3732 const s16 *b43_ntab_get_rf_pwr_offset_table(struct b43_wldev *dev) in b43_ntab_get_rf_pwr_offset_table() argument
3734 struct b43_phy *phy = &dev->phy; in b43_ntab_get_rf_pwr_offset_table()
3736 if (b43_current_band(dev->wl) == NL80211_BAND_2GHZ) { in b43_ntab_get_rf_pwr_offset_table()
3748 b43err(dev->wl, in b43_ntab_get_rf_pwr_offset_table()
3759 b43err(dev->wl, in b43_ntab_get_rf_pwr_offset_table()
3766 struct b43_wldev *dev, bool ghz5, bool ext_lna) in b43_nphy_get_gain_ctl_workaround_ent() argument
3768 struct b43_phy *phy = &dev->phy; in b43_nphy_get_gain_ctl_workaround_ent()
3772 if (!ghz5 && dev->phy.rev >= 6 && dev->phy.radio_rev == 11) in b43_nphy_get_gain_ctl_workaround_ent()
3775 B43_WARN_ON(dev->phy.rev < 3); in b43_nphy_get_gain_ctl_workaround_ent()
3776 if (dev->phy.rev >= 6) in b43_nphy_get_gain_ctl_workaround_ent()
3778 else if (dev->phy.rev == 5) in b43_nphy_get_gain_ctl_workaround_ent()
3780 else if (dev->phy.rev == 4) in b43_nphy_get_gain_ctl_workaround_ent()
3788 u8 tr_iso = dev->dev->bus_sprom->fem.ghz2.tr_iso; in b43_nphy_get_gain_ctl_workaround_ent()
3816 if (phy->radio_rev == 11 && !b43_is_40mhz(dev)) in b43_nphy_get_gain_ctl_workaround_ent()
3836 struct b43_wldev *dev, u16 field, u8 override) in b43_nphy_get_rf_ctl_over_rev7() argument
3855 b43err(dev->wl, "Invalid override value %d\n", override); in b43_nphy_get_rf_ctl_over_rev7()