All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/8] bcma misc updates
@ 2012-06-05 21:54 Hauke Mehrtens
  2012-06-05 21:55 ` [PATCH 1/8] bcma: extend workaround for bcm4331 Hauke Mehrtens
                   ` (8 more replies)
  0 siblings, 9 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-05 21:54 UTC (permalink / raw)
  To: linville; +Cc: zajec5, b43-dev, arend, linux-wireless, Hauke Mehrtens

These are some updates for bcma. Some are extending or completing some 
workarounds for PCIe based wireless cards. A patch adds 
bcma_pmu_spuravoid_pllupdate, used by brcmsmac and an other patch adds 
constants for the chip ids. This code is mostly based on code from 
brcmsmac and the Broadcom SDK for BCM47XX SoCs.

This was tested on a BCM4718 SoC with a BCM43224 PCIe and a BCM5357.
The Wifi part of the BCM4718 and BCM43224 is more or less working with 
brcmsmac, which need some more patches for that, but it has low speed 
and some times or with some access points I still get errors. The wifi 
of the BCM5357 does not work.

Hauke Mehrtens (8):
  bcma: extend workaround for bcm4331
  bcma: add constants for chip ids
  bcma: Fix for 4329b0 bad LPOM is detection
  bcma: add PCI ID for BCM43224
  bcma: complete workaround for BCMA43224 and BCM4313
  bcma: handle SoCs in pmu initialization
  bcma: add bcma_pmu_spuravoid_pllupdate()
  bcma: add mdelay bcma_pmu_resources_init()

 drivers/bcma/driver_chipcommon_pmu.c        |  355 +++++++++++++++++++++++----
 drivers/bcma/driver_mips.c                  |    8 +-
 drivers/bcma/driver_pci_host.c              |    8 +-
 drivers/bcma/host_pci.c                     |    1 +
 drivers/bcma/sprom.c                        |   18 +-
 include/linux/bcma/bcma.h                   |   30 +++
 include/linux/bcma/bcma_driver_chipcommon.h |   23 ++
 7 files changed, 381 insertions(+), 62 deletions(-)

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 1/8] bcma: extend workaround for bcm4331
  2012-06-05 21:54 [PATCH 0/8] bcma misc updates Hauke Mehrtens
@ 2012-06-05 21:55 ` Hauke Mehrtens
  2012-06-05 21:55 ` [PATCH 2/8] bcma: add constants for chip ids Hauke Mehrtens
                   ` (7 subsequent siblings)
  8 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-05 21:55 UTC (permalink / raw)
  To: linville; +Cc: zajec5, b43-dev, arend, linux-wireless, Hauke Mehrtens

This patch is based on a recent version of the Broadcom SDK.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 drivers/bcma/driver_chipcommon_pmu.c        |    3 +++
 include/linux/bcma/bcma_driver_chipcommon.h |    1 +
 2 files changed, 4 insertions(+)

diff --git a/drivers/bcma/driver_chipcommon_pmu.c b/drivers/bcma/driver_chipcommon_pmu.c
index 97f6495..65fae62 100644
--- a/drivers/bcma/driver_chipcommon_pmu.c
+++ b/drivers/bcma/driver_chipcommon_pmu.c
@@ -123,8 +123,11 @@ void bcma_chipco_bcm4331_ext_pa_lines_ctl(struct bcma_drv_cc *cc, bool enable)
 		val |= BCMA_CHIPCTL_4331_EXTPA_EN;
 		if (bus->chipinfo.pkg == 9 || bus->chipinfo.pkg == 11)
 			val |= BCMA_CHIPCTL_4331_EXTPA_ON_GPIO2_5;
+		else if (bus->chipinfo.rev > 0)
+			val |= BCMA_CHIPCTL_4331_EXTPA_EN2;
 	} else {
 		val &= ~BCMA_CHIPCTL_4331_EXTPA_EN;
+		val &= ~BCMA_CHIPCTL_4331_EXTPA_EN2;
 		val &= ~BCMA_CHIPCTL_4331_EXTPA_ON_GPIO2_5;
 	}
 	bcma_cc_write32(cc, BCMA_CC_CHIPCTL, val);
diff --git a/include/linux/bcma/bcma_driver_chipcommon.h b/include/linux/bcma/bcma_driver_chipcommon.h
index 8bbfe31..1e523cc 100644
--- a/include/linux/bcma/bcma_driver_chipcommon.h
+++ b/include/linux/bcma/bcma_driver_chipcommon.h
@@ -321,6 +321,7 @@
 #define BCMA_CHIPCTL_4331_OVR_PIPEAUXPWRDOWN	BIT(9)	/* override core control on pipe_AuxPowerDown */
 #define BCMA_CHIPCTL_4331_PCIE_AUXCLKEN		BIT(10)	/* pcie_auxclkenable */
 #define BCMA_CHIPCTL_4331_PCIE_PIPE_PLLDOWN	BIT(11)	/* pcie_pipe_pllpowerdown */
+#define BCMA_CHIPCTL_4331_EXTPA_EN2		BIT(12)	/* 0 ext pa disable, 1 ext pa enabled */
 #define BCMA_CHIPCTL_4331_BT_SHD0_ON_GPIO4	BIT(16)	/* enable bt_shd0 at gpio4 */
 #define BCMA_CHIPCTL_4331_BT_SHD1_ON_GPIO5	BIT(17)	/* enable bt_shd1 at gpio5 */
 
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 41+ messages in thread

* [PATCH 2/8] bcma: add constants for chip ids
  2012-06-05 21:54 [PATCH 0/8] bcma misc updates Hauke Mehrtens
  2012-06-05 21:55 ` [PATCH 1/8] bcma: extend workaround for bcm4331 Hauke Mehrtens
@ 2012-06-05 21:55 ` Hauke Mehrtens
  2012-06-06 11:51     ` Arend van Spriel
  2012-06-05 21:55 ` [PATCH 3/8] bcma: Fix for 4329b0 bad LPOM is detection Hauke Mehrtens
                   ` (6 subsequent siblings)
  8 siblings, 1 reply; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-05 21:55 UTC (permalink / raw)
  To: linville; +Cc: zajec5, b43-dev, arend, linux-wireless, Hauke Mehrtens

The chip IDs are used all over bcma and no constants where defined.
This patch adds the constants and makes bcma use them.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 drivers/bcma/driver_chipcommon_pmu.c |   81 +++++++++++++++++-----------------
 drivers/bcma/driver_mips.c           |    8 ++--
 drivers/bcma/driver_pci_host.c       |    8 ++--
 drivers/bcma/sprom.c                 |   18 ++++----
 include/linux/bcma/bcma.h            |   30 +++++++++++++
 5 files changed, 90 insertions(+), 55 deletions(-)

