Commit 33a606ac authored by Joe Perches's avatar Joe Perches Committed by John W. Linville

ssb: Convert ssb_printk to ssb_<level>

Use a more current logging style.

Convert ssb_dbprint to ssb_dbg too.
Signed-off-by: default avatarJoe Perches <joe@perches.com>
Signed-off-by: default avatarJohn W. Linville <linville@tuxdriver.com>
parent e5652756
...@@ -354,7 +354,7 @@ void ssb_chipcommon_init(struct ssb_chipcommon *cc) ...@@ -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_dprintk(KERN_INFO PFX "chipcommon status is 0x%x\n", cc->status); ssb_dbg("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);
......
...@@ -110,8 +110,8 @@ static void ssb_pmu0_pllinit_r0(struct ssb_chipcommon *cc, ...@@ -110,8 +110,8 @@ static void ssb_pmu0_pllinit_r0(struct ssb_chipcommon *cc,
return; return;
} }
ssb_printk(KERN_INFO PFX "Programming PLL to %u.%03u MHz\n", ssb_info("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. */
switch (bus->chip_id) { switch (bus->chip_id) {
...@@ -138,7 +138,7 @@ static void ssb_pmu0_pllinit_r0(struct ssb_chipcommon *cc, ...@@ -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_printk(KERN_EMERG PFX "Failed to turn the PLL off!\n"); ssb_emerg("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,8 +249,8 @@ static void ssb_pmu1_pllinit_r0(struct ssb_chipcommon *cc, ...@@ -249,8 +249,8 @@ static void ssb_pmu1_pllinit_r0(struct ssb_chipcommon *cc,
return; return;
} }
ssb_printk(KERN_INFO PFX "Programming PLL to %u.%03u MHz\n", ssb_info("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. */
switch (bus->chip_id) { switch (bus->chip_id) {
...@@ -275,7 +275,7 @@ static void ssb_pmu1_pllinit_r0(struct ssb_chipcommon *cc, ...@@ -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_printk(KERN_EMERG PFX "Failed to turn the PLL off!\n"); ssb_emerg("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,8 +349,7 @@ static void ssb_pmu_pll_init(struct ssb_chipcommon *cc) ...@@ -349,8 +349,7 @@ static void ssb_pmu_pll_init(struct ssb_chipcommon *cc)
case 43222: case 43222:
break; break;
default: default:
ssb_printk(KERN_ERR PFX ssb_err("ERROR: PLL init unknown for device %04X\n",
"ERROR: PLL init unknown for device %04X\n",
bus->chip_id); bus->chip_id);
} }
} }
...@@ -472,8 +471,7 @@ static void ssb_pmu_resources_init(struct ssb_chipcommon *cc) ...@@ -472,8 +471,7 @@ static void ssb_pmu_resources_init(struct ssb_chipcommon *cc)
max_msk = 0xFFFFF; max_msk = 0xFFFFF;
break; break;
default: default:
ssb_printk(KERN_ERR PFX ssb_err("ERROR: PMU resource config unknown for device %04X\n",
"ERROR: PMU resource config unknown for device %04X\n",
bus->chip_id); bus->chip_id);
} }
...@@ -526,7 +524,7 @@ void ssb_pmu_init(struct ssb_chipcommon *cc) ...@@ -526,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_dprintk(KERN_DEBUG PFX "Found rev %u PMU (capabilities 0x%08X)\n", ssb_dbg("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)
...@@ -638,8 +636,7 @@ u32 ssb_pmu_get_alp_clock(struct ssb_chipcommon *cc) ...@@ -638,8 +636,7 @@ u32 ssb_pmu_get_alp_clock(struct ssb_chipcommon *cc)
case 0x5354: case 0x5354:
ssb_pmu_get_alp_clock_clk0(cc); ssb_pmu_get_alp_clock_clk0(cc);
default: default:
ssb_printk(KERN_ERR PFX ssb_err("ERROR: PMU alp clock unknown for device %04X\n",
"ERROR: PMU alp clock unknown for device %04X\n",
bus->chip_id); bus->chip_id);
return 0; return 0;
} }
...@@ -654,8 +651,7 @@ u32 ssb_pmu_get_cpu_clock(struct ssb_chipcommon *cc) ...@@ -654,8 +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_printk(KERN_ERR PFX ssb_err("ERROR: PMU cpu clock unknown for device %04X\n",
"ERROR: PMU cpu clock unknown for device %04X\n",
bus->chip_id); bus->chip_id);
return 0; return 0;
} }
...@@ -669,8 +665,7 @@ u32 ssb_pmu_get_controlclock(struct ssb_chipcommon *cc) ...@@ -669,8 +665,7 @@ u32 ssb_pmu_get_controlclock(struct ssb_chipcommon *cc)
case 0x5354: case 0x5354:
return 120000000; return 120000000;
default: default:
ssb_printk(KERN_ERR PFX ssb_err("ERROR: PMU controlclock unknown for device %04X\n",
"ERROR: PMU controlclock unknown for device %04X\n",
bus->chip_id); bus->chip_id);
return 0; return 0;
} }
......
...@@ -167,21 +167,22 @@ static void set_irq(struct ssb_device *dev, unsigned int irq) ...@@ -167,21 +167,22 @@ 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_dprintk(KERN_INFO PFX ssb_dbg("set_irq: core 0x%04x, irq %d => %d\n",
"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)
{ {
int i;
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_dprintk(KERN_INFO PFX ssb_dbg("core 0x%04x, irq : %s%s %s%s %s%s %s%s %s%s %s%s %s%s\n",
"core 0x%04x, irq :", dev->id.coreid); dev->id.coreid,
for (i = 0; i <= 6; i++) { irq_name[0], irq == 0 ? "*" : " ",
ssb_dprintk(" %s%s", irq_name[i], i==irq?"*":" "); irq_name[1], irq == 1 ? "*" : " ",
} irq_name[2], irq == 2 ? "*" : " ",
ssb_dprintk("\n"); irq_name[3], irq == 3 ? "*" : " ",
irq_name[4], irq == 4 ? "*" : " ",
irq_name[5], irq == 5 ? "*" : " ",
irq_name[6], irq == 6 ? "*" : " ");
} }
static void dump_irq(struct ssb_bus *bus) static void dump_irq(struct ssb_bus *bus)
...@@ -286,7 +287,7 @@ void ssb_mipscore_init(struct ssb_mipscore *mcore) ...@@ -286,7 +287,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_dprintk(KERN_INFO PFX "Initializing MIPS core...\n"); ssb_dbg("Initializing MIPS core...\n");
bus = mcore->dev->bus; bus = mcore->dev->bus;
hz = ssb_clockspeed(bus); hz = ssb_clockspeed(bus);
...@@ -334,7 +335,7 @@ void ssb_mipscore_init(struct ssb_mipscore *mcore) ...@@ -334,7 +335,7 @@ void ssb_mipscore_init(struct ssb_mipscore *mcore)
break; break;
} }
} }
ssb_dprintk(KERN_INFO PFX "after irq reconfiguration\n"); ssb_dbg("after irq reconfiguration\n");
dump_irq(bus); dump_irq(bus);
ssb_mips_serial_init(mcore); ssb_mips_serial_init(mcore);
......
...@@ -263,8 +263,7 @@ int ssb_pcicore_plat_dev_init(struct pci_dev *d) ...@@ -263,8 +263,7 @@ int ssb_pcicore_plat_dev_init(struct pci_dev *d)
return -ENODEV; return -ENODEV;
} }
ssb_printk(KERN_INFO "PCI: Fixing up device %s\n", ssb_info("PCI: Fixing up device %s\n", pci_name(d));
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;
...@@ -285,12 +284,12 @@ static void ssb_pcicore_fixup_pcibridge(struct pci_dev *dev) ...@@ -285,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_printk(KERN_INFO "PCI: Fixing up bridge %s\n", pci_name(dev)); ssb_info("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_printk(KERN_ERR "PCI: SSB bridge enable failed\n"); ssb_err("PCI: SSB bridge enable failed\n");
return; return;
} }
...@@ -299,7 +298,7 @@ static void ssb_pcicore_fixup_pcibridge(struct pci_dev *dev) ...@@ -299,7 +298,7 @@ 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_printk(KERN_INFO "PCI: Fixing latency timer of device %s to %u\n", ssb_info("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);
} }
...@@ -323,7 +322,7 @@ static void ssb_pcicore_init_hostmode(struct ssb_pcicore *pc) ...@@ -323,7 +322,7 @@ static void ssb_pcicore_init_hostmode(struct ssb_pcicore *pc)
return; return;
extpci_core = pc; extpci_core = pc;
ssb_dprintk(KERN_INFO PFX "PCIcore in host mode found\n"); ssb_dbg("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;
...@@ -338,7 +337,7 @@ static void ssb_pcicore_init_hostmode(struct ssb_pcicore *pc) ...@@ -338,7 +337,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_dprintk(KERN_INFO PFX "CardBus slot detected\n"); ssb_dbg("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);
......
...@@ -57,8 +57,7 @@ int ssb_watchdog_register(struct ssb_bus *bus) ...@@ -57,8 +57,7 @@ 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_dprintk(KERN_INFO PFX ssb_dbg("can not register watchdog device, err: %li\n",
"can not register watchdog device, err: %li\n",
PTR_ERR(pdev)); PTR_ERR(pdev));
return PTR_ERR(pdev); return PTR_ERR(pdev);
} }
......
...@@ -275,7 +275,7 @@ int ssb_devices_thaw(struct ssb_freeze_context *ctx) ...@@ -275,7 +275,7 @@ 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_printk(KERN_ERR PFX "Failed to thaw device %s\n", ssb_err("Failed to thaw device %s\n",
dev_name(sdev->dev)); dev_name(sdev->dev));
result = err; result = err;
} }
...@@ -447,10 +447,9 @@ void ssb_bus_unregister(struct ssb_bus *bus) ...@@ -447,10 +447,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_dprintk(KERN_ERR PFX "Some GPIOs are still in use.\n"); ssb_dbg("Some GPIOs are still in use\n");
else if (err) else if (err)
ssb_dprintk(KERN_ERR PFX ssb_dbg("Can not unregister GPIO driver: %i\n", err);
"Can not unregister GPIO driver: %i\n", err);
ssb_buses_lock(); ssb_buses_lock();
ssb_devices_unregister(bus); ssb_devices_unregister(bus);
...@@ -497,8 +496,7 @@ static int ssb_devices_register(struct ssb_bus *bus) ...@@ -497,8 +496,7 @@ static int ssb_devices_register(struct ssb_bus *bus)
devwrap = kzalloc(sizeof(*devwrap), GFP_KERNEL); devwrap = kzalloc(sizeof(*devwrap), GFP_KERNEL);
if (!devwrap) { if (!devwrap) {
ssb_printk(KERN_ERR PFX ssb_err("Could not allocate device\n");
"Could not allocate device\n");
err = -ENOMEM; err = -ENOMEM;
goto error; goto error;
} }
...@@ -537,9 +535,7 @@ static int ssb_devices_register(struct ssb_bus *bus) ...@@ -537,9 +535,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_printk(KERN_ERR PFX ssb_err("Could not register %s\n", dev_name(dev));
"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;
...@@ -825,10 +821,9 @@ static int ssb_bus_register(struct ssb_bus *bus, ...@@ -825,10 +821,9 @@ static int ssb_bus_register(struct ssb_bus *bus,
ssb_mipscore_init(&bus->mipscore); ssb_mipscore_init(&bus->mipscore);
err = ssb_gpio_init(bus); err = ssb_gpio_init(bus);
if (err == -ENOTSUPP) if (err == -ENOTSUPP)
ssb_dprintk(KERN_DEBUG PFX "GPIO driver not activated\n"); ssb_dbg("GPIO driver not activated\n");
else if (err) else if (err)
ssb_dprintk(KERN_ERR PFX ssb_dbg("Error registering GPIO driver: %i\n", err);
"Error registering GPIO driver: %i\n", err);
err = ssb_fetch_invariants(bus, get_invariants); err = ssb_fetch_invariants(bus, get_invariants);
if (err) { if (err) {
ssb_bus_may_powerdown(bus); ssb_bus_may_powerdown(bus);
...@@ -878,11 +873,11 @@ int ssb_bus_pcibus_register(struct ssb_bus *bus, struct pci_dev *host_pci) ...@@ -878,11 +873,11 @@ 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_printk(KERN_INFO PFX "Sonics Silicon Backplane found on " ssb_info("Sonics Silicon Backplane found on PCI device %s\n",
"PCI device %s\n", dev_name(&host_pci->dev)); dev_name(&host_pci->dev));
} else { } else {
ssb_printk(KERN_ERR PFX "Failed to register PCI version" ssb_err("Failed to register PCI version of SSB with error %d\n",
" of SSB with error %d\n", err); err);
} }
return err; return err;
...@@ -903,8 +898,8 @@ int ssb_bus_pcmciabus_register(struct ssb_bus *bus, ...@@ -903,8 +898,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_printk(KERN_INFO PFX "Sonics Silicon Backplane found on " ssb_info("Sonics Silicon Backplane found on PCMCIA device %s\n",
"PCMCIA device %s\n", pcmcia_dev->devname); pcmcia_dev->devname);
} }
return err; return err;
...@@ -925,8 +920,8 @@ int ssb_bus_sdiobus_register(struct ssb_bus *bus, struct sdio_func *func, ...@@ -925,8 +920,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_printk(KERN_INFO PFX "Sonics Silicon Backplane found on " ssb_info("Sonics Silicon Backplane found on SDIO device %s\n",
"SDIO device %s\n", sdio_func_id(func)); sdio_func_id(func));
} }
return err; return err;
...@@ -944,8 +939,8 @@ int ssb_bus_ssbbus_register(struct ssb_bus *bus, unsigned long baseaddr, ...@@ -944,8 +939,8 @@ int ssb_bus_ssbbus_register(struct ssb_bus *bus, unsigned long baseaddr,
err = ssb_bus_register(bus, get_invariants, baseaddr); err = ssb_bus_register(bus, get_invariants, baseaddr);
if (!err) { if (!err) {
ssb_printk(KERN_INFO PFX "Sonics Silicon Backplane found at " ssb_info("Sonics Silicon Backplane found at address 0x%08lX\n",
"address 0x%08lX\n", baseaddr); baseaddr);
} }
return err; return err;
...@@ -1339,7 +1334,7 @@ int ssb_bus_may_powerdown(struct ssb_bus *bus) ...@@ -1339,7 +1334,7 @@ int ssb_bus_may_powerdown(struct ssb_bus *bus)
#endif #endif
return err; return err;
error: error:
ssb_printk(KERN_ERR PFX "Bus powerdown failed\n"); ssb_err("Bus powerdown failed\n");
goto out; goto out;
} }
EXPORT_SYMBOL(ssb_bus_may_powerdown); EXPORT_SYMBOL(ssb_bus_may_powerdown);
...@@ -1362,7 +1357,7 @@ int ssb_bus_powerup(struct ssb_bus *bus, bool dynamic_pctl) ...@@ -1362,7 +1357,7 @@ int ssb_bus_powerup(struct ssb_bus *bus, bool dynamic_pctl)
return 0; return 0;
error: error:
ssb_printk(KERN_ERR PFX "Bus powerup failed\n"); ssb_err("Bus powerup failed\n");
return err; return err;
} }
EXPORT_SYMBOL(ssb_bus_powerup); EXPORT_SYMBOL(ssb_bus_powerup);
...@@ -1470,15 +1465,13 @@ static int __init ssb_modinit(void) ...@@ -1470,15 +1465,13 @@ static int __init ssb_modinit(void)
err = b43_pci_ssb_bridge_init(); err = b43_pci_ssb_bridge_init();
if (err) { if (err) {
ssb_printk(KERN_ERR "Broadcom 43xx PCI-SSB-bridge " ssb_err("Broadcom 43xx PCI-SSB-bridge initialization failed\n");
"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_printk(KERN_ERR "SSB Broadcom Gigabit Ethernet " ssb_err("SSB Broadcom Gigabit Ethernet driver initialization failed\n");
"driver initialization failed\n");
/* don't fail SSB init because of this */ /* don't fail SSB init because of this */
err = 0; err = 0;
} }
......
...@@ -56,7 +56,7 @@ int ssb_pci_switch_coreidx(struct ssb_bus *bus, u8 coreidx) ...@@ -56,7 +56,7 @@ int ssb_pci_switch_coreidx(struct ssb_bus *bus, u8 coreidx)
} }
return 0; return 0;
error: error:
ssb_printk(KERN_ERR PFX "Failed to switch to core %u\n", coreidx); ssb_err("Failed to switch to core %u\n", coreidx);
return -ENODEV; return -ENODEV;
} }
...@@ -67,8 +67,7 @@ int ssb_pci_switch_core(struct ssb_bus *bus, ...@@ -67,8 +67,7 @@ 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_printk(KERN_INFO PFX ssb_info("Switching to %s core, index %d\n",
"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
...@@ -287,7 +286,7 @@ static int sprom_do_write(struct ssb_bus *bus, const u16 *sprom) ...@@ -287,7 +286,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_printk(KERN_NOTICE PFX "Writing SPROM. Do NOT turn off the power! Please stand by...\n"); ssb_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;
...@@ -295,17 +294,17 @@ static int sprom_do_write(struct ssb_bus *bus, const u16 *sprom) ...@@ -295,17 +294,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_printk(KERN_NOTICE PFX "[ 0%%"); ssb_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_printk("25%%"); ssb_cont("25%%");
else if (i == size / 2) else if (i == size / 2)
ssb_printk("50%%"); ssb_cont("50%%");
else if (i == (size * 3) / 4) else if (i == (size * 3) / 4)
ssb_printk("75%%"); ssb_cont("75%%");
else if (i % 2) else if (i % 2)
ssb_printk("."); ssb_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);
...@@ -318,12 +317,12 @@ static int sprom_do_write(struct ssb_bus *bus, const u16 *sprom) ...@@ -318,12 +317,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_printk("100%% ]\n"); ssb_cont("100%% ]\n");
ssb_printk(KERN_NOTICE PFX "SPROM written.\n"); ssb_notice("SPROM written\n");
return 0; return 0;
err_ctlreg: err_ctlreg:
ssb_printk(KERN_ERR PFX "Could not access SPROM control register.\n"); ssb_err("Could not access SPROM control register.\n");
return err; return err;
} }
...@@ -735,7 +734,7 @@ static int sprom_extract(struct ssb_bus *bus, struct ssb_sprom *out, ...@@ -735,7 +734,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_dprintk(KERN_DEBUG PFX "SPROM revision %d detected.\n", out->revision); ssb_dbg("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);
...@@ -744,7 +743,7 @@ static int sprom_extract(struct ssb_bus *bus, struct ssb_sprom *out, ...@@ -744,7 +743,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_dprintk(KERN_DEBUG PFX "SPROM treated as revision %d\n", out->revision); ssb_dbg("SPROM treated as revision %d\n", out->revision);
} }
switch (out->revision) { switch (out->revision) {
...@@ -761,9 +760,8 @@ static int sprom_extract(struct ssb_bus *bus, struct ssb_sprom *out, ...@@ -761,9 +760,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_printk(KERN_WARNING PFX "Unsupported SPROM" ssb_warn("Unsupported SPROM revision %d detected. Will extract v1\n",
" revision %d detected. Will extract" out->revision);
" v1\n", out->revision);
out->revision = 1; out->revision = 1;
sprom_extract_r123(out, in); sprom_extract_r123(out, in);
} }
...@@ -783,7 +781,7 @@ static int ssb_pci_sprom_get(struct ssb_bus *bus, ...@@ -783,7 +781,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_printk(KERN_ERR PFX "No SPROM available!\n"); ssb_err("No SPROM available!\n");
return -ENODEV; return -ENODEV;
} }
if (bus->chipco.dev) { /* can be unavailable! */ if (bus->chipco.dev) { /* can be unavailable! */
...@@ -802,7 +800,7 @@ static int ssb_pci_sprom_get(struct ssb_bus *bus, ...@@ -802,7 +800,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_dprintk(KERN_INFO PFX "SPROM offset is 0x%x\n", bus->sprom_offset); ssb_dbg("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)
...@@ -827,18 +825,15 @@ static int ssb_pci_sprom_get(struct ssb_bus *bus, ...@@ -827,18 +825,15 @@ 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_printk(KERN_WARNING PFX "WARNING: Using" ssb_warn("WARNING: Using fallback SPROM failed (err %d)\n",
" fallback SPROM failed (err %d)\n",
err); err);
} else { } else {
ssb_dprintk(KERN_DEBUG PFX "Using SPROM" ssb_dbg("Using SPROM revision %d provided by platform\n",
" revision %d provided by" sprom->revision);
" platform.\n", sprom->revision);
err = 0; err = 0;
goto out_free; goto out_free;
} }
ssb_printk(KERN_WARNING PFX "WARNING: Invalid" ssb_warn("WARNING: Invalid SPROM CRC (corrupt SPROM)\n");
" SPROM CRC (corrupt SPROM)\n");
} }
} }
err = sprom_extract(bus, sprom, buf, bus->sprom_size); err = sprom_extract(bus, sprom, buf, bus->sprom_size);
......
...@@ -143,7 +143,7 @@ int ssb_pcmcia_switch_coreidx(struct ssb_bus *bus, ...@@ -143,7 +143,7 @@ int ssb_pcmcia_switch_coreidx(struct ssb_bus *bus,
return 0; return 0;
error: error:
ssb_printk(KERN_ERR PFX "Failed to switch to core %u\n", coreidx); ssb_err("Failed to switch to core %u\n", coreidx);
return err; return err;
} }
...@@ -153,8 +153,7 @@ int ssb_pcmcia_switch_core(struct ssb_bus *bus, ...@@ -153,8 +153,7 @@ int ssb_pcmcia_switch_core(struct ssb_bus *bus,
int err; int err;
#if SSB_VERBOSE_PCMCIACORESWITCH_DEBUG #if SSB_VERBOSE_PCMCIACORESWITCH_DEBUG
ssb_printk(KERN_INFO PFX ssb_info("Switching to %s core, index %d\n",
"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
...@@ -192,7 +191,7 @@ int ssb_pcmcia_switch_segment(struct ssb_bus *bus, u8 seg) ...@@ -192,7 +191,7 @@ int ssb_pcmcia_switch_segment(struct ssb_bus *bus, u8 seg)
return 0; return 0;
error: error:
ssb_printk(KERN_ERR PFX "Failed to switch pcmcia segment\n"); ssb_err("Failed to switch pcmcia segment\n");
return err; return err;
} }
...@@ -549,44 +548,39 @@ static int ssb_pcmcia_sprom_write_all(struct ssb_bus *bus, const u16 *sprom) ...@@ -549,44 +548,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_printk(KERN_NOTICE PFX ssb_notice("Writing SPROM. Do NOT turn off the power! Please stand by...\n");
"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_printk(KERN_NOTICE PFX ssb_notice("Could not enable SPROM write access\n");
"Could not enable SPROM write access.\n");
return -EBUSY; return -EBUSY;
} }
ssb_printk(KERN_NOTICE PFX "[ 0%%"); ssb_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_printk("25%%"); ssb_cont("25%%");
else if (i == size / 2) else if (i == size / 2)
ssb_printk("50%%"); ssb_cont("50%%");
else if (i == (size * 3) / 4) else if (i == (size * 3) / 4)
ssb_printk("75%%"); ssb_cont("75%%");
else if (i % 2) else if (i % 2)
ssb_printk("."); ssb_cont(".");
err = ssb_pcmcia_sprom_write(bus, i, sprom[i]); err = ssb_pcmcia_sprom_write(bus, i, sprom[i]);
if (err) { if (err) {
ssb_printk(KERN_NOTICE PFX ssb_notice("Failed to write to SPROM\n");
"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_printk(KERN_NOTICE PFX ssb_notice("Could not disable SPROM write access\n");
"Could not disable SPROM write access.\n");
failed = 1; failed = 1;
} }
msleep(500); msleep(500);
if (!failed) { if (!failed) {
ssb_printk("100%% ]\n"); ssb_cont("100%% ]\n");
ssb_printk(KERN_NOTICE PFX "SPROM written.\n"); ssb_notice("SPROM written\n");
} }
return failed ? -EBUSY : 0; return failed ? -EBUSY : 0;
...@@ -700,7 +694,7 @@ static int ssb_pcmcia_do_get_invariants(struct pcmcia_device *p_dev, ...@@ -700,7 +694,7 @@ 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_printk(KERN_ERR PFX ssb_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;
...@@ -722,7 +716,7 @@ int ssb_pcmcia_get_invariants(struct ssb_bus *bus, ...@@ -722,7 +716,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_printk(KERN_ERR PFX ssb_err(
"PCMCIA: Failed to fetch MAC address\n"); "PCMCIA: Failed to fetch MAC address\n");
return -ENODEV; return -ENODEV;
} }
...@@ -733,7 +727,7 @@ int ssb_pcmcia_get_invariants(struct ssb_bus *bus, ...@@ -733,7 +727,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_printk(KERN_ERR PFX ssb_err(
"PCMCIA: Failed to fetch device invariants\n"); "PCMCIA: Failed to fetch device invariants\n");
return -ENODEV; return -ENODEV;
} }
...@@ -843,6 +837,6 @@ int ssb_pcmcia_init(struct ssb_bus *bus) ...@@ -843,6 +837,6 @@ int ssb_pcmcia_init(struct ssb_bus *bus)
return 0; return 0;
error: error:
ssb_printk(KERN_ERR PFX "Failed to initialize PCMCIA host device\n"); ssb_err("Failed to initialize PCMCIA host device\n");
return err; return err;
} }
...@@ -125,8 +125,7 @@ static u16 pcidev_to_chipid(struct pci_dev *pci_dev) ...@@ -125,8 +125,7 @@ static u16 pcidev_to_chipid(struct pci_dev *pci_dev)
chipid_fallback = 0x4401; chipid_fallback = 0x4401;
break; break;
default: default:
ssb_printk(KERN_ERR PFX ssb_err("PCI-ID not in fallback list\n");
"PCI-ID not in fallback list\n");
} }
return chipid_fallback; return chipid_fallback;
...@@ -152,8 +151,7 @@ static u8 chipid_to_nrcores(u16 chipid) ...@@ -152,8 +151,7 @@ static u8 chipid_to_nrcores(u16 chipid)
case 0x4704: case 0x4704:
return 9; return 9;
default: default:
ssb_printk(KERN_ERR PFX ssb_err("CHIPID not in nrcores fallback list\n");
"CHIPID not in nrcores fallback list\n");
} }
return 1; return 1;
...@@ -320,14 +318,12 @@ int ssb_bus_scan(struct ssb_bus *bus, ...@@ -320,14 +318,12 @@ int ssb_bus_scan(struct ssb_bus *bus,
bus->chip_package = 0; bus->chip_package = 0;
} }
} }
ssb_printk(KERN_INFO PFX "Found chip with id 0x%04X, rev 0x%02X and " ssb_info("Found chip with id 0x%04X, rev 0x%02X and package 0x%02X\n",
"package 0x%02X\n", bus->chip_id, bus->chip_rev, bus->chip_id, bus->chip_rev, bus->chip_package);
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_printk(KERN_ERR PFX ssb_err("More than %d ssb cores found (%d)\n",
"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;
} }
...@@ -370,8 +366,7 @@ int ssb_bus_scan(struct ssb_bus *bus, ...@@ -370,8 +366,7 @@ int ssb_bus_scan(struct ssb_bus *bus,
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_dprintk(KERN_INFO PFX "Ignoring additional " ssb_dbg("Ignoring additional 802.11 core\n");
"802.11 core\n");
continue; continue;
} }
} }
...@@ -379,8 +374,7 @@ int ssb_bus_scan(struct ssb_bus *bus, ...@@ -379,8 +374,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_printk(KERN_WARNING PFX ssb_warn("WARNING: Multiple EXTIFs found\n");
"WARNING: Multiple EXTIFs found\n");
break; break;
} }
bus->extif.dev = dev; bus->extif.dev = dev;
...@@ -388,8 +382,7 @@ int ssb_bus_scan(struct ssb_bus *bus, ...@@ -388,8 +382,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_printk(KERN_WARNING PFX ssb_warn("WARNING: Multiple ChipCommon found\n");
"WARNING: Multiple ChipCommon found\n");
break; break;
} }
bus->chipco.dev = dev; bus->chipco.dev = dev;
...@@ -398,8 +391,7 @@ int ssb_bus_scan(struct ssb_bus *bus, ...@@ -398,8 +391,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_printk(KERN_WARNING PFX ssb_warn("WARNING: Multiple MIPS cores found\n");
"WARNING: Multiple MIPS cores found\n");
break; break;
} }
bus->mipscore.dev = dev; bus->mipscore.dev = dev;
...@@ -420,8 +412,7 @@ int ssb_bus_scan(struct ssb_bus *bus, ...@@ -420,8 +412,7 @@ int ssb_bus_scan(struct ssb_bus *bus,
} }
} }
if (bus->pcicore.dev) { if (bus->pcicore.dev) {
ssb_printk(KERN_WARNING PFX ssb_warn("WARNING: Multiple PCI(E) cores found\n");
"WARNING: Multiple PCI(E) cores found\n");
break; break;
} }
bus->pcicore.dev = dev; bus->pcicore.dev = dev;
......
...@@ -127,13 +127,13 @@ ssize_t ssb_attr_sprom_store(struct ssb_bus *bus, ...@@ -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_printk(KERN_ERR PFX "SPROM write: Could not freeze all devices\n"); ssb_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_printk(KERN_ERR PFX "SPROM write: Could not thaw all devices\n"); ssb_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:
......
...@@ -9,16 +9,27 @@ ...@@ -9,16 +9,27 @@
#define PFX "ssb: " #define PFX "ssb: "
#ifdef CONFIG_SSB_SILENT #ifdef CONFIG_SSB_SILENT
# define ssb_printk(fmt, x...) do { /* nothing */ } while (0) # define ssb_printk(fmt, ...) \
do { if (0) printk(fmt, ##__VA_ARGS__); } while (0)
#else #else
# define ssb_printk printk # define ssb_printk(fmt, ...) \
printk(fmt, ##__VA_ARGS__)
#endif /* CONFIG_SSB_SILENT */ #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 */ /* dprintk: Debugging printk; vanishes for non-debug compilation */
#ifdef CONFIG_SSB_DEBUG #ifdef CONFIG_SSB_DEBUG
# define ssb_dprintk(fmt, x...) ssb_printk(fmt , ##x) # define ssb_dbg(fmt, ...) \
ssb_printk(KERN_DEBUG PFX fmt, ##__VA_ARGS__)
#else #else
# define ssb_dprintk(fmt, x...) do { /* nothing */ } while (0) # define ssb_dbg(fmt, ...) \
do { if (0) printk(KERN_DEBUG PFX fmt, ##__VA_ARGS__); } while (0)
#endif #endif
#ifdef CONFIG_SSB_DEBUG #ifdef CONFIG_SSB_DEBUG
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment