Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d66be829 authored by Rafał Miłecki's avatar Rafał Miłecki Committed by John W. Linville
Browse files

b43: N-PHY: check for bustype before touching BCMA CC PLLs

parent aa1f2f0a
Loading
Loading
Loading
Loading
+61 −50
Original line number Diff line number Diff line
@@ -4048,9 +4048,13 @@ int b43_phy_initn(struct b43_wldev *dev)
/* http://bcm-v4.sipsolutions.net/802.11/PmuSpurAvoid */
static void b43_nphy_pmu_spur_avoid(struct b43_wldev *dev, bool avoid)
{
#ifdef CONFIG_B43_BCMA
	struct bcma_drv_cc *cc = &dev->dev->bdev->bus->drv_cc;
	struct bcma_drv_cc *cc;
	u32 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);
@@ -4084,8 +4088,10 @@ static void b43_nphy_pmu_spur_avoid(struct b43_wldev *dev, bool avoid)
				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 ||
			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);
@@ -4099,10 +4105,15 @@ static void b43_nphy_pmu_spur_avoid(struct b43_wldev *dev, bool avoid)
			return;
		}
		bcma_cc_set32(cc, BCMA_CC_PMU_CTL, pmu_ctl);
#else
	return;
		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,