diff --git a/drivers/bcma/driver_chipcommon_pmu.c b/drivers/bcma/driver_chipcommon_pmu.c
index 65fae62..da8769e 100644
--- a/drivers/bcma/driver_chipcommon_pmu.c
+++ b/drivers/bcma/driver_chipcommon_pmu.c
@@ -59,10 +59,10 @@ static void bcma_pmu_pll_init(struct bcma_drv_cc *cc)
 	struct bcma_bus *bus = cc->core->bus;
 
 	switch (bus->chipinfo.id) {
-	case 0x4313:
-	case 0x4331:
-	case 43224:
-	case 43225:
+	case BCMA_CHIP_ID_BCM4313:
+	case BCMA_CHIP_ID_BCM4331:
+	case BCMA_CHIP_ID_BCM43224:
+	case BCMA_CHIP_ID_BCM43225:
 		break;
 	default:
 		pr_err("PLL init unknown for device 0x%04X\n",
@@ -76,13 +76,13 @@ static void bcma_pmu_resources_init(struct bcma_drv_cc *cc)
 	u32 min_msk = 0, max_msk = 0;
 
 	switch (bus->chipinfo.id) {
-	case 0x4313:
+	case BCMA_CHIP_ID_BCM4313:
 		min_msk = 0x200D;
 		max_msk = 0xFFFF;
 		break;
-	case 0x4331:
-	case 43224:
-	case 43225:
+	case BCMA_CHIP_ID_BCM4331:
+	case BCMA_CHIP_ID_BCM43224:
+	case BCMA_CHIP_ID_BCM43225:
 		break;
 	default:
 		pr_err("PMU resource config unknown for device 0x%04X\n",
@@ -101,10 +101,10 @@ static void bcma_pmu_swreg_init(struct bcma_drv_cc *cc)
 	struct bcma_bus *bus = cc->core->bus;
 
 	switch (bus->chipinfo.id) {
-	case 0x4313:
-	case 0x4331:
-	case 43224:
-	case 43225:
+	case BCMA_CHIP_ID_BCM4313:
+	case BCMA_CHIP_ID_BCM4331:
+	case BCMA_CHIP_ID_BCM43224:
+	case BCMA_CHIP_ID_BCM43225:
 		break;
 	default:
 		pr_err("PMU switch/regulators init unknown for device "
@@ -138,15 +138,15 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc *cc)
 	struct bcma_bus *bus = cc->core->bus;
 
 	switch (bus->chipinfo.id) {
-	case 0x4313:
+	case BCMA_CHIP_ID_BCM4313:
 		bcma_chipco_chipctl_maskset(cc, 0, ~0, 0x7);
 		break;
-	case 0x4331:
-	case 43431:
+	case BCMA_CHIP_ID_BCM4331:
+	case BCMA_CHIP_ID_BCM43431:
 		/* Ext PA lines must be enabled for tx on BCM4331 */
 		bcma_chipco_bcm4331_ext_pa_lines_ctl(cc, true);
 		break;
-	case 43224:
+	case BCMA_CHIP_ID_BCM43224:
 		if (bus->chipinfo.rev == 0) {
 			pr_err("Workarounds for 43224 rev 0 not fully "
 				"implemented\n");
@@ -155,7 +155,7 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc *cc)
 			bcma_chipco_chipctl_maskset(cc, 0, ~0, 0xF0);
 		}
 		break;
-	case 43225:
+	case BCMA_CHIP_ID_BCM43225:
 		break;
 	default:
 		pr_err("Workarounds unknown for device 0x%04X\n",
@@ -194,17 +194,17 @@ u32 bcma_pmu_alp_clock(struct bcma_drv_cc *cc)
 	struct bcma_bus *bus = cc->core->bus;
 
 	switch (bus->chipinfo.id) {
-	case 0x4716:
-	case 0x4748:
-	case 47162:
-	case 0x4313:
-	case 0x5357:
-	case 0x4749:
-	case 53572:
+	case BCMA_CHIP_ID_BCM4716:
+	case BCMA_CHIP_ID_BCM4748:
+	case BCMA_CHIP_ID_BCM47162:
+	case BCMA_CHIP_ID_BCM4313:
+	case BCMA_CHIP_ID_BCM5357:
+	case BCMA_CHIP_ID_BCM4749:
+	case BCMA_CHIP_ID_BCM53572:
 		/* always 20Mhz */
 		return 20000 * 1000;
-	case 0x5356:
-	case 0x5300:
+	case BCMA_CHIP_ID_BCM5356:
+	case BCMA_CHIP_ID_BCM4706:
 		/* always 25Mhz */
 		return 25000 * 1000;
 	default:
@@ -227,7 +227,8 @@ static u32 bcma_pmu_clock(struct bcma_drv_cc *cc, u32 pll0, u32 m)
 
 	BUG_ON(!m || m > 4);
 
-	if (bus->chipinfo.id == 0x5357 || bus->chipinfo.id == 0x4749) {
+	if (bus->chipinfo.id == BCMA_CHIP_ID_BCM5357 ||
+	    bus->chipinfo.id == BCMA_CHIP_ID_BCM4749) {
 		/* Detect failure in clock setting */
 		tmp = bcma_cc_read32(cc, BCMA_CC_CHIPSTAT);
 		if (tmp & 0x40000)
@@ -259,22 +260,22 @@ static u32 bcma_pmu_get_clockcontrol(struct bcma_drv_cc *cc)
 	struct bcma_bus *bus = cc->core->bus;
 
 	switch (bus->chipinfo.id) {
-	case 0x4716:
-	case 0x4748:
-	case 47162:
+	case BCMA_CHIP_ID_BCM4716:
+	case BCMA_CHIP_ID_BCM4748:
+	case BCMA_CHIP_ID_BCM47162:
 		return bcma_pmu_clock(cc, BCMA_CC_PMU4716_MAINPLL_PLL0,
 				      BCMA_CC_PMU5_MAINPLL_SSB);
-	case 0x5356:
+	case BCMA_CHIP_ID_BCM5356:
 		return bcma_pmu_clock(cc, BCMA_CC_PMU5356_MAINPLL_PLL0,
 				      BCMA_CC_PMU5_MAINPLL_SSB);
-	case 0x5357:
-	case 0x4749:
+	case BCMA_CHIP_ID_BCM5357:
+	case BCMA_CHIP_ID_BCM4749:
 		return bcma_pmu_clock(cc, BCMA_CC_PMU5357_MAINPLL_PLL0,
 				      BCMA_CC_PMU5_MAINPLL_SSB);
-	case 0x5300:
+	case BCMA_CHIP_ID_BCM4706:
 		return bcma_pmu_clock(cc, BCMA_CC_PMU4706_MAINPLL_PLL0,
 				      BCMA_CC_PMU5_MAINPLL_SSB);
-	case 53572:
+	case BCMA_CHIP_ID_BCM53572:
 		return 75000000;
 	default:
 		pr_warn("No backplane clock specified for %04X device, "
@@ -289,17 +290,17 @@ u32 bcma_pmu_get_clockcpu(struct bcma_drv_cc *cc)
 {
 	struct bcma_bus *bus = cc->core->bus;
 
-	if (bus->chipinfo.id == 53572)
+	if (bus->chipinfo.id == BCMA_CHIP_ID_BCM53572)
 		return 300000000;
 
 	if (cc->pmu.rev >= 5) {
 		u32 pll;
 		switch (bus->chipinfo.id) {
-		case 0x5356:
+		case BCMA_CHIP_ID_BCM5356:
 			pll = BCMA_CC_PMU5356_MAINPLL_PLL0;
 			break;
-		case 0x5357:
-		case 0x4749:
+		case BCMA_CHIP_ID_BCM5357:
+		case BCMA_CHIP_ID_BCM4749:
 			pll = BCMA_CC_PMU5357_MAINPLL_PLL0;
 			break;
 		default:
@@ -307,7 +308,7 @@ u32 bcma_pmu_get_clockcpu(struct bcma_drv_cc *cc)
 			break;
 		}
 
-		/* TODO: if (bus->chipinfo.id == 0x5300)
+		/* TODO: if (bus->chipinfo.id == BCMA_CHIP_ID_BCM4706)
 		  return si_4706_pmu_clock(sih, osh, cc, PMU4706_MAINPLL_PLL0, PMU5_MAINPLL_CPU); */
 		return bcma_pmu_clock(cc, pll, BCMA_CC_PMU5_MAINPLL_CPU);
 	}
diff --git a/drivers/bcma/driver_mips.c b/drivers/bcma/driver_mips.c
index c3e9dff..73ed3017 100644
--- a/drivers/bcma/driver_mips.c
+++ b/drivers/bcma/driver_mips.c
@@ -22,15 +22,15 @@
 /* The 47162a0 hangs when reading MIPS DMP registers registers */
 static inline bool bcma_core_mips_bcm47162a0_quirk(struct bcma_device *dev)
 {
-	return dev->bus->chipinfo.id == 47162 && dev->bus->chipinfo.rev == 0 &&
-	       dev->id.id == BCMA_CORE_MIPS_74K;
+	return dev->bus->chipinfo.id == BCMA_CHIP_ID_BCM47162 &&
+	       dev->bus->chipinfo.rev == 0 && dev->id.id == BCMA_CORE_MIPS_74K;
 }
 
 /* The 5357b0 hangs when reading USB20H DMP registers */
 static inline bool bcma_core_mips_bcm5357b0_quirk(struct bcma_device *dev)
 {
-	return (dev->bus->chipinfo.id == 0x5357 ||
-		dev->bus->chipinfo.id == 0x4749) &&
+	return (dev->bus->chipinfo.id == BCMA_CHIP_ID_BCM5357 ||
+		dev->bus->chipinfo.id == BCMA_CHIP_ID_BCM4749) &&
 	       dev->bus->chipinfo.pkg == 11 &&
 	       dev->id.id == BCMA_CORE_USB20_HOST;
 }
diff --git a/drivers/bcma/driver_pci_host.c b/drivers/bcma/driver_pci_host.c
index b9a86ed..d6e8a37 100644
--- a/drivers/bcma/driver_pci_host.c
+++ b/drivers/bcma/driver_pci_host.c
@@ -215,7 +215,8 @@ static int bcma_extpci_write_config(struct bcma_drv_pci *pc, unsigned int dev,
 	} else {
 		writel(val, mmio);
 
-		if (chipid == 0x4716 || chipid == 0x4748)
+		if (chipid == BCMA_CHIP_ID_BCM4716 ||
+		    chipid == BCMA_CHIP_ID_BCM4748)
 			readl(mmio);
 	}
 
@@ -434,13 +435,14 @@ void __devinit bcma_core_pci_hostmode_init(struct bcma_drv_pci *pc)
 	 * as mips can't generate 64-bit address on the
 	 * backplane.
 	 */
-	if (bus->chipinfo.id == 0x4716 || bus->chipinfo.id == 0x4748) {
+	if (bus->chipinfo.id == BCMA_CHIP_ID_BCM4716 ||
+	    bus->chipinfo.id == BCMA_CHIP_ID_BCM4748) {
 		pc_host->mem_resource.start = BCMA_SOC_PCI_MEM;
 		pc_host->mem_resource.end = BCMA_SOC_PCI_MEM +
 					    BCMA_SOC_PCI_MEM_SZ - 1;
 		pcicore_write32(pc, BCMA_CORE_PCI_SBTOPCI0,
 				BCMA_CORE_PCI_SBTOPCI_MEM | BCMA_SOC_PCI_MEM);
-	} else if (bus->chipinfo.id == 0x5300) {
+	} else if (bus->chipinfo.id == BCMA_CHIP_ID_BCM4706) {
 		tmp = BCMA_CORE_PCI_SBTOPCI_MEM;
 		tmp |= BCMA_CORE_PCI_SBTOPCI_PREF;
 		tmp |= BCMA_CORE_PCI_SBTOPCI_BURST;
diff --git a/drivers/bcma/sprom.c b/drivers/bcma/sprom.c
index f16f42d..e1eb598 100644
--- a/drivers/bcma/sprom.c
+++ b/drivers/bcma/sprom.c
@@ -468,11 +468,11 @@ static bool bcma_sprom_ext_available(struct bcma_bus *bus)
 	/* older chipcommon revisions use chip status register */
 	chip_status = bcma_read32(bus->drv_cc.core, BCMA_CC_CHIPSTAT);
 	switch (bus->chipinfo.id) {
-	case 0x4313:
+	case BCMA_CHIP_ID_BCM4313:
 		present_mask = BCMA_CC_CHIPST_4313_SPROM_PRESENT;
 		break;
 
-	case 0x4331:
+	case BCMA_CHIP_ID_BCM4331:
 		present_mask = BCMA_CC_CHIPST_4331_SPROM_PRESENT;
 		break;
 
@@ -494,16 +494,16 @@ static bool bcma_sprom_onchip_available(struct bcma_bus *bus)
 
 	chip_status = bcma_read32(bus->drv_cc.core, BCMA_CC_CHIPSTAT);
 	switch (bus->chipinfo.id) {
-	case 0x4313:
+	case BCMA_CHIP_ID_BCM4313:
 		present = chip_status & BCMA_CC_CHIPST_4313_OTP_PRESENT;
 		break;
 
-	case 0x4331:
+	case BCMA_CHIP_ID_BCM4331:
 		present = chip_status & BCMA_CC_CHIPST_4331_OTP_PRESENT;
 		break;
 
-	case 43224:
-	case 43225:
+	case BCMA_CHIP_ID_BCM43224:
+	case BCMA_CHIP_ID_BCM43225:
 		/* for these chips OTP is always available */
 		present = true;
 		break;
@@ -579,13 +579,15 @@ int bcma_sprom_get(struct bcma_bus *bus)
 	if (!sprom)
 		return -ENOMEM;
 
-	if (bus->chipinfo.id == 0x4331 || bus->chipinfo.id == 43431)
+	if (bus->chipinfo.id == BCMA_CHIP_ID_BCM4331 ||
+	    bus->chipinfo.id == BCMA_CHIP_ID_BCM43431)
 		bcma_chipco_bcm4331_ext_pa_lines_ctl(&bus->drv_cc, false);
 
 	pr_debug("SPROM offset 0x%x\n", offset);
 	bcma_sprom_read(bus, offset, sprom);
 
-	if (bus->chipinfo.id == 0x4331 || bus->chipinfo.id == 43431)
+	if (bus->chipinfo.id == BCMA_CHIP_ID_BCM4331 ||
+	    bus->chipinfo.id == BCMA_CHIP_ID_BCM43431)
 		bcma_chipco_bcm4331_ext_pa_lines_ctl(&bus->drv_cc, true);
 
 	err = bcma_sprom_valid(sprom);
diff --git a/include/linux/bcma/bcma.h b/include/linux/bcma/bcma.h
index 8deaf6d..3f0d564 100644
--- a/include/linux/bcma/bcma.h
+++ b/include/linux/bcma/bcma.h
@@ -130,6 +130,36 @@ struct bcma_host_ops {
 
 #define BCMA_MAX_NR_CORES		16
 
+/* Chip IDs of PCIe devices */
+#define BCMA_CHIP_ID_BCM4313	0x4313
+#define BCMA_CHIP_ID_BCM43224	43224
+#define  BCMA_PKG_ID_BCM43224_FAB_CSM	0x8
+#define  BCMA_PKG_ID_BCM43224_FAB_SMIC	0xa
+#define BCMA_CHIP_ID_BCM43225	43225
+#define BCMA_CHIP_ID_BCM43227	43227
+#define BCMA_CHIP_ID_BCM43228	43228
+#define BCMA_CHIP_ID_BCM43421	43421
+#define BCMA_CHIP_ID_BCM43428	43428
+#define BCMA_CHIP_ID_BCM43431	43431
+#define BCMA_CHIP_ID_BCM43460	43460
+#define BCMA_CHIP_ID_BCM4331	0x4331
+#define BCMA_CHIP_ID_BCM6362	0x6362
+#define BCMA_CHIP_ID_BCM4360	0x4360
+#define BCMA_CHIP_ID_BCM4352	0x4352
+
+/* Chip IDs of SoCs */
+#define BCMA_CHIP_ID_BCM4706	0x5300
+#define BCMA_CHIP_ID_BCM4716	0x4716
+#define  BCMA_PKG_ID_BCM4716	8
+#define  BCMA_PKG_ID_BCM4717	9
+#define  BCMA_PKG_ID_BCM4718	10
+#define BCMA_CHIP_ID_BCM47162	47162
+#define BCMA_CHIP_ID_BCM4748	0x4748
+#define BCMA_CHIP_ID_BCM4749	0x4749
+#define BCMA_CHIP_ID_BCM5356	0x5356
+#define BCMA_CHIP_ID_BCM5357	0x5357
+#define BCMA_CHIP_ID_BCM53572	53572
+
 struct bcma_device {
 	struct bcma_bus *bus;
 	struct bcma_device_id id;
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 41+ messages in thread

* [PATCH 3/8] bcma: Fix for 4329b0 bad LPOM is detection
  2012-06-05 21:54 [PATCH 0/8] bcma misc updates Hauke Mehrtens
  2012-06-05 21:55 ` [PATCH 1/8] bcma: extend workaround for bcm4331 Hauke Mehrtens
  2012-06-05 21:55 ` [PATCH 2/8] bcma: add constants for chip ids Hauke Mehrtens
@ 2012-06-05 21:55 ` Hauke Mehrtens
  2012-06-06  8:08     ` Florian Fainelli
  2012-06-05 21:55 ` [PATCH 4/8] bcma: add PCI ID for BCM43224 Hauke Mehrtens
                   ` (5 subsequent siblings)
  8 siblings, 1 reply; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-05 21:55 UTC (permalink / raw)
  To: linville; +Cc: zajec5, b43-dev, arend, linux-wireless, Hauke Mehrtens

This workaround should be triggered based on the chipid and rev and not
the core id and rev. This is based on code in the Broadcom SDK.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 drivers/bcma/driver_chipcommon_pmu.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/bcma/driver_chipcommon_pmu.c b/drivers/bcma/driver_chipcommon_pmu.c
index da8769e..dd2b55d 100644
--- a/drivers/bcma/driver_chipcommon_pmu.c
+++ b/drivers/bcma/driver_chipcommon_pmu.c
@@ -166,6 +166,7 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc *cc)
 void bcma_pmu_init(struct bcma_drv_cc *cc)
 {
 	u32 pmucap;
+	struct bcma_bus *bus = cc->core->bus;
 
 	pmucap = bcma_cc_read32(cc, BCMA_CC_PMU_CAP);
 	cc->pmu.rev = (pmucap & BCMA_CC_PMU_CAP_REVISION);
@@ -180,7 +181,7 @@ void bcma_pmu_init(struct bcma_drv_cc *cc)
 		bcma_cc_set32(cc, BCMA_CC_PMU_CTL,
 			     BCMA_CC_PMU_CTL_NOILPONW);
 
-	if (cc->core->id.id == 0x4329 && cc->core->id.rev == 2)
+	if (bus->chipinfo.id == 0x4329 && bus->chipinfo.rev == 2)
 		pr_err("Fix for 4329b0 bad LPOM state not implemented!\n");
 
 	bcma_pmu_pll_init(cc);
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 41+ messages in thread

* [PATCH 4/8] bcma: add PCI ID for BCM43224
  2012-06-05 21:54 [PATCH 0/8] bcma misc updates Hauke Mehrtens
                   ` (2 preceding siblings ...)
  2012-06-05 21:55 ` [PATCH 3/8] bcma: Fix for 4329b0 bad LPOM is detection Hauke Mehrtens
@ 2012-06-05 21:55 ` Hauke Mehrtens
  2012-06-05 21:55 ` [PATCH 5/8] bcma: complete workaround for BCMA43224 and BCM4313 Hauke Mehrtens
                   ` (4 subsequent siblings)
  8 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-05 21:55 UTC (permalink / raw)
  To: linville; +Cc: zajec5, b43-dev, arend, linux-wireless, Hauke Mehrtens

This ID was found on the PCIe wireless card on the board of a Netgear
WNDR3400 using a bcm4716. The device with this ID is identified by b43
as "Broadcom 43224 WLAN".

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 drivers/bcma/host_pci.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/bcma/host_pci.c b/drivers/bcma/host_pci.c
index f7fbae7..747efb7 100644
--- a/drivers/bcma/host_pci.c
+++ b/drivers/bcma/host_pci.c
@@ -269,6 +269,7 @@ static SIMPLE_DEV_PM_OPS(bcma_pm_ops, bcma_host_pci_suspend,
 
 static DEFINE_PCI_DEVICE_TABLE(bcma_pci_bridge_tbl) = {
 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x0576) },
+	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 43224) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4331) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4353) },
 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4357) },
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 41+ messages in thread

* [PATCH 5/8] bcma: complete workaround for BCMA43224 and BCM4313
  2012-06-05 21:54 [PATCH 0/8] bcma misc updates Hauke Mehrtens
                   ` (3 preceding siblings ...)
  2012-06-05 21:55 ` [PATCH 4/8] bcma: add PCI ID for BCM43224 Hauke Mehrtens
@ 2012-06-05 21:55 ` Hauke Mehrtens
  2012-06-05 21:55 ` [PATCH 6/8] bcma: handle SoCs in pmu initialization Hauke Mehrtens
                   ` (3 subsequent siblings)
  8 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-05 21:55 UTC (permalink / raw)
  To: linville; +Cc: zajec5, b43-dev, arend, linux-wireless, Hauke Mehrtens

This code is based on the Broadcom SDK and brcmsmac.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 drivers/bcma/driver_chipcommon_pmu.c        |   22 +++++++++++++++++-----
 include/linux/bcma/bcma_driver_chipcommon.h |    8 ++++++++
 2 files changed, 25 insertions(+), 5 deletions(-)

diff --git a/drivers/bcma/driver_chipcommon_pmu.c b/drivers/bcma/driver_chipcommon_pmu.c
index dd2b55d..2ebba9c 100644
--- a/drivers/bcma/driver_chipcommon_pmu.c
+++ b/drivers/bcma/driver_chipcommon_pmu.c
@@ -139,7 +139,11 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc *cc)
 
 	switch (bus->chipinfo.id) {
 	case BCMA_CHIP_ID_BCM4313:
-		bcma_chipco_chipctl_maskset(cc, 0, ~0, 0x7);
+		/* enable 12 mA drive strenth for 4313 and set chipControl
+		   register bit 1 */
+		bcma_chipco_chipctl_maskset(cc, 0,
+					    BCMA_CCTRL_4313_12MA_LED_DRIVE,
+					    BCMA_CCTRL_4313_12MA_LED_DRIVE);
 		break;
 	case BCMA_CHIP_ID_BCM4331:
 	case BCMA_CHIP_ID_BCM43431:
@@ -147,12 +151,20 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc *cc)
 		bcma_chipco_bcm4331_ext_pa_lines_ctl(cc, true);
 		break;
 	case BCMA_CHIP_ID_BCM43224:
+	case BCMA_CHIP_ID_BCM43421:
+		/* enable 12 mA drive strenth for 43224 and set chipControl
+		   register bit 15 */
 		if (bus->chipinfo.rev == 0) {
-			pr_err("Workarounds for 43224 rev 0 not fully "
-				"implemented\n");
-			bcma_chipco_chipctl_maskset(cc, 0, ~0, 0x00F000F0);
+			bcma_cc_maskset32(cc, BCMA_CC_CHIPCTL,
+					  BCMA_CCTRL_43224_GPIO_TOGGLE,
+					  BCMA_CCTRL_43224_GPIO_TOGGLE);
+			bcma_chipco_chipctl_maskset(cc, 0,
+						    BCMA_CCTRL_43224A0_12MA_LED_DRIVE,
+						    BCMA_CCTRL_43224A0_12MA_LED_DRIVE);
 		} else {
-			bcma_chipco_chipctl_maskset(cc, 0, ~0, 0xF0);
+			bcma_chipco_chipctl_maskset(cc, 0,
+						    BCMA_CCTRL_43224B0_12MA_LED_DRIVE,
+						    BCMA_CCTRL_43224B0_12MA_LED_DRIVE);
 		}
 		break;
 	case BCMA_CHIP_ID_BCM43225:
diff --git a/include/linux/bcma/bcma_driver_chipcommon.h b/include/linux/bcma/bcma_driver_chipcommon.h
index 1e523cc..09f31ad 100644
--- a/include/linux/bcma/bcma_driver_chipcommon.h
+++ b/include/linux/bcma/bcma_driver_chipcommon.h
@@ -325,6 +325,14 @@
 #define BCMA_CHIPCTL_4331_BT_SHD0_ON_GPIO4	BIT(16)	/* enable bt_shd0 at gpio4 */
 #define BCMA_CHIPCTL_4331_BT_SHD1_ON_GPIO5	BIT(17)	/* enable bt_shd1 at gpio5 */
 
+/* 43224 chip-specific ChipControl register bits */
+#define BCMA_CCTRL_43224_GPIO_TOGGLE		0x8000		/* gpio[3:0] pins as btcoex or s/w gpio */
+#define BCMA_CCTRL_43224A0_12MA_LED_DRIVE	0x00F000F0	/* 12 mA drive strength */
+#define BCMA_CCTRL_43224B0_12MA_LED_DRIVE	0xF0		/* 12 mA drive strength for later 43224s */
+
+/* 4313 Chip specific ChipControl register bits */
+#define BCMA_CCTRL_4313_12MA_LED_DRIVE		0x00000007	/* 12 mA drive strengh for later 4313 */
+
 /* Data for the PMU, if available.
  * Check availability with ((struct bcma_chipcommon)->capabilities & BCMA_CC_CAP_PMU)
  */
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 41+ messages in thread

* [PATCH 6/8] bcma: handle SoCs in pmu initialization
  2012-06-05 21:54 [PATCH 0/8] bcma misc updates Hauke Mehrtens
                   ` (4 preceding siblings ...)
  2012-06-05 21:55 ` [PATCH 5/8] bcma: complete workaround for BCMA43224 and BCM4313 Hauke Mehrtens
@ 2012-06-05 21:55 ` Hauke Mehrtens
  2012-06-06 12:19     ` Florian Fainelli
  2012-06-05 21:55 ` [PATCH 7/8] bcma: add bcma_pmu_spuravoid_pllupdate() Hauke Mehrtens
                   ` (2 subsequent siblings)
  8 siblings, 1 reply; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-05 21:55 UTC (permalink / raw)
  To: linville; +Cc: zajec5, b43-dev, arend, linux-wireless, Hauke Mehrtens

The SoCs do not need any special handling in bcma_pmu_pll_init(),
bcma_pmu_resources_init(), bcma_pmu_swreg_init() and
bcma_pmu_workarounds. This patches suppresses some warnings in the log.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 drivers/bcma/driver_chipcommon_pmu.c |   32 ++++++++++++++++++++++++++++++++
 1 file changed, 32 insertions(+)

diff --git a/drivers/bcma/driver_chipcommon_pmu.c b/drivers/bcma/driver_chipcommon_pmu.c
index 2ebba9c..9bf2dff 100644
--- a/drivers/bcma/driver_chipcommon_pmu.c
+++ b/drivers/bcma/driver_chipcommon_pmu.c
@@ -63,6 +63,14 @@ static void bcma_pmu_pll_init(struct bcma_drv_cc *cc)
 	case BCMA_CHIP_ID_BCM4331:
 	case BCMA_CHIP_ID_BCM43224:
 	case BCMA_CHIP_ID_BCM43225:
+	case BCMA_CHIP_ID_BCM4716:
+	case BCMA_CHIP_ID_BCM4748:
+	case BCMA_CHIP_ID_BCM47162:
+	case BCMA_CHIP_ID_BCM4749:
+	case BCMA_CHIP_ID_BCM5357:
+	case BCMA_CHIP_ID_BCM5356:
+	case BCMA_CHIP_ID_BCM53572:
+	case BCMA_CHIP_ID_BCM4706:
 		break;
 	default:
 		pr_err("PLL init unknown for device 0x%04X\n",
@@ -83,6 +91,14 @@ static void bcma_pmu_resources_init(struct bcma_drv_cc *cc)
 	case BCMA_CHIP_ID_BCM4331:
 	case BCMA_CHIP_ID_BCM43224:
 	case BCMA_CHIP_ID_BCM43225:
+	case BCMA_CHIP_ID_BCM4716:
+	case BCMA_CHIP_ID_BCM4748:
+	case BCMA_CHIP_ID_BCM47162:
+	case BCMA_CHIP_ID_BCM4749:
+	case BCMA_CHIP_ID_BCM5357:
+	case BCMA_CHIP_ID_BCM5356:
+	case BCMA_CHIP_ID_BCM53572:
+	case BCMA_CHIP_ID_BCM4706:
 		break;
 	default:
 		pr_err("PMU resource config unknown for device 0x%04X\n",
@@ -105,6 +121,14 @@ static void bcma_pmu_swreg_init(struct bcma_drv_cc *cc)
 	case BCMA_CHIP_ID_BCM4331:
 	case BCMA_CHIP_ID_BCM43224:
 	case BCMA_CHIP_ID_BCM43225:
+	case BCMA_CHIP_ID_BCM4716:
+	case BCMA_CHIP_ID_BCM4748:
+	case BCMA_CHIP_ID_BCM47162:
+	case BCMA_CHIP_ID_BCM4749:
+	case BCMA_CHIP_ID_BCM5357:
+	case BCMA_CHIP_ID_BCM5356:
+	case BCMA_CHIP_ID_BCM53572:
+	case BCMA_CHIP_ID_BCM4706:
 		break;
 	default:
 		pr_err("PMU switch/regulators init unknown for device "
@@ -168,6 +192,14 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc *cc)
 		}
 		break;
 	case BCMA_CHIP_ID_BCM43225:
+	case BCMA_CHIP_ID_BCM4716:
+	case BCMA_CHIP_ID_BCM4748:
+	case BCMA_CHIP_ID_BCM47162:
+	case BCMA_CHIP_ID_BCM4749:
+	case BCMA_CHIP_ID_BCM5357:
+	case BCMA_CHIP_ID_BCM5356:
+	case BCMA_CHIP_ID_BCM53572:
+	case BCMA_CHIP_ID_BCM4706:
 		break;
 	default:
 		pr_err("Workarounds unknown for device 0x%04X\n",
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 41+ messages in thread

* [PATCH 7/8] bcma: add bcma_pmu_spuravoid_pllupdate()
  2012-06-05 21:54 [PATCH 0/8] bcma misc updates Hauke Mehrtens
                   ` (5 preceding siblings ...)
  2012-06-05 21:55 ` [PATCH 6/8] bcma: handle SoCs in pmu initialization Hauke Mehrtens
@ 2012-06-05 21:55 ` Hauke Mehrtens
  2012-06-10 16:53     ` Rafał Miłecki
  2012-06-05 21:55 ` [PATCH 8/8] bcma: add mdelay bcma_pmu_resources_init() Hauke Mehrtens
  2012-06-29  7:44   ` Rafał Miłecki
  8 siblings, 1 reply; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-05 21:55 UTC (permalink / raw)
  To: linville; +Cc: zajec5, b43-dev, arend, linux-wireless, Hauke Mehrtens

This function is needed by brcmsmac. This code is based on code from
the Broadcom SDK.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 drivers/bcma/driver_chipcommon_pmu.c        |  211 ++++++++++++++++++++++++++-
 include/linux/bcma/bcma_driver_chipcommon.h |   14 ++
 2 files changed, 224 insertions(+), 1 deletion(-)

diff --git a/drivers/bcma/driver_chipcommon_pmu.c b/drivers/bcma/driver_chipcommon_pmu.c
index 9bf2dff..ea054a2 100644
--- a/drivers/bcma/driver_chipcommon_pmu.c
+++ b/drivers/bcma/driver_chipcommon_pmu.c
@@ -3,7 +3,8 @@
  * ChipCommon Power Management Unit driver
  *
  * Copyright 2009, Michael Buesch <m@bues.ch>
- * Copyright 2007, Broadcom Corporation
+ * Copyright 2007, 2011, Broadcom Corporation
+ * Copyright 2011, 2012, Hauke Mehrtens <hauke@hauke-m.de>
  *
  * Licensed under the GNU/GPL. See COPYING for details.
  */
@@ -360,3 +361,211 @@ u32 bcma_pmu_get_clockcpu(struct bcma_drv_cc *cc)
 
 	return bcma_pmu_get_clockcontrol(cc);
 }
+
+void bcma_pmu_spuravoid_pllupdate(struct bcma_drv_cc *cc, int spuravoid)
+{
+	u32 tmp = 0;
+	u8 phypll_offset = 0;
+	u8 bcm5357_bcm43236_p1div[] = {0x1, 0x5, 0x5};
+	u8 bcm5357_bcm43236_ndiv[] = {0x30, 0xf6, 0xfc};
+	struct bcma_bus *bus = cc->core->bus;
+
+	switch (bus->chipinfo.id) {
+	case BCMA_CHIP_ID_BCM5357:
+	case BCMA_CHIP_ID_BCM4749:
+	case BCMA_CHIP_ID_BCM6362:
+	case BCMA_CHIP_ID_BCM53572:
+
+		if  (bus->chipinfo.id == BCMA_CHIP_ID_BCM6362 &&
+		     bus->chipinfo.rev == 0) {
+			/* 6362a0 (same clks as 4322[4-6]) */
+			if (spuravoid == 1) {
+				bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL0,
+						      0x11500010);
+				bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL1,
+						      0x000C0C06);
+				bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL2,
+						      0x0F600a08);
+				bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL3,
+						      0x00000000);
+				bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL4,
+						      0x2001E920);
+				bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL5,
+						      0x88888815);
+			} else {
+				bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL0,
+						      0x11100010);
+				bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL1,
+						      0x000c0c06);
+				bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL2,
+						      0x03000a08);
+				bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL3,
+						      0x00000000);
+				bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL4,
+						      0x200005c0);
+				bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL5,
+						      0x88888815);
+			}
+
+		} else {
+			/* 5357[ab]0, 43236[ab]0, and 6362b0 */
+
+			/* BCM5357 needs to touch PLL1_PLLCTL[02],
+			   so offset PLL0_PLLCTL[02] by 6 */
+			phypll_offset = (bus->chipinfo.id == BCMA_CHIP_ID_BCM5357 ||
+			       bus->chipinfo.id == BCMA_CHIP_ID_BCM4749 ||
+			       bus->chipinfo.id == BCMA_CHIP_ID_BCM53572) ? 6 : 0;
+
+			/* RMW only the P1 divider */
+			bcma_cc_write32(cc, BCMA_CC_PLLCTL_ADDR,
+					BCMA_CC_PMU_PLL_CTL0 + phypll_offset);
+			tmp = bcma_cc_read32(cc, BCMA_CC_PLLCTL_DATA);
+			tmp &= (~(BCMA_CC_PMU1_PLL0_PC0_P1DIV_MASK));
+			tmp |= (bcm5357_bcm43236_p1div[spuravoid] << BCMA_CC_PMU1_PLL0_PC0_P1DIV_SHIFT);
+			bcma_cc_write32(cc, BCMA_CC_PLLCTL_DATA, tmp);
+
+			/* RMW only the int feedback divider */
+			bcma_cc_write32(cc, BCMA_CC_PLLCTL_ADDR,
+					BCMA_CC_PMU_PLL_CTL2 + phypll_offset);
+			tmp = bcma_cc_read32(cc, BCMA_CC_PLLCTL_DATA);
+			tmp &= ~(BCMA_CC_PMU1_PLL0_PC2_NDIV_INT_MASK);
+			tmp |= (bcm5357_bcm43236_ndiv[spuravoid]) << BCMA_CC_PMU1_PLL0_PC2_NDIV_INT_SHIFT;
+			bcma_cc_write32(cc, BCMA_CC_PLLCTL_DATA, tmp);
+		}
+
+		tmp = 1 << 10;
+		break;
+
+	case BCMA_CHIP_ID_BCM4331:
+	case BCMA_CHIP_ID_BCM43431:
+		if (spuravoid == 2) {
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL0,
+					      0x11500014);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL2,
+					      0x0FC00a08);
+		} else if (spuravoid == 1) {
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL0,
+					      0x11500014);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL2,
+					      0x0F600a08);
+		} else {
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL0,
+					      0x11100014);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL2,
+					      0x03000a08);
+		}
+		tmp = 1 << 10;
+		break;
+
+	case BCMA_CHIP_ID_BCM43224:
+	case BCMA_CHIP_ID_BCM43225:
+	case BCMA_CHIP_ID_BCM43421:
+		if (spuravoid == 1) {
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL0,
+					      0x11500010);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL1,
+					      0x000C0C06);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL2,
+					      0x0F600a08);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL3,
+					      0x00000000);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL4,
+					      0x2001E920);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL5,
+					      0x88888815);
+		} else {
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL0,
+					      0x11100010);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL1,
+					      0x000c0c06);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL2,
+					      0x03000a08);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL3,
+					      0x00000000);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL4,
+					      0x200005c0);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL5,
+					      0x88888815);
+		}
+		tmp = 1 << 10;
+		break;
+
+	case BCMA_CHIP_ID_BCM4716:
+	case BCMA_CHIP_ID_BCM4748:
+	case BCMA_CHIP_ID_BCM47162:
+		if (spuravoid == 1) {
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL0,
+					      0x11500060);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL1,
+					      0x080C0C06);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL2,
+					      0x0F600000);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL3,
+					      0x00000000);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL4,
+					      0x2001E924);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL5,
+					      0x88888815);
+		} else {
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL0,
+					      0x11100060);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL1,
+					      0x080c0c06);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL2,
+					      0x03000000);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL3,
+					      0x00000000);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL4,
+					      0x200005c0);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL5,
+					      0x88888815);
+		}
+
+		tmp = 3 << 9;
+		break;
+
+	case BCMA_CHIP_ID_BCM43227:
+	case BCMA_CHIP_ID_BCM43228:
+	case BCMA_CHIP_ID_BCM43428:
+		/* LCNXN */
+		/* PLL Settings for spur avoidance on/off mode,
+		   no on2 support for 43228A0 */
+		if (spuravoid == 1) {
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL0,
+					      0x01100014);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL1,
+					      0x040C0C06);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL2,
+					      0x03140A08);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL3,
+					      0x00333333);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL4,
+					      0x202C2820);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL5,
+					      0x88888815);
+		} else {
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL0,
+					      0x11100014);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL1,
+					      0x040c0c06);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL2,
+					      0x03000a08);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL3,
+					      0x00000000);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL4,
+					      0x200005c0);
+			bcma_chipco_pll_write(cc, BCMA_CC_PMU_PLL_CTL5,
+					      0x88888815);
+		}
+		tmp = 1 << 10;
+		break;
+	default:
+		pr_err("unknown spuravoidance settings for chip 0x%04X, not"
+		       " changing PLL\n", bus->chipinfo.id);
+		break;
+	}
+
+	tmp |= bcma_cc_read32(cc, BCMA_CC_PMU_CTL);
+	bcma_cc_write32(cc, BCMA_CC_PMU_CTL, tmp);
+}
+EXPORT_SYMBOL_GPL(bcma_pmu_spuravoid_pllupdate);
diff --git a/include/linux/bcma/bcma_driver_chipcommon.h b/include/linux/bcma/bcma_driver_chipcommon.h
index 09f31ad..12975ea 100644
--- a/include/linux/bcma/bcma_driver_chipcommon.h
+++ b/include/linux/bcma/bcma_driver_chipcommon.h
@@ -308,6 +308,19 @@
 #define BCMA_CC_PPL_PCHI_OFF		5
 #define BCMA_CC_PPL_PCHI_MASK		0x0000003f
 
