ssb: Remove home-grown printk wrappers

Replace the ssb printk wrappers by standard print helpers.
Also remove SSB_SILENT. Nobody should use it anyway.

Originally submitted by Joe Perches <joe@perches.com>.
Modified to add dev_... based printks.

Signed-off-by: Michael Buesch <m@bues.ch>
Tested-by: Michael Buesch <m@bues.ch>
Cc: Joe Perches <joe@perches.com>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
This commit is contained in:
Michael Büsch 2018-07-31 21:56:38 +02:00 committed by Kalle Valo
parent 4d77a89e39
commit b8b6069cf2
19 changed files with 152 additions and 189 deletions

View File

@ -89,21 +89,9 @@ config SSB_HOST_SOC
If unsure, say N If unsure, say N
config SSB_SILENT
bool "No SSB kernel messages"
depends on SSB && EXPERT
help
This option turns off all Sonics Silicon Backplane printks.
Note that you won't be able to identify problems, once
messages are turned off.
This might only be desired for production kernels on
embedded devices to reduce the kernel size.
Say N
config SSB_DEBUG config SSB_DEBUG
bool "SSB debugging" bool "SSB debugging"
depends on SSB && !SSB_SILENT depends on SSB
help help
This turns on additional runtime checks and debugging This turns on additional runtime checks and debugging
messages. Turn this on for SSB troubleshooting. messages. Turn this on for SSB troubleshooting.

View File

@ -10,12 +10,12 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include "ssb_private.h"
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/module.h> #include <linux/module.h>
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include "ssb_private.h"
static const struct pci_device_id b43_pci_bridge_tbl[] = { static const struct pci_device_id b43_pci_bridge_tbl[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4301) }, { PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4301) },

View File

@ -6,6 +6,8 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include "ssb_private.h"
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/module.h> #include <linux/module.h>
@ -15,8 +17,6 @@
#include <pcmcia/ds.h> #include <pcmcia/ds.h>
#include <pcmcia/cisreg.h> #include <pcmcia/cisreg.h>
#include "ssb_private.h"
static const struct pcmcia_device_id ssb_host_pcmcia_tbl[] = { static const struct pcmcia_device_id ssb_host_pcmcia_tbl[] = {
PCMCIA_DEVICE_MANF_CARD(0x2D0, 0x448), PCMCIA_DEVICE_MANF_CARD(0x2D0, 0x448),
PCMCIA_DEVICE_MANF_CARD(0x2D0, 0x476), PCMCIA_DEVICE_MANF_CARD(0x2D0, 0x476),
@ -70,7 +70,7 @@ static int ssb_host_pcmcia_probe(struct pcmcia_device *dev)
err_kfree_ssb: err_kfree_ssb:
kfree(ssb); kfree(ssb);
out_error: out_error:
ssb_err("Initialization failed (%d, %d)\n", res, err); dev_err(&dev->dev, "Initialization failed (%d, %d)\n", res, err);
return err; return err;
} }

View File

@ -9,14 +9,14 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include "ssb_private.h"
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include <linux/ssb/ssb_regs.h> #include <linux/ssb/ssb_regs.h>
#include <linux/export.h> #include <linux/export.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/bcm47xx_wdt.h> #include <linux/bcm47xx_wdt.h>
#include "ssb_private.h"
/* Clock sources */ /* Clock sources */
enum ssb_clksrc { enum ssb_clksrc {
@ -354,7 +354,7 @@ void ssb_chipcommon_init(struct ssb_chipcommon *cc)
if (cc->dev->id.revision >= 11) if (cc->dev->id.revision >= 11)
cc->status = chipco_read32(cc, SSB_CHIPCO_CHIPSTAT); cc->status = chipco_read32(cc, SSB_CHIPCO_CHIPSTAT);
ssb_dbg("chipcommon status is 0x%x\n", cc->status); dev_dbg(cc->dev->dev, "chipcommon status is 0x%x\n", cc->status);
if (cc->dev->id.revision >= 20) { if (cc->dev->id.revision >= 20) {
chipco_write32(cc, SSB_CHIPCO_GPIOPULLUP, 0); chipco_write32(cc, SSB_CHIPCO_GPIOPULLUP, 0);

View File

@ -8,6 +8,8 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include "ssb_private.h"
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include <linux/ssb/ssb_regs.h> #include <linux/ssb/ssb_regs.h>
#include <linux/ssb/ssb_driver_chipcommon.h> #include <linux/ssb/ssb_driver_chipcommon.h>
@ -17,8 +19,6 @@
#include <linux/bcm47xx_nvram.h> #include <linux/bcm47xx_nvram.h>
#endif #endif
#include "ssb_private.h"
static u32 ssb_chipco_pll_read(struct ssb_chipcommon *cc, u32 offset) static u32 ssb_chipco_pll_read(struct ssb_chipcommon *cc, u32 offset)
{ {
chipco_write32(cc, SSB_CHIPCO_PLLCTL_ADDR, offset); chipco_write32(cc, SSB_CHIPCO_PLLCTL_ADDR, offset);
@ -110,7 +110,7 @@ static void ssb_pmu0_pllinit_r0(struct ssb_chipcommon *cc,
return; return;
} }
ssb_info("Programming PLL to %u.%03u MHz\n", dev_info(cc->dev->dev, "Programming PLL to %u.%03u MHz\n",
crystalfreq / 1000, crystalfreq % 1000); crystalfreq / 1000, crystalfreq % 1000);
/* First turn the PLL off. */ /* First turn the PLL off. */
@ -138,7 +138,7 @@ static void ssb_pmu0_pllinit_r0(struct ssb_chipcommon *cc,
} }
tmp = chipco_read32(cc, SSB_CHIPCO_CLKCTLST); tmp = chipco_read32(cc, SSB_CHIPCO_CLKCTLST);
if (tmp & SSB_CHIPCO_CLKCTLST_HAVEHT) if (tmp & SSB_CHIPCO_CLKCTLST_HAVEHT)
ssb_emerg("Failed to turn the PLL off!\n"); dev_emerg(cc->dev->dev, "Failed to turn the PLL off!\n");
/* Set PDIV in PLL control 0. */ /* Set PDIV in PLL control 0. */
pllctl = ssb_chipco_pll_read(cc, SSB_PMU0_PLLCTL0); pllctl = ssb_chipco_pll_read(cc, SSB_PMU0_PLLCTL0);
@ -249,7 +249,7 @@ static void ssb_pmu1_pllinit_r0(struct ssb_chipcommon *cc,
return; return;
} }
ssb_info("Programming PLL to %u.%03u MHz\n", dev_info(cc->dev->dev, "Programming PLL to %u.%03u MHz\n",
crystalfreq / 1000, crystalfreq % 1000); crystalfreq / 1000, crystalfreq % 1000);
/* First turn the PLL off. */ /* First turn the PLL off. */
@ -275,7 +275,7 @@ static void ssb_pmu1_pllinit_r0(struct ssb_chipcommon *cc,
} }
tmp = chipco_read32(cc, SSB_CHIPCO_CLKCTLST); tmp = chipco_read32(cc, SSB_CHIPCO_CLKCTLST);
if (tmp & SSB_CHIPCO_CLKCTLST_HAVEHT) if (tmp & SSB_CHIPCO_CLKCTLST_HAVEHT)
ssb_emerg("Failed to turn the PLL off!\n"); dev_emerg(cc->dev->dev, "Failed to turn the PLL off!\n");
/* Set p1div and p2div. */ /* Set p1div and p2div. */
pllctl = ssb_chipco_pll_read(cc, SSB_PMU1_PLLCTL0); pllctl = ssb_chipco_pll_read(cc, SSB_PMU1_PLLCTL0);
@ -349,7 +349,7 @@ static void ssb_pmu_pll_init(struct ssb_chipcommon *cc)
case 43222: case 43222:
break; break;
default: default:
ssb_err("ERROR: PLL init unknown for device %04X\n", dev_err(cc->dev->dev, "ERROR: PLL init unknown for device %04X\n",
bus->chip_id); bus->chip_id);
} }
} }
@ -471,7 +471,7 @@ static void ssb_pmu_resources_init(struct ssb_chipcommon *cc)
max_msk = 0xFFFFF; max_msk = 0xFFFFF;
break; break;
default: default:
ssb_err("ERROR: PMU resource config unknown for device %04X\n", dev_err(cc->dev->dev, "ERROR: PMU resource config unknown for device %04X\n",
bus->chip_id); bus->chip_id);
} }
@ -524,7 +524,7 @@ void ssb_pmu_init(struct ssb_chipcommon *cc)
pmucap = chipco_read32(cc, SSB_CHIPCO_PMU_CAP); pmucap = chipco_read32(cc, SSB_CHIPCO_PMU_CAP);
cc->pmu.rev = (pmucap & SSB_CHIPCO_PMU_CAP_REVISION); cc->pmu.rev = (pmucap & SSB_CHIPCO_PMU_CAP_REVISION);
ssb_dbg("Found rev %u PMU (capabilities 0x%08X)\n", dev_dbg(cc->dev->dev, "Found rev %u PMU (capabilities 0x%08X)\n",
cc->pmu.rev, pmucap); cc->pmu.rev, pmucap);
if (cc->pmu.rev == 1) if (cc->pmu.rev == 1)
@ -636,7 +636,7 @@ u32 ssb_pmu_get_alp_clock(struct ssb_chipcommon *cc)
case 0x5354: case 0x5354:
return ssb_pmu_get_alp_clock_clk0(cc); return ssb_pmu_get_alp_clock_clk0(cc);
default: default:
ssb_err("ERROR: PMU alp clock unknown for device %04X\n", dev_err(cc->dev->dev, "ERROR: PMU alp clock unknown for device %04X\n",
bus->chip_id); bus->chip_id);
return 0; return 0;
} }
@ -651,7 +651,7 @@ u32 ssb_pmu_get_cpu_clock(struct ssb_chipcommon *cc)
/* 5354 chip uses a non programmable PLL of frequency 240MHz */ /* 5354 chip uses a non programmable PLL of frequency 240MHz */
return 240000000; return 240000000;
default: default:
ssb_err("ERROR: PMU cpu clock unknown for device %04X\n", dev_err(cc->dev->dev, "ERROR: PMU cpu clock unknown for device %04X\n",
bus->chip_id); bus->chip_id);
return 0; return 0;
} }
@ -665,7 +665,7 @@ u32 ssb_pmu_get_controlclock(struct ssb_chipcommon *cc)
case 0x5354: case 0x5354:
return 120000000; return 120000000;
default: default:
ssb_err("ERROR: PMU controlclock unknown for device %04X\n", dev_err(cc->dev->dev, "ERROR: PMU controlclock unknown for device %04X\n",
bus->chip_id); bus->chip_id);
return 0; return 0;
} }
@ -705,9 +705,9 @@ void ssb_pmu_spuravoid_pllupdate(struct ssb_chipcommon *cc, int spuravoid)
pmu_ctl = SSB_CHIPCO_PMU_CTL_PLL_UPD; pmu_ctl = SSB_CHIPCO_PMU_CTL_PLL_UPD;
break; break;
default: default:
ssb_printk(KERN_ERR PFX dev_err(cc->dev->dev,
"Unknown spuravoidance settings for chip 0x%04X, not changing PLL\n", "Unknown spuravoidance settings for chip 0x%04X, not changing PLL\n",
cc->dev->bus->chip_id); cc->dev->bus->chip_id);
return; return;
} }

View File

@ -5,10 +5,10 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include <linux/ssb/ssb.h>
#include "ssb_private.h" #include "ssb_private.h"
#include <linux/ssb/ssb.h>
static struct resource ssb_sflash_resource = { static struct resource ssb_sflash_resource = {
.name = "ssb_sflash", .name = "ssb_sflash",
.start = SSB_FLASH2, .start = SSB_FLASH2,
@ -80,7 +80,7 @@ static void ssb_sflash_cmd(struct ssb_chipcommon *cc, u32 opcode)
return; return;
cpu_relax(); cpu_relax();
} }
pr_err("SFLASH control command failed (timeout)!\n"); dev_err(cc->dev->dev, "SFLASH control command failed (timeout)!\n");
} }
/* Initialize serial flash access */ /* Initialize serial flash access */

View File

