Message ID | c208360e5cc314ac1ad81f907f4538cf2dcbd196.1541238842.git-series.plaes@plaes.org (mailing list archive) |
---|---|
State | Changes Requested |
Delegated to: | Kalle Valo |
Headers | show |
Series | Use common cordic algorithm for b43 | expand |
On 11/3/18 4:59 AM, Priit Laes wrote: > Signed-off-by: Priit Laes <plaes@plaes.org> Where is the commit message? The stuff in the cover letter (Patch 0/N) never makes it to the git repository. You must have a message in each of the individual patches. NACK. Larry > --- > drivers/net/wireless/broadcom/b43/Kconfig | 1 + > drivers/net/wireless/broadcom/b43/phy_lp.c | 13 +++++++------ > drivers/net/wireless/broadcom/b43/phy_n.c | 13 +++++++------ > 3 files changed, 15 insertions(+), 12 deletions(-) > > diff --git a/drivers/net/wireless/broadcom/b43/Kconfig b/drivers/net/wireless/broadcom/b43/Kconfig > index fba8560..3e41457 100644 > --- a/drivers/net/wireless/broadcom/b43/Kconfig > +++ b/drivers/net/wireless/broadcom/b43/Kconfig > @@ -4,6 +4,7 @@ config B43 > select BCMA if B43_BCMA > select SSB if B43_SSB > select FW_LOADER > + select CORDIC > ---help--- > b43 is a driver for the Broadcom 43xx series wireless devices. > > diff --git a/drivers/net/wireless/broadcom/b43/phy_lp.c b/drivers/net/wireless/broadcom/b43/phy_lp.c > index 6922cbb..1718e3b 100644 > --- a/drivers/net/wireless/broadcom/b43/phy_lp.c > +++ b/drivers/net/wireless/broadcom/b43/phy_lp.c > @@ -23,6 +23,7 @@ > > */ > > +#include <linux/cordic.h> > #include <linux/slab.h> > > #include "b43.h" > @@ -1780,9 +1781,9 @@ static void lpphy_start_tx_tone(struct b43_wldev *dev, s32 freq, u16 max) > { > struct b43_phy_lp *lpphy = dev->phy.lp; > u16 buf[64]; > - int i, samples = 0, angle = 0; > + int i, samples = 0, theta = 0; > int rotation = (((36 * freq) / 20) << 16) / 100; > - struct b43_c32 sample; > + struct cordic_iq sample; > > lpphy->tx_tone_freq = freq; > > @@ -1798,10 +1799,10 @@ static void lpphy_start_tx_tone(struct b43_wldev *dev, s32 freq, u16 max) > } > > for (i = 0; i < samples; i++) { > - sample = b43_cordic(angle); > - angle += rotation; > - buf[i] = CORDIC_CONVERT((sample.i * max) & 0xFF) << 8; > - buf[i] |= CORDIC_CONVERT((sample.q * max) & 0xFF); > + sample = cordic_calc_iq(theta); > + theta += rotation; > + buf[i] = CORDIC_FLOAT((sample.i * max) & 0xFF) << 8; > + buf[i] |= CORDIC_FLOAT((sample.q * max) & 0xFF); > } > > b43_lptab_write_bulk(dev, B43_LPTAB16(5, 0), samples, buf); > diff --git a/drivers/net/wireless/broadcom/b43/phy_n.c b/drivers/net/wireless/broadcom/b43/phy_n.c > index 44ab080..1f9378a 100644 > --- a/drivers/net/wireless/broadcom/b43/phy_n.c > +++ b/drivers/net/wireless/broadcom/b43/phy_n.c > @@ -23,6 +23,7 @@ > > */ > > +#include <linux/cordic.h> > #include <linux/delay.h> > #include <linux/slab.h> > #include <linux/types.h> > @@ -1513,7 +1514,7 @@ static void b43_radio_init2055(struct b43_wldev *dev) > > /* http://bcm-v4.sipsolutions.net/802.11/PHY/N/LoadSampleTable */ > static int b43_nphy_load_samples(struct b43_wldev *dev, > - struct b43_c32 *samples, u16 len) { > + struct cordic_iq *samples, u16 len) { > struct b43_phy_n *nphy = dev->phy.n; > u16 i; > u32 *data; > @@ -1544,7 +1545,7 @@ static u16 b43_nphy_gen_load_samples(struct b43_wldev *dev, u32 freq, u16 max, > { > int i; > u16 bw, len, rot, angle; > - struct b43_c32 *samples; > + struct cordic_iq *samples; > > bw = b43_is_40mhz(dev) ? 40 : 20; > len = bw << 3; > @@ -1561,7 +1562,7 @@ static u16 b43_nphy_gen_load_samples(struct b43_wldev *dev, u32 freq, u16 max, > len = bw << 1; > } > > - samples = kcalloc(len, sizeof(struct b43_c32), GFP_KERNEL); > + samples = kcalloc(len, sizeof(struct cordic_iq), GFP_KERNEL); > if (!samples) { > b43err(dev->wl, "allocation for samples generation failed\n"); > return 0; > @@ -1570,10 +1571,10 @@ static u16 b43_nphy_gen_load_samples(struct b43_wldev *dev, u32 freq, u16 max, > angle = 0; > > for (i = 0; i < len; i++) { > - samples[i] = b43_cordic(angle); > + samples[i] = cordic_calc_iq(angle); > angle += rot; > - samples[i].q = CORDIC_CONVERT(samples[i].q * max); > - samples[i].i = CORDIC_CONVERT(samples[i].i * max); > + samples[i].q = CORDIC_FLOAT(samples[i].q * max); > + samples[i].i = CORDIC_FLOAT(samples[i].i * max); > } > > i = b43_nphy_load_samples(dev, samples, len); >
diff --git a/drivers/net/wireless/broadcom/b43/Kconfig b/drivers/net/wireless/broadcom/b43/Kconfig index fba8560..3e41457 100644 --- a/drivers/net/wireless/broadcom/b43/Kconfig +++ b/drivers/net/wireless/broadcom/b43/Kconfig @@ -4,6 +4,7 @@ config B43 select BCMA if B43_BCMA select SSB if B43_SSB select FW_LOADER + select CORDIC ---help--- b43 is a driver for the Broadcom 43xx series wireless devices. diff --git a/drivers/net/wireless/broadcom/b43/phy_lp.c b/drivers/net/wireless/broadcom/b43/phy_lp.c index 6922cbb..1718e3b 100644 --- a/drivers/net/wireless/broadcom/b43/phy_lp.c +++ b/drivers/net/wireless/broadcom/b43/phy_lp.c @@ -23,6 +23,7 @@ */ +#include <linux/cordic.h> #include <linux/slab.h> #include "b43.h" @@ -1780,9 +1781,9 @@ static void lpphy_start_tx_tone(struct b43_wldev *dev, s32 freq, u16 max) { struct b43_phy_lp *lpphy = dev->phy.lp; u16 buf[64]; - int i, samples = 0, angle = 0; + int i, samples = 0, theta = 0; int rotation = (((36 * freq) / 20) << 16) / 100; - struct b43_c32 sample; + struct cordic_iq sample; lpphy->tx_tone_freq = freq; @@ -1798,10 +1799,10 @@ static void lpphy_start_tx_tone(struct b43_wldev *dev, s32 freq, u16 max) } for (i = 0; i < samples; i++) { - sample = b43_cordic(angle); - angle += rotation; - buf[i] = CORDIC_CONVERT((sample.i * max) & 0xFF) << 8; - buf[i] |= CORDIC_CONVERT((sample.q * max) & 0xFF); + sample = cordic_calc_iq(theta); + theta += rotation; + buf[i] = CORDIC_FLOAT((sample.i * max) & 0xFF) << 8; + buf[i] |= CORDIC_FLOAT((sample.q * max) & 0xFF); } b43_lptab_write_bulk(dev, B43_LPTAB16(5, 0), samples, buf); diff --git a/drivers/net/wireless/broadcom/b43/phy_n.c b/drivers/net/wireless/broadcom/b43/phy_n.c index 44ab080..1f9378a 100644 --- a/drivers/net/wireless/broadcom/b43/phy_n.c +++ b/drivers/net/wireless/broadcom/b43/phy_n.c @@ -23,6 +23,7 @@ */ +#include <linux/cordic.h> #include <linux/delay.h> #include <linux/slab.h> #include <linux/types.h> @@ -1513,7 +1514,7 @@ static void b43_radio_init2055(struct b43_wldev *dev) /* http://bcm-v4.sipsolutions.net/802.11/PHY/N/LoadSampleTable */ static int b43_nphy_load_samples(struct b43_wldev *dev, - struct b43_c32 *samples, u16 len) { + struct cordic_iq *samples, u16 len) { struct b43_phy_n *nphy = dev->phy.n; u16 i; u32 *data; @@ -1544,7 +1545,7 @@ static u16 b43_nphy_gen_load_samples(struct b43_wldev *dev, u32 freq, u16 max, { int i; u16 bw, len, rot, angle; - struct b43_c32 *samples; + struct cordic_iq *samples; bw = b43_is_40mhz(dev) ? 40 : 20; len = bw << 3; @@ -1561,7 +1562,7 @@ static u16 b43_nphy_gen_load_samples(struct b43_wldev *dev, u32 freq, u16 max, len = bw << 1; } - samples = kcalloc(len, sizeof(struct b43_c32), GFP_KERNEL); + samples = kcalloc(len, sizeof(struct cordic_iq), GFP_KERNEL); if (!samples) { b43err(dev->wl, "allocation for samples generation failed\n"); return 0; @@ -1570,10 +1571,10 @@ static u16 b43_nphy_gen_load_samples(struct b43_wldev *dev, u32 freq, u16 max, angle = 0; for (i = 0; i < len; i++) { - samples[i] = b43_cordic(angle); + samples[i] = cordic_calc_iq(angle); angle += rot; - samples[i].q = CORDIC_CONVERT(samples[i].q * max); - samples[i].i = CORDIC_CONVERT(samples[i].i * max); + samples[i].q = CORDIC_FLOAT(samples[i].q * max); + samples[i].i = CORDIC_FLOAT(samples[i].i * max); } i = b43_nphy_load_samples(dev, samples, len);
Signed-off-by: Priit Laes <plaes@plaes.org> --- drivers/net/wireless/broadcom/b43/Kconfig | 1 + drivers/net/wireless/broadcom/b43/phy_lp.c | 13 +++++++------ drivers/net/wireless/broadcom/b43/phy_n.c | 13 +++++++------ 3 files changed, 15 insertions(+), 12 deletions(-)