+#define BCMA_CC_PMU_PLL_CTL0		0
+#define BCMA_CC_PMU_PLL_CTL1		1
+#define BCMA_CC_PMU_PLL_CTL2		2
+#define BCMA_CC_PMU_PLL_CTL3		3
+#define BCMA_CC_PMU_PLL_CTL4		4
+#define BCMA_CC_PMU_PLL_CTL5		5
+
+#define BCMA_CC_PMU1_PLL0_PC0_P1DIV_MASK	0x00f00000
+#define BCMA_CC_PMU1_PLL0_PC0_P1DIV_SHIFT	20
+
+#define BCMA_CC_PMU1_PLL0_PC2_NDIV_INT_MASK	0x1ff00000
+#define BCMA_CC_PMU1_PLL0_PC2_NDIV_INT_SHIFT	20
+
 /* BCM4331 ChipControl numbers. */
 #define BCMA_CHIPCTL_4331_BT_COEXIST		BIT(0)	/* 0 disable */
 #define BCMA_CHIPCTL_4331_SECI			BIT(1)	/* 0 SECI is disabled (JATG functional) */
@@ -420,5 +433,6 @@ extern void bcma_chipco_chipctl_maskset(struct bcma_drv_cc *cc,
 					u32 offset, u32 mask, u32 set);
 extern void bcma_chipco_regctl_maskset(struct bcma_drv_cc *cc,
 				       u32 offset, u32 mask, u32 set);