@ -10,12 +10,12 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include "ssb_private.h"
#include <linux/serial.h> #include <linux/serial.h>
#include <linux/serial_core.h> #include <linux/serial_core.h>
#include <linux/serial_reg.h> #include <linux/serial_reg.h>
#include "ssb_private.h"
static inline u32 extif_read32(struct ssb_extif *extif, u16 offset) static inline u32 extif_read32(struct ssb_extif *extif, u16 offset)
{ {

View File

@ -8,6 +8,8 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include "ssb_private.h"
#include <linux/gpio/driver.h> #include <linux/gpio/driver.h>
#include <linux/irq.h> #include <linux/irq.h>
#include <linux/interrupt.h> #include <linux/interrupt.h>
@ -15,8 +17,6 @@
#include <linux/export.h> #include <linux/export.h>
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include "ssb_private.h"
/************************************************** /**************************************************
* Shared * Shared

View File

@ -8,6 +8,8 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include "ssb_private.h"
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include <linux/mtd/physmap.h> #include <linux/mtd/physmap.h>
@ -19,8 +21,6 @@
#include <linux/bcm47xx_nvram.h> #include <linux/bcm47xx_nvram.h>
#endif #endif
#include "ssb_private.h"
static const char * const part_probes[] = { "bcm47xxpart", NULL }; static const char * const part_probes[] = { "bcm47xxpart", NULL };
static struct physmap_flash_data ssb_pflash_data = { static struct physmap_flash_data ssb_pflash_data = {
@ -170,14 +170,15 @@ static void set_irq(struct ssb_device *dev, unsigned int irq)
irqflag |= (ipsflag & ~ipsflag_irq_mask[irq]); irqflag |= (ipsflag & ~ipsflag_irq_mask[irq]);
ssb_write32(mdev, SSB_IPSFLAG, irqflag); ssb_write32(mdev, SSB_IPSFLAG, irqflag);
} }
ssb_dbg("set_irq: core 0x%04x, irq %d => %d\n", dev_dbg(dev->dev, "set_irq: core 0x%04x, irq %d => %d\n",
dev->id.coreid, oldirq+2, irq+2); dev->id.coreid, oldirq+2, irq+2);
} }
static void print_irq(struct ssb_device *dev, unsigned int irq) static void print_irq(struct ssb_device *dev, unsigned int irq)
{ {
static const char *irq_name[] = {"2(S)", "3", "4", "5", "6", "D", "I"}; static const char *irq_name[] = {"2(S)", "3", "4", "5", "6", "D", "I"};
ssb_dbg("core 0x%04x, irq : %s%s %s%s %s%s %s%s %s%s %s%s %s%s\n", dev_dbg(dev->dev,
"core 0x%04x, irq : %s%s %s%s %s%s %s%s %s%s %s%s %s%s\n",
dev->id.coreid, dev->id.coreid,
irq_name[0], irq == 0 ? "*" : " ", irq_name[0], irq == 0 ? "*" : " ",
irq_name[1], irq == 1 ? "*" : " ", irq_name[1], irq == 1 ? "*" : " ",
@ -229,11 +230,11 @@ static void ssb_mips_flash_detect(struct ssb_mipscore *mcore)
switch (bus->chipco.capabilities & SSB_CHIPCO_CAP_FLASHT) { switch (bus->chipco.capabilities & SSB_CHIPCO_CAP_FLASHT) {
case SSB_CHIPCO_FLASHT_STSER: case SSB_CHIPCO_FLASHT_STSER:
case SSB_CHIPCO_FLASHT_ATSER: case SSB_CHIPCO_FLASHT_ATSER:
pr_debug("Found serial flash\n"); dev_dbg(mcore->dev->dev, "Found serial flash\n");
ssb_sflash_init(&bus->chipco); ssb_sflash_init(&bus->chipco);
break; break;
case SSB_CHIPCO_FLASHT_PARA: case SSB_CHIPCO_FLASHT_PARA:
pr_debug("Found parallel flash\n"); dev_dbg(mcore->dev->dev, "Found parallel flash\n");
pflash->present = true; pflash->present = true;
pflash->window = SSB_FLASH2; pflash->window = SSB_FLASH2;
pflash->window_size = SSB_FLASH2_SZ; pflash->window_size = SSB_FLASH2_SZ;
@ -299,7 +300,7 @@ void ssb_mipscore_init(struct ssb_mipscore *mcore)
if (!mcore->dev) if (!mcore->dev)
return; /* We don't have a MIPS core */ return; /* We don't have a MIPS core */
ssb_dbg("Initializing MIPS core...\n"); dev_dbg(mcore->dev->dev, "Initializing MIPS core...\n");
bus = mcore->dev->bus; bus = mcore->dev->bus;
hz = ssb_clockspeed(bus); hz = ssb_clockspeed(bus);
@ -347,7 +348,7 @@ void ssb_mipscore_init(struct ssb_mipscore *mcore)
break; break;
} }
} }
ssb_dbg("after irq reconfiguration\n"); dev_dbg(mcore->dev->dev, "after irq reconfiguration\n");
dump_irq(bus); dump_irq(bus);
ssb_mips_serial_init(mcore); ssb_mips_serial_init(mcore);

View File

@ -8,14 +8,14 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include "ssb_private.h"
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/export.h> #include <linux/export.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/ssb/ssb_embedded.h> #include <linux/ssb/ssb_embedded.h>
#include "ssb_private.h"
static u32 ssb_pcie_read(struct ssb_pcicore *pc, u32 address); static u32 ssb_pcie_read(struct ssb_pcicore *pc, u32 address);
static void ssb_pcie_write(struct ssb_pcicore *pc, u32 address, u32 data); static void ssb_pcie_write(struct ssb_pcicore *pc, u32 address, u32 data);
static u16 ssb_pcie_mdio_read(struct ssb_pcicore *pc, u8 device, u8 address); static u16 ssb_pcie_mdio_read(struct ssb_pcicore *pc, u8 device, u8 address);
@ -263,7 +263,7 @@ int ssb_pcicore_plat_dev_init(struct pci_dev *d)
return -ENODEV; return -ENODEV;
} }
ssb_info("PCI: Fixing up device %s\n", pci_name(d)); dev_info(&d->dev, "PCI: Fixing up device %s\n", pci_name(d));
/* Fix up interrupt lines */ /* Fix up interrupt lines */
d->irq = ssb_mips_irq(extpci_core->dev) + 2; d->irq = ssb_mips_irq(extpci_core->dev) + 2;
@ -284,12 +284,12 @@ static void ssb_pcicore_fixup_pcibridge(struct pci_dev *dev)
if (dev->bus->number != 0 || PCI_SLOT(dev->devfn) != 0) if (dev->bus->number != 0 || PCI_SLOT(dev->devfn) != 0)
return; return;
ssb_info("PCI: Fixing up bridge %s\n", pci_name(dev)); dev_info(&dev->dev, "PCI: Fixing up bridge %s\n", pci_name(dev));
/* Enable PCI bridge bus mastering and memory space */ /* Enable PCI bridge bus mastering and memory space */
pci_set_master(dev); pci_set_master(dev);
if (pcibios_enable_device(dev, ~0) < 0) { if (pcibios_enable_device(dev, ~0) < 0) {
ssb_err("PCI: SSB bridge enable failed\n"); dev_err(&dev->dev, "PCI: SSB bridge enable failed\n");
return; return;
} }
@ -298,7 +298,8 @@ static void ssb_pcicore_fixup_pcibridge(struct pci_dev *dev)
/* Make sure our latency is high enough to handle the devices behind us */ /* Make sure our latency is high enough to handle the devices behind us */
lat = 168; lat = 168;
ssb_info("PCI: Fixing latency timer of device %s to %u\n", dev_info(&dev->dev,
"PCI: Fixing latency timer of device %s to %u\n",
pci_name(dev), lat); pci_name(dev), lat);
pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat); pci_write_config_byte(dev, PCI_LATENCY_TIMER, lat);
} }
@ -322,7 +323,7 @@ static void ssb_pcicore_init_hostmode(struct ssb_pcicore *pc)
return; return;
extpci_core = pc; extpci_core = pc;
ssb_dbg("PCIcore in host mode found\n"); dev_dbg(pc->dev->dev, "PCIcore in host mode found\n");
/* Reset devices on the external PCI bus */ /* Reset devices on the external PCI bus */
val = SSB_PCICORE_CTL_RST_OE; val = SSB_PCICORE_CTL_RST_OE;
val |= SSB_PCICORE_CTL_CLK_OE; val |= SSB_PCICORE_CTL_CLK_OE;
@ -337,7 +338,7 @@ static void ssb_pcicore_init_hostmode(struct ssb_pcicore *pc)
udelay(1); /* Assertion time demanded by the PCI standard */ udelay(1); /* Assertion time demanded by the PCI standard */
if (pc->dev->bus->has_cardbus_slot) { if (pc->dev->bus->has_cardbus_slot) {
ssb_dbg("CardBus slot detected\n"); dev_dbg(pc->dev->dev, "CardBus slot detected\n");
pc->cardbusmode = 1; pc->cardbusmode = 1;
/* GPIO 1 resets the bridge */ /* GPIO 1 resets the bridge */
ssb_gpio_out(pc->dev->bus, 1, 1); ssb_gpio_out(pc->dev->bus, 1, 1);

View File

@ -9,6 +9,8 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include "ssb_private.h"
#include <linux/export.h> #include <linux/export.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
@ -17,8 +19,6 @@
#include <linux/ssb/ssb_driver_gige.h> #include <linux/ssb/ssb_driver_gige.h>
#include <linux/pci.h> #include <linux/pci.h>
#include "ssb_private.h"
int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks) int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks)
{ {
@ -57,8 +57,8 @@ int ssb_watchdog_register(struct ssb_bus *bus)
bus->busnumber, &wdt, bus->busnumber, &wdt,
sizeof(wdt)); sizeof(wdt));
if (IS_ERR(pdev)) { if (IS_ERR(pdev)) {
ssb_dbg("can not register watchdog device, err: %li\n", pr_debug("can not register watchdog device, err: %li\n",
PTR_ERR(pdev)); PTR_ERR(pdev));
return PTR_ERR(pdev); return PTR_ERR(pdev);
} }

