Message ID | 1363885909-12263-1-git-send-email-hauke@hauke-m.de (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
Hi Hauke, On Fri, Mar 22, 2013 at 4:11 AM, Hauke Mehrtens <hauke@hauke-m.de> wrote: > Do not implement this in b43, but use bcma_pmu_spuravoid_pllupdate(). > > Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> > --- > drivers/net/wireless/b43/phy_n.c | 92 ++++++++------------------------------ > 1 file changed, 18 insertions(+), 74 deletions(-) > > diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c > index 3c35382..4130c04 100644 > --- a/drivers/net/wireless/b43/phy_n.c > +++ b/drivers/net/wireless/b43/phy_n.c > @@ -5220,19 +5150,33 @@ static void b43_nphy_channel_setup(struct b43_wldev *dev, > > if (dev->phy.rev >= 3 && > dev->phy.n->spur_avoid != B43_SPUR_AVOID_DISABLE) { > - bool avoid = false; > + struct bcma_drv_cc __maybe_unused *cc; Could this go inside the #ifdef in the switch statement - that way the __maybe_unused should be unnecessary? > + int avoid = 0; I though that bools were converted to ints exactly as you've converted the avoid variable here. Thanks,
On 03/21/2013 11:41 PM, Julian Calaby wrote: > Hi Hauke, > > On Fri, Mar 22, 2013 at 4:11 AM, Hauke Mehrtens <hauke@hauke-m.de> wrote: >> Do not implement this in b43, but use bcma_pmu_spuravoid_pllupdate(). >> >> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> >> --- >> drivers/net/wireless/b43/phy_n.c | 92 ++++++++------------------------------ >> 1 file changed, 18 insertions(+), 74 deletions(-) >> >> diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c >> index 3c35382..4130c04 100644 >> --- a/drivers/net/wireless/b43/phy_n.c >> +++ b/drivers/net/wireless/b43/phy_n.c >> @@ -5220,19 +5150,33 @@ static void b43_nphy_channel_setup(struct b43_wldev *dev, >> >> if (dev->phy.rev >= 3 && >> dev->phy.n->spur_avoid != B43_SPUR_AVOID_DISABLE) { >> - bool avoid = false; >> + struct bcma_drv_cc __maybe_unused *cc; > > Could this go inside the #ifdef in the switch statement - that way the > __maybe_unused should be unnecessary? No that is not possible, C forbids it there: drivers/net/wireless/b43/phy_n.c: In function ‘b43_nphy_channel_setup’: drivers/net/wireless/b43/phy_n.c:5169:4: error: a label can only be part of a statement and a declaration is not a statement > >> + int avoid = 0; > > I though that bools were converted to ints exactly as you've converted > the avoid variable here. Yes I will change that. Hauke -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 03/23/2013 03:46 PM, Hauke Mehrtens wrote: > On 03/21/2013 11:41 PM, Julian Calaby wrote: >> Hi Hauke, >> >> On Fri, Mar 22, 2013 at 4:11 AM, Hauke Mehrtens <hauke@hauke-m.de> wrote: >>> Do not implement this in b43, but use bcma_pmu_spuravoid_pllupdate(). >>> >>> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> >>> --- >>> drivers/net/wireless/b43/phy_n.c | 92 ++++++++------------------------------ >>> 1 file changed, 18 insertions(+), 74 deletions(-) >>> >>> diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c >>> index 3c35382..4130c04 100644 >>> --- a/drivers/net/wireless/b43/phy_n.c >>> +++ b/drivers/net/wireless/b43/phy_n.c >>> @@ -5220,19 +5150,33 @@ static void b43_nphy_channel_setup(struct b43_wldev *dev, >>> >>> if (dev->phy.rev >= 3 && >>> dev->phy.n->spur_avoid != B43_SPUR_AVOID_DISABLE) { >>> - bool avoid = false; >>> + struct bcma_drv_cc __maybe_unused *cc; >> >> Could this go inside the #ifdef in the switch statement - that way the >> __maybe_unused should be unnecessary? > > No that is not possible, C forbids it there: > > drivers/net/wireless/b43/phy_n.c: In function ‘b43_nphy_channel_setup’: > drivers/net/wireless/b43/phy_n.c:5169:4: error: a label can only be part > of a statement and a declaration is not a statement > >> >>> + int avoid = 0; >> >> I though that bools were converted to ints exactly as you've converted >> the avoid variable here. > > Yes I will change that. > I thought about this and I would like to stay with int, because the functions wants an int and bcma_pmu_spuravoid_pllupdate() also handles avoid == 2. Hauke -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
2013/3/21 Hauke Mehrtens <hauke@hauke-m.de>:
> Do not implement this in b43, but use bcma_pmu_spuravoid_pllupdate().
Can we wait with this patch few days, please? I'm in process of
debugging BCM4322 and channel 13 support, which may be related to this
part of driver.
Please Cc driver ML when touching it's code.
On 03/23/2013 08:34 PM, Rafa? Mi?ecki wrote: > 2013/3/21 Hauke Mehrtens <hauke@hauke-m.de>: >> Do not implement this in b43, but use bcma_pmu_spuravoid_pllupdate(). > > Can we wait with this patch few days, please? I'm in process of > debugging BCM4322 and channel 13 support, which may be related to this > part of driver. I have not problem with waiting and rebasing my patch onto your fix as this is not a fix just a code cleanup. > Please Cc driver ML when touching it's code. This was not intended, I just forgot to do so. Hauke -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
2013/3/23 Hauke Mehrtens <hauke@hauke-m.de>: > On 03/23/2013 08:34 PM, Rafa? Mi?ecki wrote: >> 2013/3/21 Hauke Mehrtens <hauke@hauke-m.de>: >>> Do not implement this in b43, but use bcma_pmu_spuravoid_pllupdate(). >> >> Can we wait with this patch few days, please? I'm in process of >> debugging BCM4322 and channel 13 support, which may be related to this >> part of driver. > > I have not problem with waiting and rebasing my patch onto your fix as > this is not a fix just a code cleanup. > >> Please Cc driver ML when touching it's code. > > This was not intended, I just forgot to do so. Great, thanks :) I'm really glad to see you improving b43, thanks for your work!
diff --git a/drivers/net/wireless/b43/phy_n.c b/drivers/net/wireless/b43/phy_n.c index 3c35382..4130c04 100644 --- a/drivers/net/wireless/b43/phy_n.c +++ b/drivers/net/wireless/b43/phy_n.c @@ -5101,76 +5101,6 @@ static void b43_chantab_phy_upload(struct b43_wldev *dev, b43_phy_write(dev, B43_NPHY_BW6, e->phy_bw6); } -/* http://bcm-v4.sipsolutions.net/802.11/PmuSpurAvoid */ -static void b43_nphy_pmu_spur_avoid(struct b43_wldev *dev, bool avoid) -{ - struct bcma_drv_cc __maybe_unused *cc; - u32 __maybe_unused pmu_ctl; - - switch (dev->dev->bus_type) { -#ifdef CONFIG_B43_BCMA - case B43_BUS_BCMA: - cc = &dev->dev->bdev->bus->drv_cc; - if (dev->dev->chip_id == 43224 || dev->dev->chip_id == 43225) { - if (avoid) { - bcma_chipco_pll_write(cc, 0x0, 0x11500010); - bcma_chipco_pll_write(cc, 0x1, 0x000C0C06); - bcma_chipco_pll_write(cc, 0x2, 0x0F600a08); - bcma_chipco_pll_write(cc, 0x3, 0x00000000); - bcma_chipco_pll_write(cc, 0x4, 0x2001E920); - bcma_chipco_pll_write(cc, 0x5, 0x88888815); - } else { - bcma_chipco_pll_write(cc, 0x0, 0x11100010); - bcma_chipco_pll_write(cc, 0x1, 0x000c0c06); - bcma_chipco_pll_write(cc, 0x2, 0x03000a08); - bcma_chipco_pll_write(cc, 0x3, 0x00000000); - bcma_chipco_pll_write(cc, 0x4, 0x200005c0); - bcma_chipco_pll_write(cc, 0x5, 0x88888815); - } - pmu_ctl = BCMA_CC_PMU_CTL_PLL_UPD; - } else if (dev->dev->chip_id == 0x4716) { - if (avoid) { - bcma_chipco_pll_write(cc, 0x0, 0x11500060); - bcma_chipco_pll_write(cc, 0x1, 0x080C0C06); - bcma_chipco_pll_write(cc, 0x2, 0x0F600000); - bcma_chipco_pll_write(cc, 0x3, 0x00000000); - bcma_chipco_pll_write(cc, 0x4, 0x2001E924); - bcma_chipco_pll_write(cc, 0x5, 0x88888815); - } else { - bcma_chipco_pll_write(cc, 0x0, 0x11100060); - bcma_chipco_pll_write(cc, 0x1, 0x080c0c06); - bcma_chipco_pll_write(cc, 0x2, 0x03000000); - bcma_chipco_pll_write(cc, 0x3, 0x00000000); - bcma_chipco_pll_write(cc, 0x4, 0x200005c0); - bcma_chipco_pll_write(cc, 0x5, 0x88888815); - } - pmu_ctl = BCMA_CC_PMU_CTL_PLL_UPD | - BCMA_CC_PMU_CTL_NOILPONW; - } else if (dev->dev->chip_id == 0x4322 || - dev->dev->chip_id == 0x4340 || - dev->dev->chip_id == 0x4341) { - bcma_chipco_pll_write(cc, 0x0, 0x11100070); - bcma_chipco_pll_write(cc, 0x1, 0x1014140a); - bcma_chipco_pll_write(cc, 0x5, 0x88888854); - if (avoid) - bcma_chipco_pll_write(cc, 0x2, 0x05201828); - else - bcma_chipco_pll_write(cc, 0x2, 0x05001828); - pmu_ctl = BCMA_CC_PMU_CTL_PLL_UPD; - } else { - return; - } - bcma_cc_set32(cc, BCMA_CC_PMU_CTL, pmu_ctl); - break; -#endif -#ifdef CONFIG_B43_SSB - case B43_BUS_SSB: - /* FIXME */ - break; -#endif - } -} - /* http://bcm-v4.sipsolutions.net/802.11/PHY/N/ChanspecSetup */ static void b43_nphy_channel_setup(struct b43_wldev *dev, const struct b43_phy_n_sfo_cfg *e, @@ -5220,19 +5150,33 @@ static void b43_nphy_channel_setup(struct b43_wldev *dev, if (dev->phy.rev >= 3 && dev->phy.n->spur_avoid != B43_SPUR_AVOID_DISABLE) { - bool avoid = false; + struct bcma_drv_cc __maybe_unused *cc; + int avoid = 0; + if (dev->phy.n->spur_avoid == B43_SPUR_AVOID_FORCE) { - avoid = true; + avoid = 1; } else if (!b43_channel_type_is_40mhz(phy->channel_type)) { if ((ch >= 5 && ch <= 8) || ch == 13 || ch == 14) - avoid = true; + avoid = 1; } else { /* 40MHz */ if (nphy->aband_spurwar_en && (ch == 38 || ch == 102 || ch == 118)) avoid = dev->dev->chip_id == 0x4716; } - b43_nphy_pmu_spur_avoid(dev, avoid); + switch (dev->dev->bus_type) { +#ifdef CONFIG_B43_BCMA + case B43_BUS_BCMA: + cc = &dev->dev->bdev->bus->drv_cc; + bcma_pmu_spuravoid_pllupdate(cc, avoid); + break; +#endif +#ifdef CONFIG_B43_SSB + case B43_BUS_SSB: + /* FIXME */ + break; +#endif + } if (dev->dev->chip_id == 43222 || dev->dev->chip_id == 43224 || dev->dev->chip_id == 43225) {
Do not implement this in b43, but use bcma_pmu_spuravoid_pllupdate(). Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de> --- drivers/net/wireless/b43/phy_n.c | 92 ++++++++------------------------------ 1 file changed, 18 insertions(+), 74 deletions(-)