+extern void bcma_pmu_spuravoid_pllupdate(struct bcma_drv_cc *cc, int spuravoid);
 
 #endif /* LINUX_BCMA_DRIVER_CC_H_ */
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 41+ messages in thread

* [PATCH 8/8] bcma: add mdelay bcma_pmu_resources_init()
  2012-06-05 21:54 [PATCH 0/8] bcma misc updates Hauke Mehrtens
                   ` (6 preceding siblings ...)
  2012-06-05 21:55 ` [PATCH 7/8] bcma: add bcma_pmu_spuravoid_pllupdate() Hauke Mehrtens
@ 2012-06-05 21:55 ` Hauke Mehrtens
  2012-06-29  7:44   ` Rafał Miłecki
  8 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-05 21:55 UTC (permalink / raw)
  To: linville; +Cc: zajec5, b43-dev, arend, linux-wireless, Hauke Mehrtens

This is based on code from brcmsmac.

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
---
 drivers/bcma/driver_chipcommon_pmu.c |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/bcma/driver_chipcommon_pmu.c b/drivers/bcma/driver_chipcommon_pmu.c
index ea054a2..812ea41 100644
--- a/drivers/bcma/driver_chipcommon_pmu.c
+++ b/drivers/bcma/driver_chipcommon_pmu.c
@@ -111,6 +111,9 @@ static void bcma_pmu_resources_init(struct bcma_drv_cc *cc)
 		bcma_cc_write32(cc, BCMA_CC_PMU_MINRES_MSK, min_msk);
 	if (max_msk)
 		bcma_cc_write32(cc, BCMA_CC_PMU_MAXRES_MSK, max_msk);
+
+	/* Add some delay; allow resources to come up and settle. */
+	mdelay(2);
 }
 
 static void bcma_pmu_swreg_init(struct bcma_drv_cc *cc)
-- 
1.7.9.5


^ permalink raw reply related	[flat|nested] 41+ messages in thread

* Re: [PATCH 3/8] bcma: Fix for 4329b0 bad LPOM is detection
  2012-06-05 21:55 ` [PATCH 3/8] bcma: Fix for 4329b0 bad LPOM is detection Hauke Mehrtens
@ 2012-06-06  8:08     ` Florian Fainelli
  0 siblings, 0 replies; 41+ messages in thread
From: Florian Fainelli @ 2012-06-06  8:08 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: linville, zajec5, b43-dev, arend, linux-wireless

Hi Hauke,

On Tuesday 05 June 2012 23:55:02 Hauke Mehrtens wrote:
> This workaround should be triggered based on the chipid and rev and not
> the core id and rev. This is based on code in the Broadcom SDK.
> 
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
> ---
>  drivers/bcma/driver_chipcommon_pmu.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/bcma/driver_chipcommon_pmu.c 
b/drivers/bcma/driver_chipcommon_pmu.c
> index da8769e..dd2b55d 100644
> --- a/drivers/bcma/driver_chipcommon_pmu.c
> +++ b/drivers/bcma/driver_chipcommon_pmu.c
> @@ -166,6 +166,7 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc *cc)
>  void bcma_pmu_init(struct bcma_drv_cc *cc)
>  {
>  	u32 pmucap;
> +	struct bcma_bus *bus = cc->core->bus;
>  
>  	pmucap = bcma_cc_read32(cc, BCMA_CC_PMU_CAP);
>  	cc->pmu.rev = (pmucap & BCMA_CC_PMU_CAP_REVISION);
> @@ -180,7 +181,7 @@ void bcma_pmu_init(struct bcma_drv_cc *cc)
>  		bcma_cc_set32(cc, BCMA_CC_PMU_CTL,
>  			     BCMA_CC_PMU_CTL_NOILPONW);
>  
> -	if (cc->core->id.id == 0x4329 && cc->core->id.rev == 2)
> +	if (bus->chipinfo.id == 0x4329 && bus->chipinfo.rev == 2)
>  		pr_err("Fix for 4329b0 bad LPOM state not implemented!\n");

Does not that deserve a new define to be in line with your previous patch?
--
Florian

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 3/8] bcma: Fix for 4329b0 bad LPOM is detection
@ 2012-06-06  8:08     ` Florian Fainelli
  0 siblings, 0 replies; 41+ messages in thread
From: Florian Fainelli @ 2012-06-06  8:08 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: linville, zajec5, b43-dev, arend, linux-wireless

Hi Hauke,

On Tuesday 05 June 2012 23:55:02 Hauke Mehrtens wrote:
> This workaround should be triggered based on the chipid and rev and not
> the core id and rev. This is based on code in the Broadcom SDK.
> 
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
> ---
>  drivers/bcma/driver_chipcommon_pmu.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/bcma/driver_chipcommon_pmu.c 
b/drivers/bcma/driver_chipcommon_pmu.c
> index da8769e..dd2b55d 100644
> --- a/drivers/bcma/driver_chipcommon_pmu.c
> +++ b/drivers/bcma/driver_chipcommon_pmu.c
> @@ -166,6 +166,7 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc *cc)
>  void bcma_pmu_init(struct bcma_drv_cc *cc)
>  {
>  	u32 pmucap;
> +	struct bcma_bus *bus = cc->core->bus;
>  
>  	pmucap = bcma_cc_read32(cc, BCMA_CC_PMU_CAP);
>  	cc->pmu.rev = (pmucap & BCMA_CC_PMU_CAP_REVISION);
> @@ -180,7 +181,7 @@ void bcma_pmu_init(struct bcma_drv_cc *cc)
>  		bcma_cc_set32(cc, BCMA_CC_PMU_CTL,
>  			     BCMA_CC_PMU_CTL_NOILPONW);
>  
> -	if (cc->core->id.id == 0x4329 && cc->core->id.rev == 2)
> +	if (bus->chipinfo.id == 0x4329 && bus->chipinfo.rev == 2)
>  		pr_err("Fix for 4329b0 bad LPOM state not implemented!\n");

Does not that deserve a new define to be in line with your previous patch?
--
Florian

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 3/8] bcma: Fix for 4329b0 bad LPOM is detection
  2012-06-06  8:08     ` Florian Fainelli
@ 2012-06-06  8:42       ` Hauke Mehrtens
  -1 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-06  8:42 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: linville, zajec5, b43-dev, arend, linux-wireless

On 06/06/2012 10:08 AM, Florian Fainelli wrote:
> Hi Hauke,
> 
> On Tuesday 05 June 2012 23:55:02 Hauke Mehrtens wrote:
>> This workaround should be triggered based on the chipid and rev and not
>> the core id and rev. This is based on code in the Broadcom SDK.
>>
>> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
>> ---
>>  drivers/bcma/driver_chipcommon_pmu.c |    3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/bcma/driver_chipcommon_pmu.c 
> b/drivers/bcma/driver_chipcommon_pmu.c
>> index da8769e..dd2b55d 100644
>> --- a/drivers/bcma/driver_chipcommon_pmu.c
>> +++ b/drivers/bcma/driver_chipcommon_pmu.c
>> @@ -166,6 +166,7 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc *cc)
>>  void bcma_pmu_init(struct bcma_drv_cc *cc)
>>  {
>>  	u32 pmucap;
>> +	struct bcma_bus *bus = cc->core->bus;
>>  
>>  	pmucap = bcma_cc_read32(cc, BCMA_CC_PMU_CAP);
>>  	cc->pmu.rev = (pmucap & BCMA_CC_PMU_CAP_REVISION);
>> @@ -180,7 +181,7 @@ void bcma_pmu_init(struct bcma_drv_cc *cc)
>>  		bcma_cc_set32(cc, BCMA_CC_PMU_CTL,
>>  			     BCMA_CC_PMU_CTL_NOILPONW);
>>  
>> -	if (cc->core->id.id == 0x4329 && cc->core->id.rev == 2)
>> +	if (bus->chipinfo.id == 0x4329 && bus->chipinfo.rev == 2)
>>  		pr_err("Fix for 4329b0 bad LPOM state not implemented!\n");
> 
> Does not that deserve a new define to be in line with your previous patch?
> --
> Florian

Probably we can remove this completely. The BCM4329 is a fullmac chip
mostly used in phones and this part is done in the firmware.

Hauke

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 3/8] bcma: Fix for 4329b0 bad LPOM is detection
@ 2012-06-06  8:42       ` Hauke Mehrtens
  0 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-06  8:42 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: linville, zajec5, b43-dev, arend, linux-wireless

On 06/06/2012 10:08 AM, Florian Fainelli wrote:
> Hi Hauke,
> 
> On Tuesday 05 June 2012 23:55:02 Hauke Mehrtens wrote:
>> This workaround should be triggered based on the chipid and rev and not
>> the core id and rev. This is based on code in the Broadcom SDK.
>>
>> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
>> ---
>>  drivers/bcma/driver_chipcommon_pmu.c |    3 ++-
>>  1 file changed, 2 insertions(+), 1 deletion(-)
>>
>> diff --git a/drivers/bcma/driver_chipcommon_pmu.c 
> b/drivers/bcma/driver_chipcommon_pmu.c
>> index da8769e..dd2b55d 100644
>> --- a/drivers/bcma/driver_chipcommon_pmu.c
>> +++ b/drivers/bcma/driver_chipcommon_pmu.c
>> @@ -166,6 +166,7 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc *cc)
>>  void bcma_pmu_init(struct bcma_drv_cc *cc)
>>  {
>>  	u32 pmucap;
>> +	struct bcma_bus *bus = cc->core->bus;
>>  
>>  	pmucap = bcma_cc_read32(cc, BCMA_CC_PMU_CAP);
>>  	cc->pmu.rev = (pmucap & BCMA_CC_PMU_CAP_REVISION);
>> @@ -180,7 +181,7 @@ void bcma_pmu_init(struct bcma_drv_cc *cc)
>>  		bcma_cc_set32(cc, BCMA_CC_PMU_CTL,
>>  			     BCMA_CC_PMU_CTL_NOILPONW);
>>  
>> -	if (cc->core->id.id == 0x4329 && cc->core->id.rev == 2)
>> +	if (bus->chipinfo.id == 0x4329 && bus->chipinfo.rev == 2)
>>  		pr_err("Fix for 4329b0 bad LPOM state not implemented!\n");
> 
> Does not that deserve a new define to be in line with your previous patch?
> --
> Florian

Probably we can remove this completely. The BCM4329 is a fullmac chip
mostly used in phones and this part is done in the firmware.

Hauke

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 3/8] bcma: Fix for 4329b0 bad LPOM is detection
  2012-06-06  8:42       ` Hauke Mehrtens
@ 2012-06-06 11:45         ` Arend van Spriel
  -1 siblings, 0 replies; 41+ messages in thread
From: Arend van Spriel @ 2012-06-06 11:45 UTC (permalink / raw)
  To: Hauke Mehrtens
  Cc: Florian Fainelli, linville, zajec5, b43-dev, linux-wireless

On 06/06/2012 10:42 AM, Hauke Mehrtens wrote:
> On 06/06/2012 10:08 AM, Florian Fainelli wrote:
>> Hi Hauke,
>>
>> On Tuesday 05 June 2012 23:55:02 Hauke Mehrtens wrote:
>>>  
>>> -	if (cc->core->id.id == 0x4329 && cc->core->id.rev == 2)
>>> +	if (bus->chipinfo.id == 0x4329 && bus->chipinfo.rev == 2)
>>>  		pr_err("Fix for 4329b0 bad LPOM state not implemented!\n");
>>
>> Does not that deserve a new define to be in line with your previous patch?
>> --
>> Florian
> 
> Probably we can remove this completely. The BCM4329 is a fullmac chip
> mostly used in phones and this part is done in the firmware.