View File

@ -8,11 +8,11 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include "ssb_private.h"
#include <linux/bcm47xx_nvram.h> #include <linux/bcm47xx_nvram.h>
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include "ssb_private.h"
static u8 ssb_host_soc_read8(struct ssb_device *dev, u16 offset) static u8 ssb_host_soc_read8(struct ssb_device *dev, u16 offset)
{ {
struct ssb_bus *bus = dev->bus; struct ssb_bus *bus = dev->bus;

View File

@ -256,7 +256,8 @@ int ssb_devices_thaw(struct ssb_freeze_context *ctx)
err = sdrv->probe(sdev, &sdev->id); err = sdrv->probe(sdev, &sdev->id);
if (err) { if (err) {
ssb_err("Failed to thaw device %s\n", dev_err(sdev->dev,
"Failed to thaw device %s\n",
dev_name(sdev->dev)); dev_name(sdev->dev));
result = err; result = err;
} }
@ -431,9 +432,9 @@ void ssb_bus_unregister(struct ssb_bus *bus)
err = ssb_gpio_unregister(bus); err = ssb_gpio_unregister(bus);
if (err == -EBUSY) if (err == -EBUSY)
ssb_dbg("Some GPIOs are still in use\n"); pr_debug("Some GPIOs are still in use\n");
else if (err) else if (err)
ssb_dbg("Can not unregister GPIO driver: %i\n", err); pr_debug("Can not unregister GPIO driver: %i\n", err);
ssb_buses_lock(); ssb_buses_lock();
ssb_devices_unregister(bus); ssb_devices_unregister(bus);
@ -518,7 +519,7 @@ static int ssb_devices_register(struct ssb_bus *bus)
sdev->dev = dev; sdev->dev = dev;
err = device_register(dev); err = device_register(dev);
if (err) { if (err) {
ssb_err("Could not register %s\n", dev_name(dev)); pr_err("Could not register %s\n", dev_name(dev));
/* Set dev to NULL to not unregister /* Set dev to NULL to not unregister
* dev on error unwinding. */ * dev on error unwinding. */
sdev->dev = NULL; sdev->dev = NULL;
@ -576,9 +577,9 @@ static int ssb_attach_queued_buses(void)
err = ssb_gpio_init(bus); err = ssb_gpio_init(bus);
if (err == -ENOTSUPP) if (err == -ENOTSUPP)
ssb_dbg("GPIO driver not activated\n"); pr_debug("GPIO driver not activated\n");
else if (err) else if (err)
ssb_dbg("Error registering GPIO driver: %i\n", err); pr_debug("Error registering GPIO driver: %i\n", err);
ssb_bus_may_powerdown(bus); ssb_bus_may_powerdown(bus);
@ -707,10 +708,12 @@ int ssb_bus_pcibus_register(struct ssb_bus *bus, struct pci_dev *host_pci)
err = ssb_bus_register(bus, ssb_pci_get_invariants, 0); err = ssb_bus_register(bus, ssb_pci_get_invariants, 0);
if (!err) { if (!err) {
ssb_info("Sonics Silicon Backplane found on PCI device %s\n", dev_info(&host_pci->dev,
"Sonics Silicon Backplane found on PCI device %s\n",
dev_name(&host_pci->dev)); dev_name(&host_pci->dev));
} else { } else {
ssb_err("Failed to register PCI version of SSB with error %d\n", dev_err(&host_pci->dev,
"Failed to register PCI version of SSB with error %d\n",
err); err);
} }
@ -731,7 +734,8 @@ int ssb_bus_pcmciabus_register(struct ssb_bus *bus,
err = ssb_bus_register(bus, ssb_pcmcia_get_invariants, baseaddr); err = ssb_bus_register(bus, ssb_pcmcia_get_invariants, baseaddr);
if (!err) { if (!err) {
ssb_info("Sonics Silicon Backplane found on PCMCIA device %s\n", dev_info(&pcmcia_dev->dev,
"Sonics Silicon Backplane found on PCMCIA device %s\n",
pcmcia_dev->devname); pcmcia_dev->devname);
} }
@ -752,7 +756,8 @@ int ssb_bus_sdiobus_register(struct ssb_bus *bus, struct sdio_func *func,
err = ssb_bus_register(bus, ssb_sdio_get_invariants, ~0); err = ssb_bus_register(bus, ssb_sdio_get_invariants, ~0);
if (!err) { if (!err) {
ssb_info("Sonics Silicon Backplane found on SDIO device %s\n", dev_info(&func->dev,
"Sonics Silicon Backplane found on SDIO device %s\n",
sdio_func_id(func)); sdio_func_id(func));
} }
@ -771,8 +776,8 @@ int ssb_bus_host_soc_register(struct ssb_bus *bus, unsigned long baseaddr)
err = ssb_bus_register(bus, ssb_host_soc_get_invariants, baseaddr); err = ssb_bus_register(bus, ssb_host_soc_get_invariants, baseaddr);
if (!err) { if (!err) {
ssb_info("Sonics Silicon Backplane found at address 0x%08lX\n", pr_info("Sonics Silicon Backplane found at address 0x%08lX\n",
baseaddr); baseaddr);
} }
return err; return err;
@ -1057,9 +1062,9 @@ static int ssb_wait_bits(struct ssb_device *dev, u16 reg, u32 bitmask,
} }
udelay(10); udelay(10);
} }
printk(KERN_ERR PFX "Timeout waiting for bitmask %08X on " dev_err(dev->dev,
"register %04X to %s.\n", "Timeout waiting for bitmask %08X on register %04X to %s\n",
bitmask, reg, (set ? "set" : "clear")); bitmask, reg, set ? "set" : "clear");
return -ETIMEDOUT; return -ETIMEDOUT;
} }
@ -1169,7 +1174,7 @@ int ssb_bus_may_powerdown(struct ssb_bus *bus)
#endif #endif
return err; return err;
error: error:
ssb_err("Bus powerdown failed\n"); pr_err("Bus powerdown failed\n");
goto out; goto out;
} }
EXPORT_SYMBOL(ssb_bus_may_powerdown); EXPORT_SYMBOL(ssb_bus_may_powerdown);
@ -1192,7 +1197,7 @@ int ssb_bus_powerup(struct ssb_bus *bus, bool dynamic_pctl)
return 0; return 0;
error: error:
ssb_err("Bus powerup failed\n"); pr_err("Bus powerup failed\n");
return err; return err;
} }
EXPORT_SYMBOL(ssb_bus_powerup); EXPORT_SYMBOL(ssb_bus_powerup);
@ -1300,19 +1305,19 @@ static int __init ssb_modinit(void)
err = b43_pci_ssb_bridge_init(); err = b43_pci_ssb_bridge_init();
if (err) { if (err) {
ssb_err("Broadcom 43xx PCI-SSB-bridge initialization failed\n"); pr_err("Broadcom 43xx PCI-SSB-bridge initialization failed\n");
/* don't fail SSB init because of this */ /* don't fail SSB init because of this */
err = 0; err = 0;
} }
err = ssb_host_pcmcia_init(); err = ssb_host_pcmcia_init();
if (err) { if (err) {
ssb_err("PCMCIA host initialization failed\n"); pr_err("PCMCIA host initialization failed\n");
/* don't fail SSB init because of this */ /* don't fail SSB init because of this */
err = 0; err = 0;
} }
err = ssb_gige_init(); err = ssb_gige_init();
if (err) { if (err) {
ssb_err("SSB Broadcom Gigabit Ethernet driver initialization failed\n"); pr_err("SSB Broadcom Gigabit Ethernet driver initialization failed\n");
/* don't fail SSB init because of this */ /* don't fail SSB init because of this */
err = 0; err = 0;
} }

