Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 267501
b: refs/heads/master
c: 85fd3ec
h: refs/heads/master
i:
  267499: 099586d
v: v3
  • Loading branch information
Arend van Spriel authored and Greg Kroah-Hartman committed Aug 23, 2011
1 parent 9d0e152 commit e805d9f
Show file tree
Hide file tree
Showing 6 changed files with 14 additions and 73 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 0ed129c9df583f22584521e42a65817a89fcd6ad
refs/heads/master: 85fd3ec4b1048d84f1c36438c7a91827a49c97c7
1 change: 1 addition & 0 deletions trunk/drivers/staging/brcm80211/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ config BRCMSMAC
select FW_LOADER
select CRC_CCITT
select CRC8
select CORDIC
---help---
This module adds support for PCIe wireless adapters based on Broadcom
IEEE802.11n SoftMAC chipsets. If you choose to build a module, it'll
Expand Down
62 changes: 0 additions & 62 deletions trunk/drivers/staging/brcm80211/brcmsmac/phy/phy_cmn.c
Original file line number Diff line number Diff line change
Expand Up @@ -2779,68 +2779,6 @@ wlc_phy_papd_decode_epsilon(u32 epsilon, s32 *eps_real, s32 *eps_imag)
*eps_real -= 0x2000;
}

static const s32 AtanTbl[] = {
2949120,
1740967,
919879,
466945,
234379,
117304,
58666,
29335,
14668,
7334,
3667,
1833,
917,
458,
229,
115,
57,
29
};

void wlc_phy_cordic(s32 theta, struct cs32 *val)
{
s32 angle, valtmp;
unsigned iter;
int signx = 1;
int signtheta;

val[0].i = CORDIC_AG;
val[0].q = 0;
angle = 0;

signtheta = (theta < 0) ? -1 : 1;
theta = ((theta + FIXED(180) * signtheta) % FIXED(360)) -
FIXED(180) * signtheta;

if (FLOAT(theta) > 90) {
theta -= FIXED(180);
signx = -1;
} else if (FLOAT(theta) < -90) {
theta += FIXED(180);
signx = -1;
}

for (iter = 0; iter < CORDIC_NI; iter++) {
if (theta > angle) {
valtmp = val[0].i - (val[0].q >> iter);
val[0].q = (val[0].i >> iter) + val[0].q;
val[0].i = valtmp;
angle += AtanTbl[iter];
} else {
valtmp = val[0].i + (val[0].q >> iter);
val[0].q = -(val[0].i >> iter) + val[0].q;
val[0].i = valtmp;
angle -= AtanTbl[iter];
}
}

val[0].i = val[0].i * signx;
val[0].q = val[0].q * signx;
}

void wlc_phy_cal_perical_mphase_reset(struct brcms_phy *pi)
{
wlapi_del_timer(pi->sh->physhim, pi->phycal_timer);
Expand Down
1 change: 0 additions & 1 deletion trunk/drivers/staging/brcm80211/brcmsmac/phy/phy_int.h
Original file line number Diff line number Diff line change
Expand Up @@ -1039,7 +1039,6 @@ extern void wlc_phy_table_data_write(struct brcms_phy *pi, uint width, u32 val);
extern void write_phy_channel_reg(struct brcms_phy *pi, uint val);
extern void wlc_phy_txpower_update_shm(struct brcms_phy *pi);

extern void wlc_phy_cordic(s32 theta, struct cs32 *val);
extern u8 wlc_phy_nbits(s32 value);
extern void wlc_phy_compute_dB(u32 *cmplx_pwr, s8 *p_dB, u8 core);

Expand Down
7 changes: 4 additions & 3 deletions trunk/drivers/staging/brcm80211/brcmsmac/phy/phy_lcn.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/

#include <linux/delay.h>
#include <linux/cordic.h>

#include <pmu.h>
#include <d11.h>
Expand Down Expand Up @@ -2723,7 +2724,7 @@ wlc_lcnphy_start_tx_tone(struct brcms_phy *pi, s32 f_kHz, u16 max_val,
u16 num_samps, t, k;
u32 bw;
s32 theta = 0, rot = 0;
struct cs32 tone_samp;
struct cordic_iq tone_samp;
u32 data_buf[64];
u16 i_samp, q_samp;
struct phytbl_info tab;
Expand Down Expand Up @@ -2751,12 +2752,12 @@ wlc_lcnphy_start_tx_tone(struct brcms_phy *pi, s32 f_kHz, u16 max_val,
} else
num_samps = 2;

rot = FIXED((f_kHz * 36) / phy_bw) / 100;
rot = ((f_kHz * 36) / phy_bw) / 100;
theta = 0;

for (t = 0; t < num_samps; t++) {

wlc_phy_cordic(theta, &tone_samp);
tone_samp = cordic_calc_iq(theta);

theta += rot;

Expand Down
14 changes: 8 additions & 6 deletions trunk/drivers/staging/brcm80211/brcmsmac/phy/phy_n.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
*/

#include <linux/delay.h>
#include <linux/cordic.h>

#include <brcm_hw_ids.h>
#include <aiutils.h>
Expand Down Expand Up @@ -14214,7 +14215,8 @@ static u16 wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz,
u16 max_val,
u8 dac_test_mode);
static void wlc_phy_loadsampletable_nphy(struct brcms_phy *pi,
struct cs32 *tone_buf, u16 num_samps);
struct cordic_iq *tone_buf,
u16 num_samps);
static void wlc_phy_runsamples_nphy(struct brcms_phy *pi, u16 n, u16 lps,
u16 wait, u8 iq, u8 dac_test_mode,
bool modify_bbmult);
Expand Down Expand Up @@ -22179,7 +22181,7 @@ wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
u16 num_samps, t, spur;
s32 theta = 0, rot = 0;
u32 tbl_len;
struct cs32 *tone_buf = NULL;
struct cordic_iq *tone_buf = NULL;

is_phybw40 = CHSPEC_IS40(pi->radio_chanspec);
phy_bw = (is_phybw40 == 1) ? 40 : 20;
Expand All @@ -22194,17 +22196,17 @@ wlc_phy_gen_load_samples_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
tbl_len = (phy_bw << 1);
}

tone_buf = kmalloc(sizeof(struct cs32) * tbl_len, GFP_ATOMIC);
tone_buf = kmalloc(sizeof(struct cordic_iq) * tbl_len, GFP_ATOMIC);
if (tone_buf == NULL)
return 0;

num_samps = (u16) tbl_len;
rot = FIXED((f_kHz * 36) / phy_bw) / 100;
rot = ((f_kHz * 36) / phy_bw) / 100;
theta = 0;

for (t = 0; t < num_samps; t++) {

wlc_phy_cordic(theta, &tone_buf[t]);
tone_buf[t] = cordic_calc_iq(theta);

theta += rot;

Expand Down Expand Up @@ -22239,7 +22241,7 @@ wlc_phy_tx_tone_nphy(struct brcms_phy *pi, u32 f_kHz, u16 max_val,
}

static void
wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cs32 *tone_buf,
wlc_phy_loadsampletable_nphy(struct brcms_phy *pi, struct cordic_iq *tone_buf,
u16 num_samps)
{
u16 t;
Expand Down

0 comments on commit e805d9f

Please sign in to comment.