That is correct. PMU initialization is done in the firmware for a
fullmac device.

Gr. AvS


^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 3/8] bcma: Fix for 4329b0 bad LPOM is detection
@ 2012-06-06 11:45         ` Arend van Spriel
  0 siblings, 0 replies; 41+ messages in thread
From: Arend van Spriel @ 2012-06-06 11:45 UTC (permalink / raw)
  To: Hauke Mehrtens
  Cc: Florian Fainelli, linville, zajec5, b43-dev, linux-wireless

On 06/06/2012 10:42 AM, Hauke Mehrtens wrote:
> On 06/06/2012 10:08 AM, Florian Fainelli wrote:
>> Hi Hauke,
>>
>> On Tuesday 05 June 2012 23:55:02 Hauke Mehrtens wrote:
>>>  
>>> -	if (cc->core->id.id == 0x4329 && cc->core->id.rev == 2)
>>> +	if (bus->chipinfo.id == 0x4329 && bus->chipinfo.rev == 2)
>>>  		pr_err("Fix for 4329b0 bad LPOM state not implemented!\n");
>>
>> Does not that deserve a new define to be in line with your previous patch?
>> --
>> Florian
> 
> Probably we can remove this completely. The BCM4329 is a fullmac chip
> mostly used in phones and this part is done in the firmware.

That is correct. PMU initialization is done in the firmware for a
fullmac device.

Gr. AvS

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 2/8] bcma: add constants for chip ids
  2012-06-05 21:55 ` [PATCH 2/8] bcma: add constants for chip ids Hauke Mehrtens
@ 2012-06-06 11:51     ` Arend van Spriel
  0 siblings, 0 replies; 41+ messages in thread
From: Arend van Spriel @ 2012-06-06 11:51 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: linville, zajec5, b43-dev, linux-wireless

On 06/05/2012 11:55 PM, Hauke Mehrtens wrote:
> The chip IDs are used all over bcma and no constants where defined.
> This patch adds the constants and makes bcma use them.

Acked-by: Arend van Spriel <arend@broadcom.com>
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
> ---
>  drivers/bcma/driver_chipcommon_pmu.c |   81 +++++++++++++++++-----------------
>  drivers/bcma/driver_mips.c           |    8 ++--
>  drivers/bcma/driver_pci_host.c       |    8 ++--
>  drivers/bcma/sprom.c                 |   18 ++++----
>  include/linux/bcma/bcma.h            |   30 +++++++++++++
>  5 files changed, 90 insertions(+), 55 deletions(-)


^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 2/8] bcma: add constants for chip ids
@ 2012-06-06 11:51     ` Arend van Spriel
  0 siblings, 0 replies; 41+ messages in thread
From: Arend van Spriel @ 2012-06-06 11:51 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: linville, zajec5, b43-dev, linux-wireless

On 06/05/2012 11:55 PM, Hauke Mehrtens wrote:
> The chip IDs are used all over bcma and no constants where defined.
> This patch adds the constants and makes bcma use them.

Acked-by: Arend van Spriel <arend@broadcom.com>
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
> ---
>  drivers/bcma/driver_chipcommon_pmu.c |   81 +++++++++++++++++-----------------
>  drivers/bcma/driver_mips.c           |    8 ++--
>  drivers/bcma/driver_pci_host.c       |    8 ++--
>  drivers/bcma/sprom.c                 |   18 ++++----
>  include/linux/bcma/bcma.h            |   30 +++++++++++++
>  5 files changed, 90 insertions(+), 55 deletions(-)

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 6/8] bcma: handle SoCs in pmu initialization
  2012-06-05 21:55 ` [PATCH 6/8] bcma: handle SoCs in pmu initialization Hauke Mehrtens
@ 2012-06-06 12:19     ` Florian Fainelli
  0 siblings, 0 replies; 41+ messages in thread
From: Florian Fainelli @ 2012-06-06 12:19 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: linville, zajec5, b43-dev, arend, linux-wireless

Hi Hauke,

On Tuesday 05 June 2012 23:55:05 Hauke Mehrtens wrote:
> The SoCs do not need any special handling in bcma_pmu_pll_init(),
> bcma_pmu_resources_init(), bcma_pmu_swreg_init() and
> bcma_pmu_workarounds. This patches suppresses some warnings in the log.

This does not look like it scales very good, how about you turn the pr_err() 
into a pr_debug() so that developpers porting bcma on a new chip need to turn 
on the appropriate debug knobs to get the message?