View File

@ -15,14 +15,14 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include "ssb_private.h"
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include <linux/ssb/ssb_regs.h> #include <linux/ssb/ssb_regs.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/pci.h> #include <linux/pci.h>
#include <linux/delay.h> #include <linux/delay.h>
#include "ssb_private.h"
/* Define the following to 1 to enable a printk on each coreswitch. */ /* Define the following to 1 to enable a printk on each coreswitch. */
#define SSB_VERBOSE_PCICORESWITCH_DEBUG 0 #define SSB_VERBOSE_PCICORESWITCH_DEBUG 0
@ -56,7 +56,7 @@ int ssb_pci_switch_coreidx(struct ssb_bus *bus, u8 coreidx)
} }
return 0; return 0;
error: error:
ssb_err("Failed to switch to core %u\n", coreidx); pr_err("Failed to switch to core %u\n", coreidx);
return -ENODEV; return -ENODEV;
} }
@ -67,9 +67,8 @@ int ssb_pci_switch_core(struct ssb_bus *bus,
unsigned long flags; unsigned long flags;
#if SSB_VERBOSE_PCICORESWITCH_DEBUG #if SSB_VERBOSE_PCICORESWITCH_DEBUG
ssb_info("Switching to %s core, index %d\n", pr_info("Switching to %s core, index %d\n",
ssb_core_name(dev->id.coreid), ssb_core_name(dev->id.coreid), dev->core_index);
dev->core_index);
#endif #endif
spin_lock_irqsave(&bus->bar_lock, flags); spin_lock_irqsave(&bus->bar_lock, flags);
@ -161,7 +160,7 @@ int ssb_pci_xtal(struct ssb_bus *bus, u32 what, int turn_on)
return err; return err;
err_pci: err_pci:
printk(KERN_ERR PFX "Error: ssb_pci_xtal() could not access PCI config space!\n"); pr_err("Error: ssb_pci_xtal() could not access PCI config space!\n");
err = -EBUSY; err = -EBUSY;
goto out; goto out;
} }
@ -286,7 +285,7 @@ static int sprom_do_write(struct ssb_bus *bus, const u16 *sprom)
u32 spromctl; u32 spromctl;
u16 size = bus->sprom_size; u16 size = bus->sprom_size;
ssb_notice("Writing SPROM. Do NOT turn off the power! Please stand by...\n"); pr_notice("Writing SPROM. Do NOT turn off the power! Please stand by...\n");
err = pci_read_config_dword(pdev, SSB_SPROMCTL, &spromctl); err = pci_read_config_dword(pdev, SSB_SPROMCTL, &spromctl);
if (err) if (err)
goto err_ctlreg; goto err_ctlreg;
@ -294,17 +293,17 @@ static int sprom_do_write(struct ssb_bus *bus, const u16 *sprom)
err = pci_write_config_dword(pdev, SSB_SPROMCTL, spromctl); err = pci_write_config_dword(pdev, SSB_SPROMCTL, spromctl);
if (err) if (err)
goto err_ctlreg; goto err_ctlreg;
ssb_notice("[ 0%%"); pr_notice("[ 0%%");
msleep(500); msleep(500);
for (i = 0; i < size; i++) { for (i = 0; i < size; i++) {
if (i == size / 4) if (i == size / 4)
ssb_cont("25%%"); pr_cont("25%%");
else if (i == size / 2) else if (i == size / 2)
ssb_cont("50%%"); pr_cont("50%%");
else if (i == (size * 3) / 4) else if (i == (size * 3) / 4)
ssb_cont("75%%"); pr_cont("75%%");
else if (i % 2) else if (i % 2)
ssb_cont("."); pr_cont(".");
writew(sprom[i], bus->mmio + bus->sprom_offset + (i * 2)); writew(sprom[i], bus->mmio + bus->sprom_offset + (i * 2));
mmiowb(); mmiowb();
msleep(20); msleep(20);
@ -317,12 +316,12 @@ static int sprom_do_write(struct ssb_bus *bus, const u16 *sprom)
if (err) if (err)
goto err_ctlreg; goto err_ctlreg;
msleep(500); msleep(500);
ssb_cont("100%% ]\n"); pr_cont("100%% ]\n");
ssb_notice("SPROM written\n"); pr_notice("SPROM written\n");
return 0; return 0;
err_ctlreg: err_ctlreg:
ssb_err("Could not access SPROM control register.\n"); pr_err("Could not access SPROM control register.\n");
return err; return err;
} }
@ -816,7 +815,7 @@ static int sprom_extract(struct ssb_bus *bus, struct ssb_sprom *out,
memset(out, 0, sizeof(*out)); memset(out, 0, sizeof(*out));
out->revision = in[size - 1] & 0x00FF; out->revision = in[size - 1] & 0x00FF;
ssb_dbg("SPROM revision %d detected\n", out->revision); pr_debug("SPROM revision %d detected\n", out->revision);
memset(out->et0mac, 0xFF, 6); /* preset et0 and et1 mac */ memset(out->et0mac, 0xFF, 6); /* preset et0 and et1 mac */
memset(out->et1mac, 0xFF, 6); memset(out->et1mac, 0xFF, 6);
@ -825,7 +824,7 @@ static int sprom_extract(struct ssb_bus *bus, struct ssb_sprom *out,
* number stored in the SPROM. * number stored in the SPROM.
* Always extract r1. */ * Always extract r1. */
out->revision = 1; out->revision = 1;
ssb_dbg("SPROM treated as revision %d\n", out->revision); pr_debug("SPROM treated as revision %d\n", out->revision);
} }
switch (out->revision) { switch (out->revision) {
@ -842,8 +841,8 @@ static int sprom_extract(struct ssb_bus *bus, struct ssb_sprom *out,
sprom_extract_r8(out, in); sprom_extract_r8(out, in);
break; break;
default: default:
ssb_warn("Unsupported SPROM revision %d detected. Will extract v1\n", pr_warn("Unsupported SPROM revision %d detected. Will extract v1\n",
out->revision); out->revision);
out->revision = 1; out->revision = 1;
sprom_extract_r123(out, in); sprom_extract_r123(out, in);
} }
@ -863,7 +862,7 @@ static int ssb_pci_sprom_get(struct ssb_bus *bus,
u16 *buf; u16 *buf;
if (!ssb_is_sprom_available(bus)) { if (!ssb_is_sprom_available(bus)) {
ssb_err("No SPROM available!\n"); pr_err("No SPROM available!\n");
return -ENODEV; return -ENODEV;
} }
if (bus->chipco.dev) { /* can be unavailable! */ if (bus->chipco.dev) { /* can be unavailable! */
@ -882,7 +881,7 @@ static int ssb_pci_sprom_get(struct ssb_bus *bus,
} else { } else {
bus->sprom_offset = SSB_SPROM_BASE1; bus->sprom_offset = SSB_SPROM_BASE1;
} }
ssb_dbg("SPROM offset is 0x%x\n", bus->sprom_offset); pr_debug("SPROM offset is 0x%x\n", bus->sprom_offset);
buf = kcalloc(SSB_SPROMSIZE_WORDS_R123, sizeof(u16), GFP_KERNEL); buf = kcalloc(SSB_SPROMSIZE_WORDS_R123, sizeof(u16), GFP_KERNEL);
if (!buf) if (!buf)
@ -907,16 +906,16 @@ static int ssb_pci_sprom_get(struct ssb_bus *bus,
* available for this device in some other storage */ * available for this device in some other storage */
err = ssb_fill_sprom_with_fallback(bus, sprom); err = ssb_fill_sprom_with_fallback(bus, sprom);
if (err) { if (err) {
ssb_warn("WARNING: Using fallback SPROM failed (err %d)\n", pr_warn("WARNING: Using fallback SPROM failed (err %d)\n",
err); err);
goto out_free; goto out_free;
} else { } else {
ssb_dbg("Using SPROM revision %d provided by platform\n", pr_debug("Using SPROM revision %d provided by platform\n",
sprom->revision); sprom->revision);
err = 0; err = 0;
goto out_free; goto out_free;
} }
ssb_warn("WARNING: Invalid SPROM CRC (corrupt SPROM)\n"); pr_warn("WARNING: Invalid SPROM CRC (corrupt SPROM)\n");
} }
} }
err = sprom_extract(bus, sprom, buf, bus->sprom_size); err = sprom_extract(bus, sprom, buf, bus->sprom_size);
@ -953,8 +952,7 @@ static int ssb_pci_assert_buspower(struct ssb_bus *bus)
if (likely(bus->powered_up)) if (likely(bus->powered_up))
return 0; return 0;
printk(KERN_ERR PFX "FATAL ERROR: Bus powered down " pr_err("FATAL ERROR: Bus powered down while accessing PCI MMIO space\n");
"while accessing PCI MMIO space\n");
if (bus->power_warn_count <= 10) { if (bus->power_warn_count <= 10) {
bus->power_warn_count++; bus->power_warn_count++;
dump_stack(); dump_stack();

View File

@ -8,6 +8,8 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include "ssb_private.h"
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/io.h> #include <linux/io.h>
@ -18,8 +20,6 @@
#include <pcmcia/ds.h> #include <pcmcia/ds.h>
#include <pcmcia/cisreg.h> #include <pcmcia/cisreg.h>
#include "ssb_private.h"
/* Define the following to 1 to enable a printk on each coreswitch. */ /* Define the following to 1 to enable a printk on each coreswitch. */
#define SSB_VERBOSE_PCMCIACORESWITCH_DEBUG 0 #define SSB_VERBOSE_PCMCIACORESWITCH_DEBUG 0
@ -143,7 +143,7 @@ int ssb_pcmcia_switch_coreidx(struct ssb_bus *bus,
return 0; return 0;
error: error:
ssb_err("Failed to switch to core %u\n", coreidx); pr_err("Failed to switch to core %u\n", coreidx);
return err; return err;
} }
@ -152,9 +152,8 @@ static int ssb_pcmcia_switch_core(struct ssb_bus *bus, struct ssb_device *dev)
int err; int err;
#if SSB_VERBOSE_PCMCIACORESWITCH_DEBUG #if SSB_VERBOSE_PCMCIACORESWITCH_DEBUG
ssb_info("Switching to %s core, index %d\n", pr_info("Switching to %s core, index %d\n",
ssb_core_name(dev->id.coreid), ssb_core_name(dev->id.coreid), dev->core_index);
dev->core_index);
#endif #endif
err = ssb_pcmcia_switch_coreidx(bus, dev->core_index); err = ssb_pcmcia_switch_coreidx(bus, dev->core_index);
@ -190,7 +189,7 @@ int ssb_pcmcia_switch_segment(struct ssb_bus *bus, u8 seg)
return 0; return 0;
error: error:
ssb_err("Failed to switch pcmcia segment\n"); pr_err("Failed to switch pcmcia segment\n");
return err; return err;
} }
@ -547,39 +546,39 @@ static int ssb_pcmcia_sprom_write_all(struct ssb_bus *bus, const u16 *sprom)
bool failed = 0; bool failed = 0;
size_t size = SSB_PCMCIA_SPROM_SIZE; size_t size = SSB_PCMCIA_SPROM_SIZE;
ssb_notice("Writing SPROM. Do NOT turn off the power! Please stand by...\n"); pr_notice("Writing SPROM. Do NOT turn off the power! Please stand by...\n");
err = ssb_pcmcia_sprom_command(bus, SSB_PCMCIA_SPROMCTL_WRITEEN); err = ssb_pcmcia_sprom_command(bus, SSB_PCMCIA_SPROMCTL_WRITEEN);
if (err) { if (err) {
ssb_notice("Could not enable SPROM write access\n"); pr_notice("Could not enable SPROM write access\n");
return -EBUSY; return -EBUSY;
} }
ssb_notice("[ 0%%"); pr_notice("[ 0%%");
msleep(500); msleep(500);
for (i = 0; i < size; i++) { for (i = 0; i < size; i++) {
if (i == size / 4) if (i == size / 4)
ssb_cont("25%%"); pr_cont("25%%");
else if (i == size / 2) else if (i == size / 2)
ssb_cont("50%%"); pr_cont("50%%");
else if (i == (size * 3) / 4) else if (i == (size * 3) / 4)
ssb_cont("75%%"); pr_cont("75%%");
else if (i % 2) else if (i % 2)
ssb_cont("."); pr_cont(".");
err = ssb_pcmcia_sprom_write(bus, i, sprom[i]); err = ssb_pcmcia_sprom_write(bus, i, sprom[i]);
if (err) { if (err) {
ssb_notice("Failed to write to SPROM\n"); pr_notice("Failed to write to SPROM\n");
failed = 1; failed = 1;
break; break;
} }
} }
err = ssb_pcmcia_sprom_command(bus, SSB_PCMCIA_SPROMCTL_WRITEDIS); err = ssb_pcmcia_sprom_command(bus, SSB_PCMCIA_SPROMCTL_WRITEDIS);
if (err) { if (err) {
ssb_notice("Could not disable SPROM write access\n"); pr_notice("Could not disable SPROM write access\n");
failed = 1; failed = 1;
} }
msleep(500); msleep(500);
if (!failed) { if (!failed) {
ssb_cont("100%% ]\n"); pr_cont("100%% ]\n");
ssb_notice("SPROM written\n"); pr_notice("SPROM written\n");
} }
return failed ? -EBUSY : 0; return failed ? -EBUSY : 0;
@ -693,9 +692,8 @@ static int ssb_pcmcia_do_get_invariants(struct pcmcia_device *p_dev,
return -ENOSPC; /* continue with next entry */ return -ENOSPC; /* continue with next entry */
error: error:
ssb_err( pr_err("PCMCIA: Failed to fetch device invariants: %s\n",
"PCMCIA: Failed to fetch device invariants: %s\n", error_description);
error_description);
return -ENODEV; return -ENODEV;
} }
@ -715,8 +713,7 @@ int ssb_pcmcia_get_invariants(struct ssb_bus *bus,
res = pcmcia_loop_tuple(bus->host_pcmcia, CISTPL_FUNCE, res = pcmcia_loop_tuple(bus->host_pcmcia, CISTPL_FUNCE,
ssb_pcmcia_get_mac, sprom); ssb_pcmcia_get_mac, sprom);
if (res != 0) { if (res != 0) {
ssb_err( pr_err("PCMCIA: Failed to fetch MAC address\n");
"PCMCIA: Failed to fetch MAC address\n");
return -ENODEV; return -ENODEV;
} }
@ -726,8 +723,7 @@ int ssb_pcmcia_get_invariants(struct ssb_bus *bus,
if ((res == 0) || (res == -ENOSPC)) if ((res == 0) || (res == -ENOSPC))
return 0; return 0;
ssb_err( pr_err("PCMCIA: Failed to fetch device invariants\n");
"PCMCIA: Failed to fetch device invariants\n");
return -ENODEV; return -ENODEV;
} }
@ -836,6 +832,6 @@ int ssb_pcmcia_init(struct ssb_bus *bus)
return 0; return 0;
error: error:
ssb_err("Failed to initialize PCMCIA host device\n"); pr_err("Failed to initialize PCMCIA host device\n");
return err; return err;
} }

