* [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
* 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
* [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
* 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
* [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
* 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 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 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
* [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
* 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 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
* [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 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