> 
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
> ---
>  drivers/bcma/driver_chipcommon_pmu.c |   32 
++++++++++++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
> 
> diff --git a/drivers/bcma/driver_chipcommon_pmu.c 
b/drivers/bcma/driver_chipcommon_pmu.c
> index 2ebba9c..9bf2dff 100644
> --- a/drivers/bcma/driver_chipcommon_pmu.c
> +++ b/drivers/bcma/driver_chipcommon_pmu.c
> @@ -63,6 +63,14 @@ static void bcma_pmu_pll_init(struct bcma_drv_cc *cc)
>  	case BCMA_CHIP_ID_BCM4331:
>  	case BCMA_CHIP_ID_BCM43224:
>  	case BCMA_CHIP_ID_BCM43225:
> +	case BCMA_CHIP_ID_BCM4716:
> +	case BCMA_CHIP_ID_BCM4748:
> +	case BCMA_CHIP_ID_BCM47162:
> +	case BCMA_CHIP_ID_BCM4749:
> +	case BCMA_CHIP_ID_BCM5357:
> +	case BCMA_CHIP_ID_BCM5356:
> +	case BCMA_CHIP_ID_BCM53572:
> +	case BCMA_CHIP_ID_BCM4706:
>  		break;
>  	default:
>  		pr_err("PLL init unknown for device 0x%04X\n",
> @@ -83,6 +91,14 @@ static void bcma_pmu_resources_init(struct bcma_drv_cc 
*cc)
>  	case BCMA_CHIP_ID_BCM4331:
>  	case BCMA_CHIP_ID_BCM43224:
>  	case BCMA_CHIP_ID_BCM43225:
> +	case BCMA_CHIP_ID_BCM4716:
> +	case BCMA_CHIP_ID_BCM4748:
> +	case BCMA_CHIP_ID_BCM47162:
> +	case BCMA_CHIP_ID_BCM4749:
> +	case BCMA_CHIP_ID_BCM5357:
> +	case BCMA_CHIP_ID_BCM5356:
> +	case BCMA_CHIP_ID_BCM53572:
> +	case BCMA_CHIP_ID_BCM4706:
>  		break;
>  	default:
>  		pr_err("PMU resource config unknown for device 0x%04X\n",
> @@ -105,6 +121,14 @@ static void bcma_pmu_swreg_init(struct bcma_drv_cc *cc)
>  	case BCMA_CHIP_ID_BCM4331:
>  	case BCMA_CHIP_ID_BCM43224:
>  	case BCMA_CHIP_ID_BCM43225:
> +	case BCMA_CHIP_ID_BCM4716:
> +	case BCMA_CHIP_ID_BCM4748:
> +	case BCMA_CHIP_ID_BCM47162:
> +	case BCMA_CHIP_ID_BCM4749:
> +	case BCMA_CHIP_ID_BCM5357:
> +	case BCMA_CHIP_ID_BCM5356:
> +	case BCMA_CHIP_ID_BCM53572:
> +	case BCMA_CHIP_ID_BCM4706:
>  		break;
>  	default:
>  		pr_err("PMU switch/regulators init unknown for device "
> @@ -168,6 +192,14 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc 
*cc)
>  		}
>  		break;
>  	case BCMA_CHIP_ID_BCM43225:
> +	case BCMA_CHIP_ID_BCM4716:
> +	case BCMA_CHIP_ID_BCM4748:
> +	case BCMA_CHIP_ID_BCM47162:
> +	case BCMA_CHIP_ID_BCM4749:
> +	case BCMA_CHIP_ID_BCM5357:
> +	case BCMA_CHIP_ID_BCM5356:
> +	case BCMA_CHIP_ID_BCM53572:
> +	case BCMA_CHIP_ID_BCM4706:
>  		break;
>  	default:
>  		pr_err("Workarounds unknown for device 0x%04X\n",
> -- 
> 1.7.9.5
> 
> --
> 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
-- 
Florian

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 6/8] bcma: handle SoCs in pmu initialization
@ 2012-06-06 12:19     ` Florian Fainelli
  0 siblings, 0 replies; 41+ messages in thread
From: Florian Fainelli @ 2012-06-06 12:19 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: linville, zajec5, b43-dev, arend, linux-wireless

Hi Hauke,

On Tuesday 05 June 2012 23:55:05 Hauke Mehrtens wrote:
> The SoCs do not need any special handling in bcma_pmu_pll_init(),
> bcma_pmu_resources_init(), bcma_pmu_swreg_init() and
> bcma_pmu_workarounds. This patches suppresses some warnings in the log.

This does not look like it scales very good, how about you turn the pr_err() 
into a pr_debug() so that developpers porting bcma on a new chip need to turn 
on the appropriate debug knobs to get the message?

> 
> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
> ---
>  drivers/bcma/driver_chipcommon_pmu.c |   32 
++++++++++++++++++++++++++++++++
>  1 file changed, 32 insertions(+)
> 
> diff --git a/drivers/bcma/driver_chipcommon_pmu.c 
b/drivers/bcma/driver_chipcommon_pmu.c
> index 2ebba9c..9bf2dff 100644
> --- a/drivers/bcma/driver_chipcommon_pmu.c
> +++ b/drivers/bcma/driver_chipcommon_pmu.c
> @@ -63,6 +63,14 @@ static void bcma_pmu_pll_init(struct bcma_drv_cc *cc)
>  	case BCMA_CHIP_ID_BCM4331:
>  	case BCMA_CHIP_ID_BCM43224:
>  	case BCMA_CHIP_ID_BCM43225:
> +	case BCMA_CHIP_ID_BCM4716:
> +	case BCMA_CHIP_ID_BCM4748:
> +	case BCMA_CHIP_ID_BCM47162:
> +	case BCMA_CHIP_ID_BCM4749:
> +	case BCMA_CHIP_ID_BCM5357:
> +	case BCMA_CHIP_ID_BCM5356:
> +	case BCMA_CHIP_ID_BCM53572:
> +	case BCMA_CHIP_ID_BCM4706:
>  		break;
>  	default:
>  		pr_err("PLL init unknown for device 0x%04X\n",
> @@ -83,6 +91,14 @@ static void bcma_pmu_resources_init(struct bcma_drv_cc 
*cc)
>  	case BCMA_CHIP_ID_BCM4331:
>  	case BCMA_CHIP_ID_BCM43224:
>  	case BCMA_CHIP_ID_BCM43225:
> +	case BCMA_CHIP_ID_BCM4716:
> +	case BCMA_CHIP_ID_BCM4748:
> +	case BCMA_CHIP_ID_BCM47162:
> +	case BCMA_CHIP_ID_BCM4749:
> +	case BCMA_CHIP_ID_BCM5357:
> +	case BCMA_CHIP_ID_BCM5356:
> +	case BCMA_CHIP_ID_BCM53572:
> +	case BCMA_CHIP_ID_BCM4706:
>  		break;
>  	default:
>  		pr_err("PMU resource config unknown for device 0x%04X\n",
> @@ -105,6 +121,14 @@ static void bcma_pmu_swreg_init(struct bcma_drv_cc *cc)
>  	case BCMA_CHIP_ID_BCM4331:
>  	case BCMA_CHIP_ID_BCM43224:
>  	case BCMA_CHIP_ID_BCM43225:
> +	case BCMA_CHIP_ID_BCM4716:
> +	case BCMA_CHIP_ID_BCM4748:
> +	case BCMA_CHIP_ID_BCM47162:
> +	case BCMA_CHIP_ID_BCM4749:
> +	case BCMA_CHIP_ID_BCM5357:
> +	case BCMA_CHIP_ID_BCM5356:
> +	case BCMA_CHIP_ID_BCM53572:
> +	case BCMA_CHIP_ID_BCM4706:
>  		break;
>  	default:
>  		pr_err("PMU switch/regulators init unknown for device "
> @@ -168,6 +192,14 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc 
*cc)
>  		}
>  		break;
>  	case BCMA_CHIP_ID_BCM43225:
> +	case BCMA_CHIP_ID_BCM4716:
> +	case BCMA_CHIP_ID_BCM4748:
> +	case BCMA_CHIP_ID_BCM47162:
> +	case BCMA_CHIP_ID_BCM4749:
> +	case BCMA_CHIP_ID_BCM5357:
> +	case BCMA_CHIP_ID_BCM5356:
> +	case BCMA_CHIP_ID_BCM53572:
> +	case BCMA_CHIP_ID_BCM4706:
>  		break;
>  	default:
>  		pr_err("Workarounds unknown for device 0x%04X\n",
> -- 
> 1.7.9.5
> 
> --
> To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
> the body of a message to majordomo at vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
-- 
Florian

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 6/8] bcma: handle SoCs in pmu initialization
  2012-06-06 12:19     ` Florian Fainelli
@ 2012-06-07 12:59       ` Hauke Mehrtens
  -1 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-07 12:59 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: linville, zajec5, b43-dev, arend, linux-wireless

On 06/06/2012 02:19 PM, Florian Fainelli wrote:
> Hi Hauke,
> 
> On Tuesday 05 June 2012 23:55:05 Hauke Mehrtens wrote:
>> The SoCs do not need any special handling in bcma_pmu_pll_init(),
>> bcma_pmu_resources_init(), bcma_pmu_swreg_init() and
>> bcma_pmu_workarounds. This patches suppresses some warnings in the log.
> 
> This does not look like it scales very good, how about you turn the pr_err() 
> into a pr_debug() so that developpers porting bcma on a new chip need to turn 
> on the appropriate debug knobs to get the message?

I would more like to remove this message completely so that the default
case does nothing. A developer should be capable of finding this
function without any debug message when he wants to add support for a
new device.

>> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
>> ---
>>  drivers/bcma/driver_chipcommon_pmu.c |   32 
> ++++++++++++++++++++++++++++++++
>>  1 file changed, 32 insertions(+)
>>
>> diff --git a/drivers/bcma/driver_chipcommon_pmu.c 
> b/drivers/bcma/driver_chipcommon_pmu.c
>> index 2ebba9c..9bf2dff 100644
>> --- a/drivers/bcma/driver_chipcommon_pmu.c
>> +++ b/drivers/bcma/driver_chipcommon_pmu.c
>> @@ -63,6 +63,14 @@ static void bcma_pmu_pll_init(struct bcma_drv_cc *cc)
>>  	case BCMA_CHIP_ID_BCM4331:
>>  	case BCMA_CHIP_ID_BCM43224:
>>  	case BCMA_CHIP_ID_BCM43225:
>> +	case BCMA_CHIP_ID_BCM4716:
>> +	case BCMA_CHIP_ID_BCM4748:
>> +	case BCMA_CHIP_ID_BCM47162:
>> +	case BCMA_CHIP_ID_BCM4749:
>> +	case BCMA_CHIP_ID_BCM5357:
>> +	case BCMA_CHIP_ID_BCM5356:
>> +	case BCMA_CHIP_ID_BCM53572:
>> +	case BCMA_CHIP_ID_BCM4706:
>>  		break;
>>  	default:
>>  		pr_err("PLL init unknown for device 0x%04X\n",
>> @@ -83,6 +91,14 @@ static void bcma_pmu_resources_init(struct bcma_drv_cc 
> *cc)
>>  	case BCMA_CHIP_ID_BCM4331:
>>  	case BCMA_CHIP_ID_BCM43224:
>>  	case BCMA_CHIP_ID_BCM43225:
>> +	case BCMA_CHIP_ID_BCM4716:
>> +	case BCMA_CHIP_ID_BCM4748:
>> +	case BCMA_CHIP_ID_BCM47162:
>> +	case BCMA_CHIP_ID_BCM4749:
>> +	case BCMA_CHIP_ID_BCM5357:
>> +	case BCMA_CHIP_ID_BCM5356:
>> +	case BCMA_CHIP_ID_BCM53572:
>> +	case BCMA_CHIP_ID_BCM4706:
>>  		break;
>>  	default:
>>  		pr_err("PMU resource config unknown for device 0x%04X\n",
>> @@ -105,6 +121,14 @@ static void bcma_pmu_swreg_init(struct bcma_drv_cc *cc)
>>  	case BCMA_CHIP_ID_BCM4331:
>>  	case BCMA_CHIP_ID_BCM43224:
>>  	case BCMA_CHIP_ID_BCM43225:
>> +	case BCMA_CHIP_ID_BCM4716:
>> +	case BCMA_CHIP_ID_BCM4748:
>> +	case BCMA_CHIP_ID_BCM47162:
>> +	case BCMA_CHIP_ID_BCM4749:
>> +	case BCMA_CHIP_ID_BCM5357:
>> +	case BCMA_CHIP_ID_BCM5356:
>> +	case BCMA_CHIP_ID_BCM53572:
>> +	case BCMA_CHIP_ID_BCM4706:
>>  		break;
>>  	default:
>>  		pr_err("PMU switch/regulators init unknown for device "
>> @@ -168,6 +192,14 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc 
> *cc)
>>  		}
>>  		break;
>>  	case BCMA_CHIP_ID_BCM43225:
>> +	case BCMA_CHIP_ID_BCM4716:
>> +	case BCMA_CHIP_ID_BCM4748:
>> +	case BCMA_CHIP_ID_BCM47162:
>> +	case BCMA_CHIP_ID_BCM4749:
>> +	case BCMA_CHIP_ID_BCM5357:
>> +	case BCMA_CHIP_ID_BCM5356:
>> +	case BCMA_CHIP_ID_BCM53572:
>> +	case BCMA_CHIP_ID_BCM4706:
>>  		break;
>>  	default:
>>  		pr_err("Workarounds unknown for device 0x%04X\n",
>> -- 
>> 1.7.9.5


^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 6/8] bcma: handle SoCs in pmu initialization
@ 2012-06-07 12:59       ` Hauke Mehrtens
  0 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-07 12:59 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: linville, zajec5, b43-dev, arend, linux-wireless

On 06/06/2012 02:19 PM, Florian Fainelli wrote:
> Hi Hauke,
> 
> On Tuesday 05 June 2012 23:55:05 Hauke Mehrtens wrote:
>> The SoCs do not need any special handling in bcma_pmu_pll_init(),
>> bcma_pmu_resources_init(), bcma_pmu_swreg_init() and
>> bcma_pmu_workarounds. This patches suppresses some warnings in the log.
> 
> This does not look like it scales very good, how about you turn the pr_err() 
> into a pr_debug() so that developpers porting bcma on a new chip need to turn 
> on the appropriate debug knobs to get the message?

I would more like to remove this message completely so that the default
case does nothing. A developer should be capable of finding this
function without any debug message when he wants to add support for a
new device.

>> Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
>> ---
>>  drivers/bcma/driver_chipcommon_pmu.c |   32 
> ++++++++++++++++++++++++++++++++
>>  1 file changed, 32 insertions(+)
>>
>> diff --git a/drivers/bcma/driver_chipcommon_pmu.c 
> b/drivers/bcma/driver_chipcommon_pmu.c
>> index 2ebba9c..9bf2dff 100644
>> --- a/drivers/bcma/driver_chipcommon_pmu.c
>> +++ b/drivers/bcma/driver_chipcommon_pmu.c
>> @@ -63,6 +63,14 @@ static void bcma_pmu_pll_init(struct bcma_drv_cc *cc)
>>  	case BCMA_CHIP_ID_BCM4331:
>>  	case BCMA_CHIP_ID_BCM43224:
>>  	case BCMA_CHIP_ID_BCM43225:
>> +	case BCMA_CHIP_ID_BCM4716:
>> +	case BCMA_CHIP_ID_BCM4748:
>> +	case BCMA_CHIP_ID_BCM47162:
>> +	case BCMA_CHIP_ID_BCM4749:
>> +	case BCMA_CHIP_ID_BCM5357:
>> +	case BCMA_CHIP_ID_BCM5356:
>> +	case BCMA_CHIP_ID_BCM53572:
>> +	case BCMA_CHIP_ID_BCM4706:
>>  		break;
>>  	default:
>>  		pr_err("PLL init unknown for device 0x%04X\n",
>> @@ -83,6 +91,14 @@ static void bcma_pmu_resources_init(struct bcma_drv_cc 
> *cc)
>>  	case BCMA_CHIP_ID_BCM4331:
>>  	case BCMA_CHIP_ID_BCM43224:
>>  	case BCMA_CHIP_ID_BCM43225:
>> +	case BCMA_CHIP_ID_BCM4716:
>> +	case BCMA_CHIP_ID_BCM4748:
>> +	case BCMA_CHIP_ID_BCM47162:
>> +	case BCMA_CHIP_ID_BCM4749:
>> +	case BCMA_CHIP_ID_BCM5357:
>> +	case BCMA_CHIP_ID_BCM5356:
>> +	case BCMA_CHIP_ID_BCM53572:
>> +	case BCMA_CHIP_ID_BCM4706:
>>  		break;
>>  	default:
>>  		pr_err("PMU resource config unknown for device 0x%04X\n",
>> @@ -105,6 +121,14 @@ static void bcma_pmu_swreg_init(struct bcma_drv_cc *cc)
>>  	case BCMA_CHIP_ID_BCM4331:
>>  	case BCMA_CHIP_ID_BCM43224:
>>  	case BCMA_CHIP_ID_BCM43225:
>> +	case BCMA_CHIP_ID_BCM4716:
>> +	case BCMA_CHIP_ID_BCM4748:
>> +	case BCMA_CHIP_ID_BCM47162:
>> +	case BCMA_CHIP_ID_BCM4749:
>> +	case BCMA_CHIP_ID_BCM5357:
>> +	case BCMA_CHIP_ID_BCM5356:
>> +	case BCMA_CHIP_ID_BCM53572:
>> +	case BCMA_CHIP_ID_BCM4706:
>>  		break;
>>  	default:
>>  		pr_err("PMU switch/regulators init unknown for device "
>> @@ -168,6 +192,14 @@ static void bcma_pmu_workarounds(struct bcma_drv_cc 
> *cc)
>>  		}
>>  		break;
>>  	case BCMA_CHIP_ID_BCM43225:
>> +	case BCMA_CHIP_ID_BCM4716:
>> +	case BCMA_CHIP_ID_BCM4748:
>> +	case BCMA_CHIP_ID_BCM47162:
>> +	case BCMA_CHIP_ID_BCM4749:
>> +	case BCMA_CHIP_ID_BCM5357:
>> +	case BCMA_CHIP_ID_BCM5356:
>> +	case BCMA_CHIP_ID_BCM53572:
>> +	case BCMA_CHIP_ID_BCM4706:
>>  		break;
>>  	default:
>>  		pr_err("Workarounds unknown for device 0x%04X\n",
>> -- 
>> 1.7.9.5

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 7/8] bcma: add bcma_pmu_spuravoid_pllupdate()
  2012-06-05 21:55 ` [PATCH 7/8] bcma: add bcma_pmu_spuravoid_pllupdate() Hauke Mehrtens
@ 2012-06-10 16:53     ` Rafał Miłecki
  0 siblings, 0 replies; 41+ messages in thread
From: Rafał Miłecki @ 2012-06-10 16:53 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: linville, b43-dev, arend, linux-wireless

2012/6/5 Hauke Mehrtens <hauke@hauke-m.de>:
> This function is needed by brcmsmac. This code is based on code from
> the Broadcom SDK.

This is already implemented in b43/phy_n.c:

/* http://bcm-v4.sipsolutions.net/802.11/PmuSpurAvoid */
static void b43_nphy_pmu_spur_avoid(struct b43_wldev *dev, bool avoid)

I guess we should replace b43 code with a call to introduced function.

-- 
Rafał

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 7/8] bcma: add bcma_pmu_spuravoid_pllupdate()
@ 2012-06-10 16:53     ` Rafał Miłecki
  0 siblings, 0 replies; 41+ messages in thread
From: Rafał Miłecki @ 2012-06-10 16:53 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: linville, b43-dev, arend, linux-wireless

2012/6/5 Hauke Mehrtens <hauke@hauke-m.de>:
> This function is needed by brcmsmac. This code is based on code from
> the Broadcom SDK.

This is already implemented in b43/phy_n.c:

/* http://bcm-v4.sipsolutions.net/802.11/PmuSpurAvoid */
static void b43_nphy_pmu_spur_avoid(struct b43_wldev *dev, bool avoid)

I guess we should replace b43 code with a call to introduced function.

-- 
Rafa?

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 6/8] bcma: handle SoCs in pmu initialization
  2012-06-06 12:19     ` Florian Fainelli
@ 2012-06-10 16:54       ` Rafał Miłecki
  -1 siblings, 0 replies; 41+ messages in thread
From: Rafał Miłecki @ 2012-06-10 16:54 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: Hauke Mehrtens, linville, b43-dev, arend, linux-wireless

2012/6/6 Florian Fainelli <florian@openwrt.org>:
> Hi Hauke,
>
> On Tuesday 05 June 2012 23:55:05 Hauke Mehrtens wrote:
>> The SoCs do not need any special handling in bcma_pmu_pll_init(),
>> bcma_pmu_resources_init(), bcma_pmu_swreg_init() and
>> bcma_pmu_workarounds. This patches suppresses some warnings in the log.
>
> This does not look like it scales very good, how about you turn the pr_err()
> into a pr_debug() so that developpers porting bcma on a new chip need to turn
> on the appropriate debug knobs to get the message?

debug sounds fine for me

-- 
Rafał

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 6/8] bcma: handle SoCs in pmu initialization
@ 2012-06-10 16:54       ` Rafał Miłecki
  0 siblings, 0 replies; 41+ messages in thread
From: Rafał Miłecki @ 2012-06-10 16:54 UTC (permalink / raw)
  To: Florian Fainelli; +Cc: Hauke Mehrtens, linville, b43-dev, arend, linux-wireless

2012/6/6 Florian Fainelli <florian@openwrt.org>:
> Hi Hauke,
>
> On Tuesday 05 June 2012 23:55:05 Hauke Mehrtens wrote:
>> The SoCs do not need any special handling in bcma_pmu_pll_init(),
>> bcma_pmu_resources_init(), bcma_pmu_swreg_init() and
>> bcma_pmu_workarounds. This patches suppresses some warnings in the log.
>
> This does not look like it scales very good, how about you turn the pr_err()
> into a pr_debug() so that developpers porting bcma on a new chip need to turn
> on the appropriate debug knobs to get the message?

debug sounds fine for me

-- 
Rafa?

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 7/8] bcma: add bcma_pmu_spuravoid_pllupdate()
  2012-06-10 16:53     ` Rafał Miłecki
@ 2012-06-10 19:34       ` Hauke Mehrtens
  -1 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-10 19:34 UTC (permalink / raw)
  To: Rafał Miłecki; +Cc: linville, b43-dev, arend, linux-wireless

On 06/10/2012 06:53 PM, Rafał Miłecki wrote:
> 2012/6/5 Hauke Mehrtens <hauke@hauke-m.de>:
>> This function is needed by brcmsmac. This code is based on code from
>> the Broadcom SDK.
> 
> This is already implemented in b43/phy_n.c:
> 
> /* http://bcm-v4.sipsolutions.net/802.11/PmuSpurAvoid */
> static void b43_nphy_pmu_spur_avoid(struct b43_wldev *dev, bool avoid)
> 
> I guess we should replace b43 code with a call to introduced function.
> 

Thanks, I looked into b43 but not long enough to find this function. I
will also create a patch replacing this function in b43.

Hauke

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 7/8] bcma: add bcma_pmu_spuravoid_pllupdate()
@ 2012-06-10 19:34       ` Hauke Mehrtens
  0 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-10 19:34 UTC (permalink / raw)
  To: Rafał Miłecki; +Cc: linville, b43-dev, arend, linux-wireless

On 06/10/2012 06:53 PM, Rafa? Mi?ecki wrote:
> 2012/6/5 Hauke Mehrtens <hauke@hauke-m.de>:
>> This function is needed by brcmsmac. This code is based on code from
>> the Broadcom SDK.
> 
> This is already implemented in b43/phy_n.c:
> 
> /* http://bcm-v4.sipsolutions.net/802.11/PmuSpurAvoid */
> static void b43_nphy_pmu_spur_avoid(struct b43_wldev *dev, bool avoid)
> 
> I guess we should replace b43 code with a call to introduced function.
> 

Thanks, I looked into b43 but not long enough to find this function. I
will also create a patch replacing this function in b43.

Hauke

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 6/8] bcma: handle SoCs in pmu initialization
  2012-06-10 16:54       ` Rafał Miłecki
@ 2012-06-10 19:37         ` Hauke Mehrtens
  -1 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-10 19:37 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Florian Fainelli, linville, b43-dev, arend, linux-wireless

On 06/10/2012 06:54 PM, Rafał Miłecki wrote:
> 2012/6/6 Florian Fainelli <florian@openwrt.org>:
>> Hi Hauke,
>>
>> On Tuesday 05 June 2012 23:55:05 Hauke Mehrtens wrote:
>>> The SoCs do not need any special handling in bcma_pmu_pll_init(),
>>> bcma_pmu_resources_init(), bcma_pmu_swreg_init() and
>>> bcma_pmu_workarounds. This patches suppresses some warnings in the log.
>>
>> This does not look like it scales very good, how about you turn the pr_err()
>> into a pr_debug() so that developpers porting bcma on a new chip need to turn
>> on the appropriate debug knobs to get the message?
> 
> debug sounds fine for me
> 
Hi Rafał,

bcma_pmu_swreg_init() and bcma_pmu_pll_init() are doing nothing should
they get removed? In the current version of the patch I also removed the
chip ids of the PCIe based cards from the switch case statement if they
just ended in a break, is that ok with you?

Hauke

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 6/8] bcma: handle SoCs in pmu initialization
@ 2012-06-10 19:37         ` Hauke Mehrtens
  0 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-10 19:37 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Florian Fainelli, linville, b43-dev, arend, linux-wireless