View File

@ -12,6 +12,8 @@
* Licensed under the GNU/GPL. See COPYING for details. * Licensed under the GNU/GPL. See COPYING for details.
*/ */
#include "ssb_private.h"
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include <linux/ssb/ssb_regs.h> #include <linux/ssb/ssb_regs.h>
#include <linux/pci.h> #include <linux/pci.h>
@ -20,8 +22,6 @@
#include <pcmcia/cistpl.h> #include <pcmcia/cistpl.h>
#include <pcmcia/ds.h> #include <pcmcia/ds.h>
#include "ssb_private.h"
const char *ssb_core_name(u16 coreid) const char *ssb_core_name(u16 coreid)
{ {
@ -125,7 +125,7 @@ static u16 pcidev_to_chipid(struct pci_dev *pci_dev)
chipid_fallback = 0x4401; chipid_fallback = 0x4401;
break; break;
default: default:
ssb_err("PCI-ID not in fallback list\n"); dev_err(&pci_dev->dev, "PCI-ID not in fallback list\n");
} }
return chipid_fallback; return chipid_fallback;
@ -151,7 +151,7 @@ static u8 chipid_to_nrcores(u16 chipid)
case 0x4704: case 0x4704:
return 9; return 9;
default: default:
ssb_err("CHIPID not in nrcores fallback list\n"); pr_err("CHIPID not in nrcores fallback list\n");
} }
return 1; return 1;
@ -318,13 +318,13 @@ int ssb_bus_scan(struct ssb_bus *bus,
bus->chip_package = 0; bus->chip_package = 0;
} }
} }
ssb_info("Found chip with id 0x%04X, rev 0x%02X and package 0x%02X\n", pr_info("Found chip with id 0x%04X, rev 0x%02X and package 0x%02X\n",
bus->chip_id, bus->chip_rev, bus->chip_package); bus->chip_id, bus->chip_rev, bus->chip_package);
if (!bus->nr_devices) if (!bus->nr_devices)
bus->nr_devices = chipid_to_nrcores(bus->chip_id); bus->nr_devices = chipid_to_nrcores(bus->chip_id);
if (bus->nr_devices > ARRAY_SIZE(bus->devices)) { if (bus->nr_devices > ARRAY_SIZE(bus->devices)) {
ssb_err("More than %d ssb cores found (%d)\n", pr_err("More than %d ssb cores found (%d)\n",
SSB_MAX_NR_CORES, bus->nr_devices); SSB_MAX_NR_CORES, bus->nr_devices);
goto err_unmap; goto err_unmap;
} }
if (bus->bustype == SSB_BUSTYPE_SSB) { if (bus->bustype == SSB_BUSTYPE_SSB) {
@ -355,18 +355,16 @@ int ssb_bus_scan(struct ssb_bus *bus,
dev->bus = bus; dev->bus = bus;
dev->ops = bus->ops; dev->ops = bus->ops;
printk(KERN_DEBUG PFX pr_debug("Core %d found: %s (cc 0x%03X, rev 0x%02X, vendor 0x%04X)\n",
"Core %d found: %s " i, ssb_core_name(dev->id.coreid),
"(cc 0x%03X, rev 0x%02X, vendor 0x%04X)\n", dev->id.coreid, dev->id.revision, dev->id.vendor);
i, ssb_core_name(dev->id.coreid),
dev->id.coreid, dev->id.revision, dev->id.vendor);
switch (dev->id.coreid) { switch (dev->id.coreid) {
case SSB_DEV_80211: case SSB_DEV_80211:
nr_80211_cores++; nr_80211_cores++;
if (nr_80211_cores > 1) { if (nr_80211_cores > 1) {
if (!we_support_multiple_80211_cores(bus)) { if (!we_support_multiple_80211_cores(bus)) {
ssb_dbg("Ignoring additional 802.11 core\n"); pr_debug("Ignoring additional 802.11 core\n");
continue; continue;
} }
} }
@ -374,7 +372,7 @@ int ssb_bus_scan(struct ssb_bus *bus,
case SSB_DEV_EXTIF: case SSB_DEV_EXTIF:
#ifdef CONFIG_SSB_DRIVER_EXTIF #ifdef CONFIG_SSB_DRIVER_EXTIF
if (bus->extif.dev) { if (bus->extif.dev) {
ssb_warn("WARNING: Multiple EXTIFs found\n"); pr_warn("WARNING: Multiple EXTIFs found\n");
break; break;
} }
bus->extif.dev = dev; bus->extif.dev = dev;
@ -382,7 +380,7 @@ int ssb_bus_scan(struct ssb_bus *bus,
break; break;
case SSB_DEV_CHIPCOMMON: case SSB_DEV_CHIPCOMMON:
if (bus->chipco.dev) { if (bus->chipco.dev) {
ssb_warn("WARNING: Multiple ChipCommon found\n"); pr_warn("WARNING: Multiple ChipCommon found\n");
break; break;
} }
bus->chipco.dev = dev; bus->chipco.dev = dev;
@ -391,7 +389,7 @@ int ssb_bus_scan(struct ssb_bus *bus,
case SSB_DEV_MIPS_3302: case SSB_DEV_MIPS_3302:
#ifdef CONFIG_SSB_DRIVER_MIPS #ifdef CONFIG_SSB_DRIVER_MIPS
if (bus->mipscore.dev) { if (bus->mipscore.dev) {
ssb_warn("WARNING: Multiple MIPS cores found\n"); pr_warn("WARNING: Multiple MIPS cores found\n");
break; break;
} }
bus->mipscore.dev = dev; bus->mipscore.dev = dev;
@ -412,7 +410,7 @@ int ssb_bus_scan(struct ssb_bus *bus,
} }
} }
if (bus->pcicore.dev) { if (bus->pcicore.dev) {
ssb_warn("WARNING: Multiple PCI(E) cores found\n"); pr_warn("WARNING: Multiple PCI(E) cores found\n");
break; break;
} }
bus->pcicore.dev = dev; bus->pcicore.dev = dev;

View File

@ -12,14 +12,14 @@
* *
*/ */
#include "ssb_private.h"
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include <linux/delay.h> #include <linux/delay.h>
#include <linux/io.h> #include <linux/io.h>
#include <linux/etherdevice.h> #include <linux/etherdevice.h>
#include <linux/mmc/sdio_func.h> #include <linux/mmc/sdio_func.h>
#include "ssb_private.h"
/* Define the following to 1 to enable a printk on each coreswitch. */ /* Define the following to 1 to enable a printk on each coreswitch. */
#define SSB_VERBOSE_SDIOCORESWITCH_DEBUG 0 #define SSB_VERBOSE_SDIOCORESWITCH_DEBUG 0

View File

@ -127,13 +127,13 @@ ssize_t ssb_attr_sprom_store(struct ssb_bus *bus,
goto out_kfree; goto out_kfree;
err = ssb_devices_freeze(bus, &freeze); err = ssb_devices_freeze(bus, &freeze);
if (err) { if (err) {
ssb_err("SPROM write: Could not freeze all devices\n"); pr_err("SPROM write: Could not freeze all devices\n");
goto out_unlock; goto out_unlock;
} }
res = sprom_write(bus, sprom); res = sprom_write(bus, sprom);
err = ssb_devices_thaw(&freeze); err = ssb_devices_thaw(&freeze);
if (err) if (err)
ssb_err("SPROM write: Could not thaw all devices\n"); pr_err("SPROM write: Could not thaw all devices\n");
out_unlock: out_unlock:
mutex_unlock(&bus->sprom_mutex); mutex_unlock(&bus->sprom_mutex);
out_kfree: out_kfree:

View File

@ -2,37 +2,13 @@
#ifndef LINUX_SSB_PRIVATE_H_ #ifndef LINUX_SSB_PRIVATE_H_
#define LINUX_SSB_PRIVATE_H_ #define LINUX_SSB_PRIVATE_H_
#define PFX "ssb: "
#define pr_fmt(fmt) PFX fmt
#include <linux/ssb/ssb.h> #include <linux/ssb/ssb.h>
#include <linux/types.h> #include <linux/types.h>
#include <linux/bcm47xx_wdt.h> #include <linux/bcm47xx_wdt.h>
#define PFX "ssb: "
#ifdef CONFIG_SSB_SILENT
# define ssb_printk(fmt, ...) \
do { if (0) printk(fmt, ##__VA_ARGS__); } while (0)
#else
# define ssb_printk(fmt, ...) \
printk(fmt, ##__VA_ARGS__)
#endif /* CONFIG_SSB_SILENT */
#define ssb_emerg(fmt, ...) ssb_printk(KERN_EMERG PFX fmt, ##__VA_ARGS__)
#define ssb_err(fmt, ...) ssb_printk(KERN_ERR PFX fmt, ##__VA_ARGS__)
#define ssb_warn(fmt, ...) ssb_printk(KERN_WARNING PFX fmt, ##__VA_ARGS__)
#define ssb_notice(fmt, ...) ssb_printk(KERN_NOTICE PFX fmt, ##__VA_ARGS__)
#define ssb_info(fmt, ...) ssb_printk(KERN_INFO PFX fmt, ##__VA_ARGS__)
#define ssb_cont(fmt, ...) ssb_printk(KERN_CONT fmt, ##__VA_ARGS__)
/* dprintk: Debugging printk; vanishes for non-debug compilation */
#ifdef CONFIG_SSB_DEBUG
# define ssb_dbg(fmt, ...) \
ssb_printk(KERN_DEBUG PFX fmt, ##__VA_ARGS__)
#else
# define ssb_dbg(fmt, ...) \
do { if (0) printk(KERN_DEBUG PFX fmt, ##__VA_ARGS__); } while (0)
#endif
#ifdef CONFIG_SSB_DEBUG #ifdef CONFIG_SSB_DEBUG
# define SSB_WARN_ON(x) WARN_ON(x) # define SSB_WARN_ON(x) WARN_ON(x)
# define SSB_BUG_ON(x) BUG_ON(x) # define SSB_BUG_ON(x) BUG_ON(x)