Lines Matching refs:dev
3323 u32 b43_ntab_read(struct b43_wldev *dev, u32 offset) in b43_ntab_read() argument
3333 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_read()
3334 value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF; in b43_ntab_read()
3337 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_read()
3338 value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO); in b43_ntab_read()
3341 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_read()
3342 value = b43_phy_read(dev, B43_NPHY_TABLE_DATALO); in b43_ntab_read()
3343 value |= b43_phy_read(dev, B43_NPHY_TABLE_DATAHI) << 16; in b43_ntab_read()
3353 void b43_ntab_read_bulk(struct b43_wldev *dev, u32 offset, in b43_ntab_read_bulk() argument
3364 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_read_bulk()
3368 if (dev->dev->chip_id == 43224 && dev->dev->chip_rev == 1) { in b43_ntab_read_bulk()
3369 b43_phy_read(dev, B43_NPHY_TABLE_DATALO); in b43_ntab_read_bulk()
3370 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset + i); in b43_ntab_read_bulk()
3375 *data = b43_phy_read(dev, B43_NPHY_TABLE_DATALO) & 0xFF; in b43_ntab_read_bulk()
3379 *((u16 *)data) = b43_phy_read(dev, B43_NPHY_TABLE_DATALO); in b43_ntab_read_bulk()
3384 b43_phy_read(dev, B43_NPHY_TABLE_DATALO); in b43_ntab_read_bulk()
3386 b43_phy_read(dev, B43_NPHY_TABLE_DATAHI) << 16; in b43_ntab_read_bulk()
3395 void b43_ntab_write(struct b43_wldev *dev, u32 offset, u32 value) in b43_ntab_write() argument
3405 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_write()
3406 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value); in b43_ntab_write()
3410 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_write()
3411 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value); in b43_ntab_write()
3414 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_write()
3415 b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16); in b43_ntab_write()
3416 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value & 0xFFFF); in b43_ntab_write()
3428 void b43_ntab_write_bulk(struct b43_wldev *dev, u32 offset, in b43_ntab_write_bulk() argument
3439 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset); in b43_ntab_write_bulk()
3443 if ((offset >> 10) == 9 && dev->dev->chip_id == 43224 && in b43_ntab_write_bulk()
3444 dev->dev->chip_rev == 1) { in b43_ntab_write_bulk()
3445 b43_phy_read(dev, B43_NPHY_TABLE_DATALO); in b43_ntab_write_bulk()
3446 b43_phy_write(dev, B43_NPHY_TABLE_ADDR, offset + i); in b43_ntab_write_bulk()
3454 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value); in b43_ntab_write_bulk()
3460 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, value); in b43_ntab_write_bulk()
3465 b43_phy_write(dev, B43_NPHY_TABLE_DATAHI, value >> 16); in b43_ntab_write_bulk()
3466 b43_phy_write(dev, B43_NPHY_TABLE_DATALO, in b43_ntab_write_bulk()
3475 #define ntab_upload(dev, offset, data) do { \ argument
3476 b43_ntab_write_bulk(dev, offset, ARRAY_SIZE(data), data); \
3479 static void b43_nphy_tables_init_shared_lut(struct b43_wldev *dev) in b43_nphy_tables_init_shared_lut() argument
3481 ntab_upload(dev, B43_NTAB_C0_ESTPLT_R3, b43_ntab_estimatepowerlt0_r3); in b43_nphy_tables_init_shared_lut()
3482 ntab_upload(dev, B43_NTAB_C1_ESTPLT_R3, b43_ntab_estimatepowerlt1_r3); in b43_nphy_tables_init_shared_lut()
3483 ntab_upload(dev, B43_NTAB_C0_ADJPLT_R3, b43_ntab_adjustpower0_r3); in b43_nphy_tables_init_shared_lut()
3484 ntab_upload(dev, B43_NTAB_C1_ADJPLT_R3, b43_ntab_adjustpower1_r3); in b43_nphy_tables_init_shared_lut()
3485 ntab_upload(dev, B43_NTAB_C0_GAINCTL_R3, b43_ntab_gainctl0_r3); in b43_nphy_tables_init_shared_lut()
3486 ntab_upload(dev, B43_NTAB_C1_GAINCTL_R3, b43_ntab_gainctl1_r3); in b43_nphy_tables_init_shared_lut()
3487 ntab_upload(dev, B43_NTAB_C0_IQLT_R3, b43_ntab_iqlt0_r3); in b43_nphy_tables_init_shared_lut()
3488 ntab_upload(dev, B43_NTAB_C1_IQLT_R3, b43_ntab_iqlt1_r3); in b43_nphy_tables_init_shared_lut()
3489 ntab_upload(dev, B43_NTAB_C0_LOFEEDTH_R3, b43_ntab_loftlt0_r3); in b43_nphy_tables_init_shared_lut()
3490 ntab_upload(dev, B43_NTAB_C1_LOFEEDTH_R3, b43_ntab_loftlt1_r3); in b43_nphy_tables_init_shared_lut()
3493 static void b43_nphy_tables_init_rev7_volatile(struct b43_wldev *dev) in b43_nphy_tables_init_rev7_volatile() argument
3495 struct ssb_sprom *sprom = dev->dev->bus_sprom; in b43_nphy_tables_init_rev7_volatile()
3505 if (b43_current_band(dev->wl) == IEEE80211_BAND_5GHZ) in b43_nphy_tables_init_rev7_volatile()
3516 b43_ntab_write(dev, B43_NTAB8(9, offset), in b43_nphy_tables_init_rev7_volatile()
3522 b43err(dev->wl, "Unsupported antswlut: %d\n", antswlut); in b43_nphy_tables_init_rev7_volatile()
3527 static void b43_nphy_tables_init_rev16(struct b43_wldev *dev) in b43_nphy_tables_init_rev16() argument
3530 if (dev->phy.do_full_init) { in b43_nphy_tables_init_rev16()
3531 ntab_upload(dev, B43_NTAB_NOISEVAR_R7, b43_ntab_noisevar_r7); in b43_nphy_tables_init_rev16()
3532 b43_nphy_tables_init_shared_lut(dev); in b43_nphy_tables_init_rev16()
3536 b43_nphy_tables_init_rev7_volatile(dev); in b43_nphy_tables_init_rev16()
3539 static void b43_nphy_tables_init_rev7(struct b43_wldev *dev) in b43_nphy_tables_init_rev7() argument
3542 if (dev->phy.do_full_init) { in b43_nphy_tables_init_rev7()
3543 ntab_upload(dev, B43_NTAB_FRAMESTRUCT_R3, b43_ntab_framestruct_r3); in b43_nphy_tables_init_rev7()
3544 ntab_upload(dev, B43_NTAB_PILOT_R3, b43_ntab_pilot_r3); in b43_nphy_tables_init_rev7()
3545 ntab_upload(dev, B43_NTAB_TMAP_R7, b43_ntab_tmap_r7); in b43_nphy_tables_init_rev7()
3546 ntab_upload(dev, B43_NTAB_INTLEVEL_R3, b43_ntab_intlevel_r3); in b43_nphy_tables_init_rev7()
3547 ntab_upload(dev, B43_NTAB_TDTRN_R3, b43_ntab_tdtrn_r3); in b43_nphy_tables_init_rev7()
3548 ntab_upload(dev, B43_NTAB_NOISEVAR_R7, b43_ntab_noisevar_r7); in b43_nphy_tables_init_rev7()
3549 ntab_upload(dev, B43_NTAB_MCS_R3, b43_ntab_mcs_r3); in b43_nphy_tables_init_rev7()
3550 ntab_upload(dev, B43_NTAB_TDI20A0_R3, b43_ntab_tdi20a0_r3); in b43_nphy_tables_init_rev7()
3551 ntab_upload(dev, B43_NTAB_TDI20A1_R3, b43_ntab_tdi20a1_r3); in b43_nphy_tables_init_rev7()
3552 ntab_upload(dev, B43_NTAB_TDI40A0_R3, b43_ntab_tdi40a0_r3); in b43_nphy_tables_init_rev7()
3553 ntab_upload(dev, B43_NTAB_TDI40A1_R3, b43_ntab_tdi40a1_r3); in b43_nphy_tables_init_rev7()
3554 ntab_upload(dev, B43_NTAB_PILOTLT_R3, b43_ntab_pilotlt_r3); in b43_nphy_tables_init_rev7()
3555 ntab_upload(dev, B43_NTAB_CHANEST_R3, b43_ntab_channelest_r3); in b43_nphy_tables_init_rev7()
3556 ntab_upload(dev, B43_NTAB_FRAMELT_R3, b43_ntab_framelookup_r3); in b43_nphy_tables_init_rev7()
3557 b43_nphy_tables_init_shared_lut(dev); in b43_nphy_tables_init_rev7()
3561 b43_nphy_tables_init_rev7_volatile(dev); in b43_nphy_tables_init_rev7()
3564 static void b43_nphy_tables_init_rev3(struct b43_wldev *dev) in b43_nphy_tables_init_rev3() argument
3566 struct ssb_sprom *sprom = dev->dev->bus_sprom; in b43_nphy_tables_init_rev3()
3569 if (b43_current_band(dev->wl) == IEEE80211_BAND_5GHZ) in b43_nphy_tables_init_rev3()
3575 if (dev->phy.do_full_init) { in b43_nphy_tables_init_rev3()
3576 ntab_upload(dev, B43_NTAB_FRAMESTRUCT_R3, b43_ntab_framestruct_r3); in b43_nphy_tables_init_rev3()
3577 ntab_upload(dev, B43_NTAB_PILOT_R3, b43_ntab_pilot_r3); in b43_nphy_tables_init_rev3()
3578 ntab_upload(dev, B43_NTAB_TMAP_R3, b43_ntab_tmap_r3); in b43_nphy_tables_init_rev3()
3579 ntab_upload(dev, B43_NTAB_INTLEVEL_R3, b43_ntab_intlevel_r3); in b43_nphy_tables_init_rev3()
3580 ntab_upload(dev, B43_NTAB_TDTRN_R3, b43_ntab_tdtrn_r3); in b43_nphy_tables_init_rev3()
3581 ntab_upload(dev, B43_NTAB_NOISEVAR_R3, b43_ntab_noisevar_r3); in b43_nphy_tables_init_rev3()
3582 ntab_upload(dev, B43_NTAB_MCS_R3, b43_ntab_mcs_r3); in b43_nphy_tables_init_rev3()
3583 ntab_upload(dev, B43_NTAB_TDI20A0_R3, b43_ntab_tdi20a0_r3); in b43_nphy_tables_init_rev3()
3584 ntab_upload(dev, B43_NTAB_TDI20A1_R3, b43_ntab_tdi20a1_r3); in b43_nphy_tables_init_rev3()
3585 ntab_upload(dev, B43_NTAB_TDI40A0_R3, b43_ntab_tdi40a0_r3); in b43_nphy_tables_init_rev3()
3586 ntab_upload(dev, B43_NTAB_TDI40A1_R3, b43_ntab_tdi40a1_r3); in b43_nphy_tables_init_rev3()
3587 ntab_upload(dev, B43_NTAB_PILOTLT_R3, b43_ntab_pilotlt_r3); in b43_nphy_tables_init_rev3()
3588 ntab_upload(dev, B43_NTAB_CHANEST_R3, b43_ntab_channelest_r3); in b43_nphy_tables_init_rev3()
3589 ntab_upload(dev, B43_NTAB_FRAMELT_R3, b43_ntab_framelookup_r3); in b43_nphy_tables_init_rev3()
3590 b43_nphy_tables_init_shared_lut(dev); in b43_nphy_tables_init_rev3()
3595 ntab_upload(dev, B43_NTAB_ANT_SW_CTL_R3, in b43_nphy_tables_init_rev3()
3601 static void b43_nphy_tables_init_rev0(struct b43_wldev *dev) in b43_nphy_tables_init_rev0() argument
3604 if (dev->phy.do_full_init) { in b43_nphy_tables_init_rev0()
3605 ntab_upload(dev, B43_NTAB_FRAMESTRUCT, b43_ntab_framestruct); in b43_nphy_tables_init_rev0()
3606 ntab_upload(dev, B43_NTAB_FRAMELT, b43_ntab_framelookup); in b43_nphy_tables_init_rev0()
3607 ntab_upload(dev, B43_NTAB_TMAP, b43_ntab_tmap); in b43_nphy_tables_init_rev0()
3608 ntab_upload(dev, B43_NTAB_TDTRN, b43_ntab_tdtrn); in b43_nphy_tables_init_rev0()
3609 ntab_upload(dev, B43_NTAB_INTLEVEL, b43_ntab_intlevel); in b43_nphy_tables_init_rev0()
3610 ntab_upload(dev, B43_NTAB_PILOT, b43_ntab_pilot); in b43_nphy_tables_init_rev0()
3611 ntab_upload(dev, B43_NTAB_TDI20A0, b43_ntab_tdi20a0); in b43_nphy_tables_init_rev0()
3612 ntab_upload(dev, B43_NTAB_TDI20A1, b43_ntab_tdi20a1); in b43_nphy_tables_init_rev0()
3613 ntab_upload(dev, B43_NTAB_TDI40A0, b43_ntab_tdi40a0); in b43_nphy_tables_init_rev0()
3614 ntab_upload(dev, B43_NTAB_TDI40A1, b43_ntab_tdi40a1); in b43_nphy_tables_init_rev0()
3615 ntab_upload(dev, B43_NTAB_CHANEST, b43_ntab_channelest); in b43_nphy_tables_init_rev0()
3616 ntab_upload(dev, B43_NTAB_MCS, b43_ntab_mcs); in b43_nphy_tables_init_rev0()
3617 ntab_upload(dev, B43_NTAB_NOISEVAR10, b43_ntab_noisevar10); in b43_nphy_tables_init_rev0()
3618 ntab_upload(dev, B43_NTAB_NOISEVAR11, b43_ntab_noisevar11); in b43_nphy_tables_init_rev0()
3622 ntab_upload(dev, B43_NTAB_BDI, b43_ntab_bdi); in b43_nphy_tables_init_rev0()
3623 ntab_upload(dev, B43_NTAB_PILOTLT, b43_ntab_pilotlt); in b43_nphy_tables_init_rev0()
3624 ntab_upload(dev, B43_NTAB_C0_GAINCTL, b43_ntab_gainctl0); in b43_nphy_tables_init_rev0()
3625 ntab_upload(dev, B43_NTAB_C1_GAINCTL, b43_ntab_gainctl1); in b43_nphy_tables_init_rev0()
3626 ntab_upload(dev, B43_NTAB_C0_ESTPLT, b43_ntab_estimatepowerlt0); in b43_nphy_tables_init_rev0()
3627 ntab_upload(dev, B43_NTAB_C1_ESTPLT, b43_ntab_estimatepowerlt1); in b43_nphy_tables_init_rev0()
3628 ntab_upload(dev, B43_NTAB_C0_ADJPLT, b43_ntab_adjustpower0); in b43_nphy_tables_init_rev0()
3629 ntab_upload(dev, B43_NTAB_C1_ADJPLT, b43_ntab_adjustpower1); in b43_nphy_tables_init_rev0()
3630 ntab_upload(dev, B43_NTAB_C0_IQLT, b43_ntab_iqlt0); in b43_nphy_tables_init_rev0()
3631 ntab_upload(dev, B43_NTAB_C1_IQLT, b43_ntab_iqlt1); in b43_nphy_tables_init_rev0()
3632 ntab_upload(dev, B43_NTAB_C0_LOFEEDTH, b43_ntab_loftlt0); in b43_nphy_tables_init_rev0()
3633 ntab_upload(dev, B43_NTAB_C1_LOFEEDTH, b43_ntab_loftlt1); in b43_nphy_tables_init_rev0()
3637 void b43_nphy_tables_init(struct b43_wldev *dev) in b43_nphy_tables_init() argument
3639 if (dev->phy.rev >= 16) in b43_nphy_tables_init()
3640 b43_nphy_tables_init_rev16(dev); in b43_nphy_tables_init()
3641 else if (dev->phy.rev >= 7) in b43_nphy_tables_init()
3642 b43_nphy_tables_init_rev7(dev); in b43_nphy_tables_init()
3643 else if (dev->phy.rev >= 3) in b43_nphy_tables_init()
3644 b43_nphy_tables_init_rev3(dev); in b43_nphy_tables_init()
3646 b43_nphy_tables_init_rev0(dev); in b43_nphy_tables_init()
3650 static const u32 *b43_nphy_get_ipa_gain_table(struct b43_wldev *dev) in b43_nphy_get_ipa_gain_table() argument
3652 struct b43_phy *phy = &dev->phy; in b43_nphy_get_ipa_gain_table()
3654 if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) { in b43_nphy_get_ipa_gain_table()
3669 if (dev->dev->chip_id == BCMA_CHIP_ID_BCM47162) in b43_nphy_get_ipa_gain_table()
3679 b43err(dev->wl, in b43_nphy_get_ipa_gain_table()
3692 b43err(dev->wl, in b43_nphy_get_ipa_gain_table()
3698 const u32 *b43_nphy_get_tx_gain_table(struct b43_wldev *dev) in b43_nphy_get_tx_gain_table() argument
3700 struct b43_phy *phy = &dev->phy; in b43_nphy_get_tx_gain_table()
3701 enum ieee80211_band band = b43_current_band(dev->wl); in b43_nphy_get_tx_gain_table()
3702 struct ssb_sprom *sprom = dev->dev->bus_sprom; in b43_nphy_get_tx_gain_table()
3704 if (dev->phy.rev < 3) in b43_nphy_get_tx_gain_table()
3708 if ((dev->phy.n->ipa2g_on && band == IEEE80211_BAND_2GHZ) || in b43_nphy_get_tx_gain_table()
3709 (dev->phy.n->ipa5g_on && band == IEEE80211_BAND_5GHZ)) { in b43_nphy_get_tx_gain_table()
3710 return b43_nphy_get_ipa_gain_table(dev); in b43_nphy_get_tx_gain_table()
3711 } else if (b43_current_band(dev->wl) == IEEE80211_BAND_5GHZ) { in b43_nphy_get_tx_gain_table()
3723 b43err(dev->wl, in b43_nphy_get_tx_gain_table()
3738 b43err(dev->wl, in b43_nphy_get_tx_gain_table()
3745 const s16 *b43_ntab_get_rf_pwr_offset_table(struct b43_wldev *dev) in b43_ntab_get_rf_pwr_offset_table() argument
3747 struct b43_phy *phy = &dev->phy; in b43_ntab_get_rf_pwr_offset_table()
3749 if (b43_current_band(dev->wl) == IEEE80211_BAND_2GHZ) { in b43_ntab_get_rf_pwr_offset_table()
3761 b43err(dev->wl, in b43_ntab_get_rf_pwr_offset_table()
3772 b43err(dev->wl, in b43_ntab_get_rf_pwr_offset_table()
3779 struct b43_wldev *dev, bool ghz5, bool ext_lna) in b43_nphy_get_gain_ctl_workaround_ent() argument
3781 struct b43_phy *phy = &dev->phy; in b43_nphy_get_gain_ctl_workaround_ent()
3785 if (!ghz5 && dev->phy.rev >= 6 && dev->phy.radio_rev == 11) in b43_nphy_get_gain_ctl_workaround_ent()
3788 B43_WARN_ON(dev->phy.rev < 3); in b43_nphy_get_gain_ctl_workaround_ent()
3789 if (dev->phy.rev >= 6) in b43_nphy_get_gain_ctl_workaround_ent()
3791 else if (dev->phy.rev == 5) in b43_nphy_get_gain_ctl_workaround_ent()
3793 else if (dev->phy.rev == 4) in b43_nphy_get_gain_ctl_workaround_ent()
3801 u8 tr_iso = dev->dev->bus_sprom->fem.ghz2.tr_iso; in b43_nphy_get_gain_ctl_workaround_ent()
3829 if (phy->radio_rev == 11 && !b43_is_40mhz(dev)) in b43_nphy_get_gain_ctl_workaround_ent()
3849 struct b43_wldev *dev, u16 field, u8 override) in b43_nphy_get_rf_ctl_over_rev7() argument
3868 b43err(dev->wl, "Invalid override value %d\n", override); in b43_nphy_get_rf_ctl_over_rev7()