On 06/10/2012 06:54 PM, Rafa? Mi?ecki wrote:
> 2012/6/6 Florian Fainelli <florian@openwrt.org>:
>> Hi Hauke,
>>
>> On Tuesday 05 June 2012 23:55:05 Hauke Mehrtens wrote:
>>> The SoCs do not need any special handling in bcma_pmu_pll_init(),
>>> bcma_pmu_resources_init(), bcma_pmu_swreg_init() and
>>> bcma_pmu_workarounds. This patches suppresses some warnings in the log.
>>
>> This does not look like it scales very good, how about you turn the pr_err()
>> into a pr_debug() so that developpers porting bcma on a new chip need to turn
>> on the appropriate debug knobs to get the message?
> 
> debug sounds fine for me
> 
Hi Rafa?,

bcma_pmu_swreg_init() and bcma_pmu_pll_init() are doing nothing should
they get removed? In the current version of the patch I also removed the
chip ids of the PCIe based cards from the switch case statement if they
just ended in a break, is that ok with you?

Hauke

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 6/8] bcma: handle SoCs in pmu initialization
  2012-06-10 19:37         ` Hauke Mehrtens
@ 2012-06-28 15:52           ` Rafał Miłecki
  -1 siblings, 0 replies; 41+ messages in thread
From: Rafał Miłecki @ 2012-06-28 15:52 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: Florian Fainelli, linville, b43-dev, arend, linux-wireless

2012/6/10 Hauke Mehrtens <hauke@hauke-m.de>:
> On 06/10/2012 06:54 PM, Rafał Miłecki wrote:
>> 2012/6/6 Florian Fainelli <florian@openwrt.org>:
>>> Hi Hauke,
>>>
>>> On Tuesday 05 June 2012 23:55:05 Hauke Mehrtens wrote:
>>>> The SoCs do not need any special handling in bcma_pmu_pll_init(),
>>>> bcma_pmu_resources_init(), bcma_pmu_swreg_init() and
>>>> bcma_pmu_workarounds. This patches suppresses some warnings in the log.
>>>
>>> This does not look like it scales very good, how about you turn the pr_err()
>>> into a pr_debug() so that developpers porting bcma on a new chip need to turn
>>> on the appropriate debug knobs to get the message?
>>
>> debug sounds fine for me
>>
> Hi Rafał,
>
> bcma_pmu_swreg_init() and bcma_pmu_pll_init() are doing nothing should
> they get removed? In the current version of the patch I also removed the
> chip ids of the PCIe based cards from the switch case statement if they
> just ended in a break, is that ok with you?

Original si_pmu_pll_init had some meaning for BCM4329, BCM4319,
BCM4336 and BCM4330. I guess all of them are fullmac devices, right?

Original si_pmu_swreg_init got meaning for BCM4336 and BCM4336.

Seems both can be dropped?

-- 
Rafał

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 6/8] bcma: handle SoCs in pmu initialization
@ 2012-06-28 15:52           ` Rafał Miłecki
  0 siblings, 0 replies; 41+ messages in thread
From: Rafał Miłecki @ 2012-06-28 15:52 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: Florian Fainelli, linville, b43-dev, arend, linux-wireless

2012/6/10 Hauke Mehrtens <hauke@hauke-m.de>:
> On 06/10/2012 06:54 PM, Rafa? Mi?ecki wrote:
>> 2012/6/6 Florian Fainelli <florian@openwrt.org>:
>>> Hi Hauke,
>>>
>>> On Tuesday 05 June 2012 23:55:05 Hauke Mehrtens wrote:
>>>> The SoCs do not need any special handling in bcma_pmu_pll_init(),
>>>> bcma_pmu_resources_init(), bcma_pmu_swreg_init() and
>>>> bcma_pmu_workarounds. This patches suppresses some warnings in the log.
>>>
>>> This does not look like it scales very good, how about you turn the pr_err()
>>> into a pr_debug() so that developpers porting bcma on a new chip need to turn
>>> on the appropriate debug knobs to get the message?
>>
>> debug sounds fine for me
>>
> Hi Rafa?,
>
> bcma_pmu_swreg_init() and bcma_pmu_pll_init() are doing nothing should
> they get removed? In the current version of the patch I also removed the
> chip ids of the PCIe based cards from the switch case statement if they
> just ended in a break, is that ok with you?

Original si_pmu_pll_init had some meaning for BCM4329, BCM4319,
BCM4336 and BCM4330. I guess all of them are fullmac devices, right?

Original si_pmu_swreg_init got meaning for BCM4336 and BCM4336.

Seems both can be dropped?

-- 
Rafa?

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 6/8] bcma: handle SoCs in pmu initialization
  2012-06-28 15:52           ` Rafał Miłecki
@ 2012-06-28 18:14             ` Hauke Mehrtens
  -1 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-28 18:14 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Florian Fainelli, linville, b43-dev, arend, linux-wireless

On 06/28/2012 05:52 PM, Rafał Miłecki wrote:
> 2012/6/10 Hauke Mehrtens <hauke@hauke-m.de>:
>> On 06/10/2012 06:54 PM, Rafał Miłecki wrote:
>>> 2012/6/6 Florian Fainelli <florian@openwrt.org>:
>>>> Hi Hauke,
>>>>
>>>> On Tuesday 05 June 2012 23:55:05 Hauke Mehrtens wrote:
>>>>> The SoCs do not need any special handling in bcma_pmu_pll_init(),
>>>>> bcma_pmu_resources_init(), bcma_pmu_swreg_init() and
>>>>> bcma_pmu_workarounds. This patches suppresses some warnings in the log.
>>>>
>>>> This does not look like it scales very good, how about you turn the pr_err()
>>>> into a pr_debug() so that developpers porting bcma on a new chip need to turn
>>>> on the appropriate debug knobs to get the message?
>>>
>>> debug sounds fine for me
>>>
>> Hi Rafał,
>>
>> bcma_pmu_swreg_init() and bcma_pmu_pll_init() are doing nothing should
>> they get removed? In the current version of the patch I also removed the
>> chip ids of the PCIe based cards from the switch case statement if they
>> just ended in a break, is that ok with you?
> 
> Original si_pmu_pll_init had some meaning for BCM4329, BCM4319,
> BCM4336 and BCM4330. I guess all of them are fullmac devices, right?
> 
> Original si_pmu_swreg_init got meaning for BCM4336 and BCM4336.
> 
> Seems both can be dropped?
> 
I also check it with the BSD licensed code I have here and these
functions are only containing code for fullmac chips as I see.

I am for dropping them.

Hauke

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 6/8] bcma: handle SoCs in pmu initialization
@ 2012-06-28 18:14             ` Hauke Mehrtens
  0 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-28 18:14 UTC (permalink / raw)
  To: Rafał Miłecki
  Cc: Florian Fainelli, linville, b43-dev, arend, linux-wireless

On 06/28/2012 05:52 PM, Rafa? Mi?ecki wrote:
> 2012/6/10 Hauke Mehrtens <hauke@hauke-m.de>:
>> On 06/10/2012 06:54 PM, Rafa? Mi?ecki wrote:
>>> 2012/6/6 Florian Fainelli <florian@openwrt.org>:
>>>> Hi Hauke,
>>>>
>>>> On Tuesday 05 June 2012 23:55:05 Hauke Mehrtens wrote:
>>>>> The SoCs do not need any special handling in bcma_pmu_pll_init(),
>>>>> bcma_pmu_resources_init(), bcma_pmu_swreg_init() and
>>>>> bcma_pmu_workarounds. This patches suppresses some warnings in the log.
>>>>
>>>> This does not look like it scales very good, how about you turn the pr_err()
>>>> into a pr_debug() so that developpers porting bcma on a new chip need to turn
>>>> on the appropriate debug knobs to get the message?
>>>
>>> debug sounds fine for me
>>>
>> Hi Rafa?,
>>
>> bcma_pmu_swreg_init() and bcma_pmu_pll_init() are doing nothing should
>> they get removed? In the current version of the patch I also removed the
>> chip ids of the PCIe based cards from the switch case statement if they
>> just ended in a break, is that ok with you?
> 
> Original si_pmu_pll_init had some meaning for BCM4329, BCM4319,
> BCM4336 and BCM4330. I guess all of them are fullmac devices, right?
> 
> Original si_pmu_swreg_init got meaning for BCM4336 and BCM4336.
> 
> Seems both can be dropped?
> 
I also check it with the BSD licensed code I have here and these
functions are only containing code for fullmac chips as I see.

I am for dropping them.

Hauke

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 0/8] bcma misc updates
  2012-06-05 21:54 [PATCH 0/8] bcma misc updates Hauke Mehrtens
@ 2012-06-29  7:44   ` Rafał Miłecki
  2012-06-05 21:55 ` [PATCH 2/8] bcma: add constants for chip ids Hauke Mehrtens
                     ` (7 subsequent siblings)
  8 siblings, 0 replies; 41+ messages in thread
From: Rafał Miłecki @ 2012-06-29  7:44 UTC (permalink / raw)
  To: linville, Hauke Mehrtens; +Cc: b43-dev, arend, linux-wireless

2012/6/5 Hauke Mehrtens <hauke@hauke-m.de>:
> These are some updates for bcma. Some are extending or completing some
> workarounds for PCIe based wireless cards. A patch adds
> bcma_pmu_spuravoid_pllupdate, used by brcmsmac and an other patch adds
> constants for the chip ids. This code is mostly based on code from
> brcmsmac and the Broadcom SDK for BCM47XX SoCs.
>
> This was tested on a BCM4718 SoC with a BCM43224 PCIe and a BCM5357.
> The Wifi part of the BCM4718 and BCM43224 is more or less working with
> brcmsmac, which need some more patches for that, but it has low speed
> and some times or with some access points I still get errors. The wifi
> of the BCM5357 does not work.
>
> Hauke Mehrtens (8):
>  bcma: extend workaround for bcm4331
>  bcma: add constants for chip ids
>  bcma: Fix for 4329b0 bad LPOM is detection
>  bcma: add PCI ID for BCM43224
>  bcma: complete workaround for BCMA43224 and BCM4313
>  bcma: handle SoCs in pmu initialization
>  bcma: add bcma_pmu_spuravoid_pllupdate()
>  bcma: add mdelay bcma_pmu_resources_init()

John: can you take the following patches from this patchset?
1/8
2/8
4/8
5/8
7/8

Following patches should be dropped:
3/8 - BCM4329 fix should be dropped, not improved
6/8 - functions touched by patch should be dropper, not improved
8/8 - patch is fine, but doesn't apply cleanly

-- 
Rafał

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 0/8] bcma misc updates
@ 2012-06-29  7:44   ` Rafał Miłecki
  0 siblings, 0 replies; 41+ messages in thread
From: Rafał Miłecki @ 2012-06-29  7:44 UTC (permalink / raw)
  To: linville, Hauke Mehrtens; +Cc: b43-dev, arend, linux-wireless

2012/6/5 Hauke Mehrtens <hauke@hauke-m.de>:
> These are some updates for bcma. Some are extending or completing some
> workarounds for PCIe based wireless cards. A patch adds
> bcma_pmu_spuravoid_pllupdate, used by brcmsmac and an other patch adds
> constants for the chip ids. This code is mostly based on code from
> brcmsmac and the Broadcom SDK for BCM47XX SoCs.
>
> This was tested on a BCM4718 SoC with a BCM43224 PCIe and a BCM5357.
> The Wifi part of the BCM4718 and BCM43224 is more or less working with
> brcmsmac, which need some more patches for that, but it has low speed
> and some times or with some access points I still get errors. The wifi
> of the BCM5357 does not work.
>
> Hauke Mehrtens (8):
> ?bcma: extend workaround for bcm4331
> ?bcma: add constants for chip ids
> ?bcma: Fix for 4329b0 bad LPOM is detection
> ?bcma: add PCI ID for BCM43224
> ?bcma: complete workaround for BCMA43224 and BCM4313
> ?bcma: handle SoCs in pmu initialization
> ?bcma: add bcma_pmu_spuravoid_pllupdate()
> ?bcma: add mdelay bcma_pmu_resources_init()

John: can you take the following patches from this patchset?
1/8
2/8
4/8
5/8
7/8

Following patches should be dropped:
3/8 - BCM4329 fix should be dropped, not improved
6/8 - functions touched by patch should be dropper, not improved
8/8 - patch is fine, but doesn't apply cleanly

-- 
Rafa?

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 0/8] bcma misc updates
  2012-06-29  7:44   ` Rafał Miłecki
@ 2012-06-29 13:37     ` John W. Linville
  -1 siblings, 0 replies; 41+ messages in thread
From: John W. Linville @ 2012-06-29 13:37 UTC (permalink / raw)
  To: Rafał Miłecki; +Cc: Hauke Mehrtens, b43-dev, arend, linux-wireless

On Fri, Jun 29, 2012 at 09:44:29AM +0200, Rafał Miłecki wrote:
> 2012/6/5 Hauke Mehrtens <hauke@hauke-m.de>:
> > These are some updates for bcma. Some are extending or completing some
> > workarounds for PCIe based wireless cards. A patch adds
> > bcma_pmu_spuravoid_pllupdate, used by brcmsmac and an other patch adds
> > constants for the chip ids. This code is mostly based on code from
> > brcmsmac and the Broadcom SDK for BCM47XX SoCs.
> >
> > This was tested on a BCM4718 SoC with a BCM43224 PCIe and a BCM5357.
> > The Wifi part of the BCM4718 and BCM43224 is more or less working with
> > brcmsmac, which need some more patches for that, but it has low speed
> > and some times or with some access points I still get errors. The wifi
> > of the BCM5357 does not work.
> >
> > Hauke Mehrtens (8):
> >  bcma: extend workaround for bcm4331
> >  bcma: add constants for chip ids
> >  bcma: Fix for 4329b0 bad LPOM is detection
> >  bcma: add PCI ID for BCM43224
> >  bcma: complete workaround for BCMA43224 and BCM4313
> >  bcma: handle SoCs in pmu initialization
> >  bcma: add bcma_pmu_spuravoid_pllupdate()
> >  bcma: add mdelay bcma_pmu_resources_init()
> 
> John: can you take the following patches from this patchset?
> 1/8
> 2/8
> 4/8
> 5/8
> 7/8
> 
> Following patches should be dropped:
> 3/8 - BCM4329 fix should be dropped, not improved
> 6/8 - functions touched by patch should be dropper, not improved
> 8/8 - patch is fine, but doesn't apply cleanly

I seem to have dropped the series some time ago.  Perhaps Hauke could
repost the appropriate collection?

John
-- 
John W. Linville		Someday the world will need a hero, and you
linville@tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 0/8] bcma misc updates
@ 2012-06-29 13:37     ` John W. Linville
  0 siblings, 0 replies; 41+ messages in thread
From: John W. Linville @ 2012-06-29 13:37 UTC (permalink / raw)
  To: Rafał Miłecki; +Cc: Hauke Mehrtens, b43-dev, arend, linux-wireless

On Fri, Jun 29, 2012 at 09:44:29AM +0200, Rafa? Mi?ecki wrote:
> 2012/6/5 Hauke Mehrtens <hauke@hauke-m.de>:
> > These are some updates for bcma. Some are extending or completing some
> > workarounds for PCIe based wireless cards. A patch adds
> > bcma_pmu_spuravoid_pllupdate, used by brcmsmac and an other patch adds
> > constants for the chip ids. This code is mostly based on code from
> > brcmsmac and the Broadcom SDK for BCM47XX SoCs.
> >
> > This was tested on a BCM4718 SoC with a BCM43224 PCIe and a BCM5357.
> > The Wifi part of the BCM4718 and BCM43224 is more or less working with
> > brcmsmac, which need some more patches for that, but it has low speed
> > and some times or with some access points I still get errors. The wifi
> > of the BCM5357 does not work.
> >
> > Hauke Mehrtens (8):
> > ?bcma: extend workaround for bcm4331
> > ?bcma: add constants for chip ids
> > ?bcma: Fix for 4329b0 bad LPOM is detection
> > ?bcma: add PCI ID for BCM43224
> > ?bcma: complete workaround for BCMA43224 and BCM4313
> > ?bcma: handle SoCs in pmu initialization
> > ?bcma: add bcma_pmu_spuravoid_pllupdate()
> > ?bcma: add mdelay bcma_pmu_resources_init()
> 
> John: can you take the following patches from this patchset?
> 1/8
> 2/8
> 4/8
> 5/8
> 7/8
> 
> Following patches should be dropped:
> 3/8 - BCM4329 fix should be dropped, not improved
> 6/8 - functions touched by patch should be dropper, not improved
> 8/8 - patch is fine, but doesn't apply cleanly

I seem to have dropped the series some time ago.  Perhaps Hauke could
repost the appropriate collection?

John
-- 
John W. Linville		Someday the world will need a hero, and you
linville at tuxdriver.com			might be all we have.  Be ready.

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 0/8] bcma misc updates
  2012-06-29  7:44   ` Rafał Miłecki
@ 2012-06-29 16:40     ` Hauke Mehrtens
  -1 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-29 16:40 UTC (permalink / raw)
  To: Rafał Miłecki; +Cc: linville, b43-dev, arend, linux-wireless

On 06/29/2012 09:44 AM, Rafał Miłecki wrote:
> 2012/6/5 Hauke Mehrtens <hauke@hauke-m.de>:
>> These are some updates for bcma. Some are extending or completing some
>> workarounds for PCIe based wireless cards. A patch adds
>> bcma_pmu_spuravoid_pllupdate, used by brcmsmac and an other patch adds
>> constants for the chip ids. This code is mostly based on code from
>> brcmsmac and the Broadcom SDK for BCM47XX SoCs.
>>
>> This was tested on a BCM4718 SoC with a BCM43224 PCIe and a BCM5357.
>> The Wifi part of the BCM4718 and BCM43224 is more or less working with
>> brcmsmac, which need some more patches for that, but it has low speed
>> and some times or with some access points I still get errors. The wifi
>> of the BCM5357 does not work.
>>
>> Hauke Mehrtens (8):
>>  bcma: extend workaround for bcm4331
>>  bcma: add constants for chip ids
>>  bcma: Fix for 4329b0 bad LPOM is detection
>>  bcma: add PCI ID for BCM43224
>>  bcma: complete workaround for BCMA43224 and BCM4313
>>  bcma: handle SoCs in pmu initialization
>>  bcma: add bcma_pmu_spuravoid_pllupdate()
>>  bcma: add mdelay bcma_pmu_resources_init()
> 
> John: can you take the following patches from this patchset?
> 1/8
> 2/8
> 4/8
> 5/8
> 7/8
> 
> Following patches should be dropped:
> 3/8 - BCM4329 fix should be dropped, not improved
> 6/8 - functions touched by patch should be dropper, not improved
> 8/8 - patch is fine, but doesn't apply cleanly
> 
I am ok with that, but I am also planing to send a v2 of these patch
series and the one for brcmsmac today.

Hauke


^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 0/8] bcma misc updates
@ 2012-06-29 16:40     ` Hauke Mehrtens
  0 siblings, 0 replies; 41+ messages in thread
From: Hauke Mehrtens @ 2012-06-29 16:40 UTC (permalink / raw)
  To: Rafał Miłecki; +Cc: linville, b43-dev, arend, linux-wireless

On 06/29/2012 09:44 AM, Rafa? Mi?ecki wrote:
> 2012/6/5 Hauke Mehrtens <hauke@hauke-m.de>:
>> These are some updates for bcma. Some are extending or completing some
>> workarounds for PCIe based wireless cards. A patch adds
>> bcma_pmu_spuravoid_pllupdate, used by brcmsmac and an other patch adds
>> constants for the chip ids. This code is mostly based on code from
>> brcmsmac and the Broadcom SDK for BCM47XX SoCs.
>>
>> This was tested on a BCM4718 SoC with a BCM43224 PCIe and a BCM5357.
>> The Wifi part of the BCM4718 and BCM43224 is more or less working with
>> brcmsmac, which need some more patches for that, but it has low speed
>> and some times or with some access points I still get errors. The wifi
>> of the BCM5357 does not work.
>>
>> Hauke Mehrtens (8):
>>  bcma: extend workaround for bcm4331
>>  bcma: add constants for chip ids
>>  bcma: Fix for 4329b0 bad LPOM is detection
>>  bcma: add PCI ID for BCM43224
>>  bcma: complete workaround for BCMA43224 and BCM4313
>>  bcma: handle SoCs in pmu initialization
>>  bcma: add bcma_pmu_spuravoid_pllupdate()
>>  bcma: add mdelay bcma_pmu_resources_init()
> 
> John: can you take the following patches from this patchset?
> 1/8
> 2/8
> 4/8
> 5/8
> 7/8
> 
> Following patches should be dropped:
> 3/8 - BCM4329 fix should be dropped, not improved
> 6/8 - functions touched by patch should be dropper, not improved
> 8/8 - patch is fine, but doesn't apply cleanly
> 
I am ok with that, but I am also planing to send a v2 of these patch
series and the one for brcmsmac today.

Hauke

^ permalink raw reply	[flat|nested] 41+ messages in thread

* Re: [PATCH 0/8] bcma misc updates
  2012-06-29 16:40     ` Hauke Mehrtens
@ 2012-06-29 19:33       ` Rafał Miłecki
  -1 siblings, 0 replies; 41+ messages in thread
From: Rafał Miłecki @ 2012-06-29 19:33 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: linville, b43-dev, arend, linux-wireless

2012/6/29 Hauke Mehrtens <hauke@hauke-m.de>:
> On 06/29/2012 09:44 AM, Rafał Miłecki wrote:
>> 2012/6/5 Hauke Mehrtens <hauke@hauke-m.de>:
>>> These are some updates for bcma. Some are extending or completing some
>>> workarounds for PCIe based wireless cards. A patch adds
>>> bcma_pmu_spuravoid_pllupdate, used by brcmsmac and an other patch adds
>>> constants for the chip ids. This code is mostly based on code from
>>> brcmsmac and the Broadcom SDK for BCM47XX SoCs.
>>>
>>> This was tested on a BCM4718 SoC with a BCM43224 PCIe and a BCM5357.
>>> The Wifi part of the BCM4718 and BCM43224 is more or less working with
>>> brcmsmac, which need some more patches for that, but it has low speed
>>> and some times or with some access points I still get errors. The wifi
>>> of the BCM5357 does not work.
>>>
>>> Hauke Mehrtens (8):
>>>  bcma: extend workaround for bcm4331
>>>  bcma: add constants for chip ids
>>>  bcma: Fix for 4329b0 bad LPOM is detection
>>>  bcma: add PCI ID for BCM43224
>>>  bcma: complete workaround for BCMA43224 and BCM4313
>>>  bcma: handle SoCs in pmu initialization
>>>  bcma: add bcma_pmu_spuravoid_pllupdate()
>>>  bcma: add mdelay bcma_pmu_resources_init()
>>
>> John: can you take the following patches from this patchset?
>> 1/8
>> 2/8
>> 4/8
>> 5/8
>> 7/8
>>
>> Following patches should be dropped:
>> 3/8 - BCM4329 fix should be dropped, not improved
>> 6/8 - functions touched by patch should be dropper, not improved
>> 8/8 - patch is fine, but doesn't apply cleanly
>>
> I am ok with that, but I am also planing to send a v2 of these patch
> series and the one for brcmsmac today.

Hm, do you mean to change anything in 1, 2, 4, 5 or 8? To make
everything apply cleanly I'd love to see your new patches based on top
of my
[PATCH] bcma: use custom printing functions

-- 
Rafał

^ permalink raw reply	[flat|nested] 41+ messages in thread

* [PATCH 0/8] bcma misc updates
@ 2012-06-29 19:33       ` Rafał Miłecki
  0 siblings, 0 replies; 41+ messages in thread
From: Rafał Miłecki @ 2012-06-29 19:33 UTC (permalink / raw)
  To: Hauke Mehrtens; +Cc: linville, b43-dev, arend, linux-wireless

2012/6/29 Hauke Mehrtens <hauke@hauke-m.de>:
> On 06/29/2012 09:44 AM, Rafa? Mi?ecki wrote:
>> 2012/6/5 Hauke Mehrtens <hauke@hauke-m.de>:
>>> These are some updates for bcma. Some are extending or completing some
>>> workarounds for PCIe based wireless cards. A patch adds
>>> bcma_pmu_spuravoid_pllupdate, used by brcmsmac and an other patch adds
>>> constants for the chip ids. This code is mostly based on code from
>>> brcmsmac and the Broadcom SDK for BCM47XX SoCs.
>>>
>>> This was tested on a BCM4718 SoC with a BCM43224 PCIe and a BCM5357.
>>> The Wifi part of the BCM4718 and BCM43224 is more or less working with
>>> brcmsmac, which need some more patches for that, but it has low speed
>>> and some times or with some access points I still get errors. The wifi
>>> of the BCM5357 does not work.
>>>
>>> Hauke Mehrtens (8):
>>> ?bcma: extend workaround for bcm4331
>>> ?bcma: add constants for chip ids
>>> ?bcma: Fix for 4329b0 bad LPOM is detection
>>> ?bcma: add PCI ID for BCM43224
>>> ?bcma: complete workaround for BCMA43224 and BCM4313
>>> ?bcma: handle SoCs in pmu initialization
>>> ?bcma: add bcma_pmu_spuravoid_pllupdate()
>>> ?bcma: add mdelay bcma_pmu_resources_init()
>>
>> John: can you take the following patches from this patchset?
>> 1/8
>> 2/8
>> 4/8
>> 5/8
>> 7/8
>>
>> Following patches should be dropped:
>> 3/8 - BCM4329 fix should be dropped, not improved
>> 6/8 - functions touched by patch should be dropper, not improved
>> 8/8 - patch is fine, but doesn't apply cleanly
>>
> I am ok with that, but I am also planing to send a v2 of these patch
> series and the one for brcmsmac today.

Hm, do you mean to change anything in 1, 2, 4, 5 or 8? To make
everything apply cleanly I'd love to see your new patches based on top
of my
[PATCH] bcma: use custom printing functions

-- 
Rafa?

^ permalink raw reply	[flat|nested] 41+ messages in thread

end of thread, other threads:[~2012-06-29 21:43 UTC | newest]

Thread overview: 41+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-06-05 21:54 [PATCH 0/8] bcma misc updates Hauke Mehrtens
2012-06-05 21:55 ` [PATCH 1/8] bcma: extend workaround for bcm4331 Hauke Mehrtens
2012-06-05 21:55 ` [PATCH 2/8] bcma: add constants for chip ids Hauke Mehrtens
2012-06-06 11:51   ` Arend van Spriel
2012-06-06 11:51     ` Arend van Spriel
2012-06-05 21:55 ` [PATCH 3/8] bcma: Fix for 4329b0 bad LPOM is detection Hauke Mehrtens
2012-06-06  8:08   ` Florian Fainelli
2012-06-06  8:08     ` Florian Fainelli
2012-06-06  8:42     ` Hauke Mehrtens
2012-06-06  8:42       ` Hauke Mehrtens
2012-06-06 11:45       ` Arend van Spriel
2012-06-06 11:45         ` Arend van Spriel
2012-06-05 21:55 ` [PATCH 4/8] bcma: add PCI ID for BCM43224 Hauke Mehrtens
2012-06-05 21:55 ` [PATCH 5/8] bcma: complete workaround for BCMA43224 and BCM4313 Hauke Mehrtens
2012-06-05 21:55 ` [PATCH 6/8] bcma: handle SoCs in pmu initialization Hauke Mehrtens
2012-06-06 12:19   ` Florian Fainelli
2012-06-06 12:19     ` Florian Fainelli
2012-06-07 12:59     ` Hauke Mehrtens
2012-06-07 12:59       ` Hauke Mehrtens
2012-06-10 16:54     ` Rafał Miłecki
2012-06-10 16:54       ` Rafał Miłecki
2012-06-10 19:37       ` Hauke Mehrtens
2012-06-10 19:37         ` Hauke Mehrtens
2012-06-28 15:52         ` Rafał Miłecki
2012-06-28 15:52           ` Rafał Miłecki
2012-06-28 18:14           ` Hauke Mehrtens
2012-06-28 18:14             ` Hauke Mehrtens
2012-06-05 21:55 ` [PATCH 7/8] bcma: add bcma_pmu_spuravoid_pllupdate() Hauke Mehrtens
2012-06-10 16:53   ` Rafał Miłecki
2012-06-10 16:53     ` Rafał Miłecki
2012-06-10 19:34     ` Hauke Mehrtens
2012-06-10 19:34       ` Hauke Mehrtens
2012-06-05 21:55 ` [PATCH 8/8] bcma: add mdelay bcma_pmu_resources_init() Hauke Mehrtens
2012-06-29  7:44 ` [PATCH 0/8] bcma misc updates Rafał Miłecki
2012-06-29  7:44   ` Rafał Miłecki
2012-06-29 13:37   ` John W. Linville
2012-06-29 13:37     ` John W. Linville
2012-06-29 16:40   ` Hauke Mehrtens
2012-06-29 16:40     ` Hauke Mehrtens
2012-06-29 19:33     ` Rafał Miłecki
2012-06-29 19:33       ` Rafał Miłecki

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.