Lines Matching +full:bus +full:- +full:err

20 #include <linux/dma-mapping.h>
33 /* Temporary list of yet-to-be-attached buses */
44 /* There are differences in the codeflow, if the bus is
60 struct ssb_bus *bus; in ssb_pci_dev_to_bus() local
63 list_for_each_entry(bus, &buses, list) { in ssb_pci_dev_to_bus()
64 if (bus->bustype == SSB_BUSTYPE_PCI && in ssb_pci_dev_to_bus()
65 bus->host_pci == pdev) in ssb_pci_dev_to_bus()
68 bus = NULL; in ssb_pci_dev_to_bus()
72 return bus; in ssb_pci_dev_to_bus()
79 struct ssb_bus *bus; in ssb_pcmcia_dev_to_bus() local
82 list_for_each_entry(bus, &buses, list) { in ssb_pcmcia_dev_to_bus()
83 if (bus->bustype == SSB_BUSTYPE_PCMCIA && in ssb_pcmcia_dev_to_bus()
84 bus->host_pcmcia == pdev) in ssb_pcmcia_dev_to_bus()
87 bus = NULL; in ssb_pcmcia_dev_to_bus()
91 return bus; in ssb_pcmcia_dev_to_bus()
96 int (*func)(struct ssb_bus *bus, unsigned long data)) in ssb_for_each_bus_call() argument
98 struct ssb_bus *bus; in ssb_for_each_bus_call() local
102 list_for_each_entry(bus, &buses, list) { in ssb_for_each_bus_call()
103 res = func(bus, data); in ssb_for_each_bus_call()
111 return -ENODEV; in ssb_for_each_bus_call()
117 get_device(dev->dev); in ssb_device_get()
124 put_device(dev->dev); in ssb_device_put()
131 int err = 0; in ssb_device_resume() local
133 if (dev->driver) { in ssb_device_resume()
134 ssb_drv = drv_to_ssb_drv(dev->driver); in ssb_device_resume()
135 if (ssb_drv && ssb_drv->resume) in ssb_device_resume()
136 err = ssb_drv->resume(ssb_dev); in ssb_device_resume()
137 if (err) in ssb_device_resume()
141 return err; in ssb_device_resume()
148 int err = 0; in ssb_device_suspend() local
150 if (dev->driver) { in ssb_device_suspend()
151 ssb_drv = drv_to_ssb_drv(dev->driver); in ssb_device_suspend()
152 if (ssb_drv && ssb_drv->suspend) in ssb_device_suspend()
153 err = ssb_drv->suspend(ssb_dev, state); in ssb_device_suspend()
154 if (err) in ssb_device_suspend()
158 return err; in ssb_device_suspend()
161 int ssb_bus_resume(struct ssb_bus *bus) in ssb_bus_resume() argument
163 int err; in ssb_bus_resume() local
168 bus->mapped_device = NULL; in ssb_bus_resume()
170 bus->pcicore.setup_done = 0; in ssb_bus_resume()
173 err = ssb_bus_powerup(bus, 0); in ssb_bus_resume()
174 if (err) in ssb_bus_resume()
175 return err; in ssb_bus_resume()
176 err = ssb_pcmcia_hardware_setup(bus); in ssb_bus_resume()
177 if (err) { in ssb_bus_resume()
178 ssb_bus_may_powerdown(bus); in ssb_bus_resume()
179 return err; in ssb_bus_resume()
181 ssb_chipco_resume(&bus->chipco); in ssb_bus_resume()
182 ssb_bus_may_powerdown(bus); in ssb_bus_resume()
188 int ssb_bus_suspend(struct ssb_bus *bus) in ssb_bus_suspend() argument
190 ssb_chipco_suspend(&bus->chipco); in ssb_bus_suspend()
191 ssb_pci_xtal(bus, SSB_GPIO_XTAL | SSB_GPIO_PLL, 0); in ssb_bus_suspend()
198 /** ssb_devices_freeze - Freeze all devices on the bus.
201 * on this bus anymore. ssb_devices_thaw() must be called after
204 * @bus: The bus.
207 int ssb_devices_freeze(struct ssb_bus *bus, struct ssb_freeze_context *ctx) in ssb_devices_freeze() argument
214 ctx->bus = bus; in ssb_devices_freeze()
215 WARN_ON(bus->nr_devices > ARRAY_SIZE(ctx->device_frozen)); in ssb_devices_freeze()
217 for (i = 0; i < bus->nr_devices; i++) { in ssb_devices_freeze()
218 sdev = ssb_device_get(&bus->devices[i]); in ssb_devices_freeze()
220 if (!sdev->dev || !sdev->dev->driver || in ssb_devices_freeze()
221 !device_is_registered(sdev->dev)) { in ssb_devices_freeze()
225 sdrv = drv_to_ssb_drv(sdev->dev->driver); in ssb_devices_freeze()
226 if (WARN_ON(!sdrv->remove)) in ssb_devices_freeze()
228 sdrv->remove(sdev); in ssb_devices_freeze()
229 ctx->device_frozen[i] = 1; in ssb_devices_freeze()
235 /** ssb_devices_thaw - Unfreeze all devices on the bus.
237 * This will re-attach the device drivers and re-init the devices.
243 struct ssb_bus *bus = ctx->bus; in ssb_devices_thaw() local
247 int err, result = 0; in ssb_devices_thaw() local
249 for (i = 0; i < bus->nr_devices; i++) { in ssb_devices_thaw()
250 if (!ctx->device_frozen[i]) in ssb_devices_thaw()
252 sdev = &bus->devices[i]; in ssb_devices_thaw()
254 if (WARN_ON(!sdev->dev || !sdev->dev->driver)) in ssb_devices_thaw()
256 sdrv = drv_to_ssb_drv(sdev->dev->driver); in ssb_devices_thaw()
257 if (WARN_ON(!sdrv || !sdrv->probe)) in ssb_devices_thaw()
260 err = sdrv->probe(sdev, &sdev->id); in ssb_devices_thaw()
261 if (err) { in ssb_devices_thaw()
262 dev_err(sdev->dev, in ssb_devices_thaw()
264 dev_name(sdev->dev)); in ssb_devices_thaw()
265 result = err; in ssb_devices_thaw()
279 if (!dev->driver) in ssb_device_shutdown()
281 ssb_drv = drv_to_ssb_drv(dev->driver); in ssb_device_shutdown()
282 if (ssb_drv && ssb_drv->shutdown) in ssb_device_shutdown()
283 ssb_drv->shutdown(ssb_dev); in ssb_device_shutdown()
289 struct ssb_driver *ssb_drv = drv_to_ssb_drv(dev->driver); in ssb_device_remove()
291 if (ssb_drv && ssb_drv->remove) in ssb_device_remove()
292 ssb_drv->remove(ssb_dev); in ssb_device_remove()
299 struct ssb_driver *ssb_drv = drv_to_ssb_drv(dev->driver); in ssb_device_probe()
300 int err = 0; in ssb_device_probe() local
303 if (ssb_drv && ssb_drv->probe) in ssb_device_probe()
304 err = ssb_drv->probe(ssb_dev, &ssb_dev->id); in ssb_device_probe()
305 if (err) in ssb_device_probe()
308 return err; in ssb_device_probe()
314 if ((tabid->vendor != devid->vendor) && in ssb_match_devid()
315 tabid->vendor != SSB_ANY_VENDOR) in ssb_match_devid()
317 if ((tabid->coreid != devid->coreid) && in ssb_match_devid()
318 tabid->coreid != SSB_ANY_ID) in ssb_match_devid()
320 if ((tabid->revision != devid->revision) && in ssb_match_devid()
321 tabid->revision != SSB_ANY_REV) in ssb_match_devid()
332 for (id = ssb_drv->id_table; in ssb_bus_match()
333 id->vendor || id->coreid || id->revision; in ssb_bus_match()
335 if (ssb_match_devid(id, &ssb_dev->id)) in ssb_bus_match()
347 return -ENODEV; in ssb_device_uevent()
353 ssb_dev->id.vendor, ssb_dev->id.coreid, in ssb_device_uevent()
354 ssb_dev->id.revision); in ssb_device_uevent()
361 return sprintf(buf, format_string, dev_to_ssb_dev(dev)->field); \
374 ssb_core_name(dev_to_ssb_dev(dev)->id.coreid)); in name_show()
415 static void ssb_devices_unregister(struct ssb_bus *bus) in ssb_devices_unregister() argument
420 for (i = bus->nr_devices - 1; i >= 0; i--) { in ssb_devices_unregister()
421 sdev = &(bus->devices[i]); in ssb_devices_unregister()
422 if (sdev->dev) in ssb_devices_unregister()
423 device_unregister(sdev->dev); in ssb_devices_unregister()
427 if (bus->bustype == SSB_BUSTYPE_SSB) in ssb_devices_unregister()
428 platform_device_unregister(bus->watchdog); in ssb_devices_unregister()
432 void ssb_bus_unregister(struct ssb_bus *bus) in ssb_bus_unregister() argument
434 int err; in ssb_bus_unregister() local
436 err = ssb_gpio_unregister(bus); in ssb_bus_unregister()
437 if (err) in ssb_bus_unregister()
438 pr_debug("Can not unregister GPIO driver: %i\n", err); in ssb_bus_unregister()
441 ssb_devices_unregister(bus); in ssb_bus_unregister()
442 list_del(&bus->list); in ssb_bus_unregister()
445 ssb_pcmcia_exit(bus); in ssb_bus_unregister()
446 ssb_pci_exit(bus); in ssb_bus_unregister()
447 ssb_iounmap(bus); in ssb_bus_unregister()
459 static int ssb_devices_register(struct ssb_bus *bus) in ssb_devices_register() argument
464 int i, err = 0; in ssb_devices_register() local
467 for (i = 0; i < bus->nr_devices; i++) { in ssb_devices_register()
468 sdev = &(bus->devices[i]); in ssb_devices_register()
470 /* We don't register SSB-system devices to the kernel, in ssb_devices_register()
473 switch (sdev->id.coreid) { in ssb_devices_register()
486 err = -ENOMEM; in ssb_devices_register()
489 dev = &devwrap->dev; in ssb_devices_register()
490 devwrap->sdev = sdev; in ssb_devices_register()
492 dev->release = ssb_release_dev; in ssb_devices_register()
493 dev->bus = &ssb_bustype; in ssb_devices_register()
494 dev_set_name(dev, "ssb%u:%d", bus->busnumber, dev_idx); in ssb_devices_register()
496 switch (bus->bustype) { in ssb_devices_register()
499 sdev->irq = bus->host_pci->irq; in ssb_devices_register()
500 dev->parent = &bus->host_pci->dev; in ssb_devices_register()
501 sdev->dma_dev = dev->parent; in ssb_devices_register()
506 sdev->irq = bus->host_pcmcia->irq; in ssb_devices_register()
507 dev->parent = &bus->host_pcmcia->dev; in ssb_devices_register()
512 dev->parent = &bus->host_sdio->dev; in ssb_devices_register()
516 dev->dma_mask = &dev->coherent_dma_mask; in ssb_devices_register()
517 sdev->dma_dev = dev; in ssb_devices_register()
521 sdev->dev = dev; in ssb_devices_register()
522 err = device_register(dev); in ssb_devices_register()
523 if (err) { in ssb_devices_register()
528 sdev->dev = NULL; in ssb_devices_register()
536 if (bus->mipscore.pflash.present) { in ssb_devices_register()
537 err = platform_device_register(&ssb_pflash_dev); in ssb_devices_register()
538 if (err) in ssb_devices_register()
544 if (bus->mipscore.sflash.present) { in ssb_devices_register()
545 err = platform_device_register(&ssb_sflash_dev); in ssb_devices_register()
546 if (err) in ssb_devices_register()
554 ssb_devices_unregister(bus); in ssb_devices_register()
555 return err; in ssb_devices_register()
561 struct ssb_bus *bus, *n; in ssb_attach_queued_buses() local
562 int err = 0; in ssb_attach_queued_buses() local
565 list_for_each_entry_safe(bus, n, &attach_queue, list) { in ssb_attach_queued_buses()
567 list_del(&bus->list); in ssb_attach_queued_buses()
574 err = ssb_bus_powerup(bus, 0); in ssb_attach_queued_buses()
575 if (err) in ssb_attach_queued_buses()
577 ssb_pcicore_init(&bus->pcicore); in ssb_attach_queued_buses()
578 if (bus->bustype == SSB_BUSTYPE_SSB) in ssb_attach_queued_buses()
579 ssb_watchdog_register(bus); in ssb_attach_queued_buses()
581 err = ssb_gpio_init(bus); in ssb_attach_queued_buses()
582 if (err == -ENOTSUPP) in ssb_attach_queued_buses()
584 else if (err) in ssb_attach_queued_buses()
585 pr_debug("Error registering GPIO driver: %i\n", err); in ssb_attach_queued_buses()
587 ssb_bus_may_powerdown(bus); in ssb_attach_queued_buses()
589 err = ssb_devices_register(bus); in ssb_attach_queued_buses()
591 if (err) { in ssb_attach_queued_buses()
593 list_del(&bus->list); in ssb_attach_queued_buses()
596 list_move_tail(&bus->list, &buses); in ssb_attach_queued_buses()
599 return err; in ssb_attach_queued_buses()
602 static int ssb_fetch_invariants(struct ssb_bus *bus, in ssb_fetch_invariants() argument
606 int err; in ssb_fetch_invariants() local
609 err = get_invariants(bus, &iv); in ssb_fetch_invariants()
610 if (err) in ssb_fetch_invariants()
612 memcpy(&bus->boardinfo, &iv.boardinfo, sizeof(iv.boardinfo)); in ssb_fetch_invariants()
613 memcpy(&bus->sprom, &iv.sprom, sizeof(iv.sprom)); in ssb_fetch_invariants()
614 bus->has_cardbus_slot = iv.has_cardbus_slot; in ssb_fetch_invariants()
616 return err; in ssb_fetch_invariants()
620 ssb_bus_register(struct ssb_bus *bus, in ssb_bus_register() argument
624 int err; in ssb_bus_register() local
626 spin_lock_init(&bus->bar_lock); in ssb_bus_register()
627 INIT_LIST_HEAD(&bus->list); in ssb_bus_register()
629 spin_lock_init(&bus->gpio_lock); in ssb_bus_register()
632 /* Powerup the bus */ in ssb_bus_register()
633 err = ssb_pci_xtal(bus, SSB_GPIO_XTAL | SSB_GPIO_PLL, 1); in ssb_bus_register()
634 if (err) in ssb_bus_register()
637 /* Init SDIO-host device (if any), before the scan */ in ssb_bus_register()
638 err = ssb_sdio_init(bus); in ssb_bus_register()
639 if (err) in ssb_bus_register()
643 bus->busnumber = next_busnumber; in ssb_bus_register()
645 err = ssb_bus_scan(bus, baseaddr); in ssb_bus_register()
646 if (err) in ssb_bus_register()
649 /* Init PCI-host device (if any) */ in ssb_bus_register()
650 err = ssb_pci_init(bus); in ssb_bus_register()
651 if (err) in ssb_bus_register()
653 /* Init PCMCIA-host device (if any) */ in ssb_bus_register()
654 err = ssb_pcmcia_init(bus); in ssb_bus_register()
655 if (err) in ssb_bus_register()
659 err = ssb_bus_powerup(bus, 0); in ssb_bus_register()
660 if (err) in ssb_bus_register()
662 ssb_chipcommon_init(&bus->chipco); in ssb_bus_register()
663 ssb_extif_init(&bus->extif); in ssb_bus_register()
664 ssb_mipscore_init(&bus->mipscore); in ssb_bus_register()
665 err = ssb_fetch_invariants(bus, get_invariants); in ssb_bus_register()
666 if (err) { in ssb_bus_register()
667 ssb_bus_may_powerdown(bus); in ssb_bus_register()
670 ssb_bus_may_powerdown(bus); in ssb_bus_register()
675 list_add_tail(&bus->list, &attach_queue); in ssb_bus_register()
677 /* This is not early boot, so we must attach the bus now */ in ssb_bus_register()
678 err = ssb_attach_queued_buses(); in ssb_bus_register()
679 if (err) in ssb_bus_register()
686 return err; in ssb_bus_register()
689 list_del(&bus->list); in ssb_bus_register()
691 ssb_pcmcia_exit(bus); in ssb_bus_register()
693 ssb_pci_exit(bus); in ssb_bus_register()
695 ssb_iounmap(bus); in ssb_bus_register()
697 ssb_sdio_exit(bus); in ssb_bus_register()
700 ssb_pci_xtal(bus, SSB_GPIO_XTAL | SSB_GPIO_PLL, 0); in ssb_bus_register()
701 return err; in ssb_bus_register()
705 int ssb_bus_pcibus_register(struct ssb_bus *bus, struct pci_dev *host_pci) in ssb_bus_pcibus_register() argument
707 int err; in ssb_bus_pcibus_register() local
709 bus->bustype = SSB_BUSTYPE_PCI; in ssb_bus_pcibus_register()
710 bus->host_pci = host_pci; in ssb_bus_pcibus_register()
711 bus->ops = &ssb_pci_ops; in ssb_bus_pcibus_register()
713 err = ssb_bus_register(bus, ssb_pci_get_invariants, 0); in ssb_bus_pcibus_register()
714 if (!err) { in ssb_bus_pcibus_register()
715 dev_info(&host_pci->dev, in ssb_bus_pcibus_register()
717 dev_name(&host_pci->dev)); in ssb_bus_pcibus_register()
719 dev_err(&host_pci->dev, in ssb_bus_pcibus_register()
721 err); in ssb_bus_pcibus_register()
724 return err; in ssb_bus_pcibus_register()
729 int ssb_bus_pcmciabus_register(struct ssb_bus *bus, in ssb_bus_pcmciabus_register() argument
733 int err; in ssb_bus_pcmciabus_register() local
735 bus->bustype = SSB_BUSTYPE_PCMCIA; in ssb_bus_pcmciabus_register()
736 bus->host_pcmcia = pcmcia_dev; in ssb_bus_pcmciabus_register()
737 bus->ops = &ssb_pcmcia_ops; in ssb_bus_pcmciabus_register()
739 err = ssb_bus_register(bus, ssb_pcmcia_get_invariants, baseaddr); in ssb_bus_pcmciabus_register()
740 if (!err) { in ssb_bus_pcmciabus_register()
741 dev_info(&pcmcia_dev->dev, in ssb_bus_pcmciabus_register()
743 pcmcia_dev->devname); in ssb_bus_pcmciabus_register()
746 return err; in ssb_bus_pcmciabus_register()
751 int ssb_bus_sdiobus_register(struct ssb_bus *bus, struct sdio_func *func, in ssb_bus_sdiobus_register() argument
754 int err; in ssb_bus_sdiobus_register() local
756 bus->bustype = SSB_BUSTYPE_SDIO; in ssb_bus_sdiobus_register()
757 bus->host_sdio = func; in ssb_bus_sdiobus_register()
758 bus->ops = &ssb_sdio_ops; in ssb_bus_sdiobus_register()
759 bus->quirks = quirks; in ssb_bus_sdiobus_register()
761 err = ssb_bus_register(bus, ssb_sdio_get_invariants, ~0); in ssb_bus_sdiobus_register()
762 if (!err) { in ssb_bus_sdiobus_register()
763 dev_info(&func->dev, in ssb_bus_sdiobus_register()
768 return err; in ssb_bus_sdiobus_register()
774 int ssb_bus_host_soc_register(struct ssb_bus *bus, unsigned long baseaddr) in ssb_bus_host_soc_register() argument
776 int err; in ssb_bus_host_soc_register() local
778 bus->bustype = SSB_BUSTYPE_SSB; in ssb_bus_host_soc_register()
779 bus->ops = &ssb_host_soc_ops; in ssb_bus_host_soc_register()
781 err = ssb_bus_register(bus, ssb_host_soc_get_invariants, baseaddr); in ssb_bus_host_soc_register()
782 if (!err) { in ssb_bus_host_soc_register()
787 return err; in ssb_bus_host_soc_register()
793 drv->drv.name = drv->name; in __ssb_driver_register()
794 drv->drv.bus = &ssb_bustype; in __ssb_driver_register()
795 drv->drv.owner = owner; in __ssb_driver_register()
797 return driver_register(&drv->drv); in __ssb_driver_register()
803 driver_unregister(&drv->drv); in ssb_driver_unregister()
809 struct ssb_bus *bus = dev->bus; in ssb_set_devtypedata() local
813 for (i = 0; i < bus->nr_devices; i++) { in ssb_set_devtypedata()
814 ent = &(bus->devices[i]); in ssb_set_devtypedata()
815 if (ent->id.vendor != dev->id.vendor) in ssb_set_devtypedata()
817 if (ent->id.coreid != dev->id.coreid) in ssb_set_devtypedata()
820 ent->devtypedata = data; in ssb_set_devtypedata()
941 u32 ssb_clockspeed(struct ssb_bus *bus) in ssb_clockspeed() argument
947 if (bus->chipco.capabilities & SSB_CHIPCO_CAP_PMU) in ssb_clockspeed()
948 return ssb_pmu_get_controlclock(&bus->chipco); in ssb_clockspeed()
950 if (ssb_extif_available(&bus->extif)) in ssb_clockspeed()
951 ssb_extif_get_clockcontrol(&bus->extif, &plltype, in ssb_clockspeed()
953 else if (bus->chipco.dev) in ssb_clockspeed()
954 ssb_chipco_get_clockcontrol(&bus->chipco, &plltype, in ssb_clockspeed()
959 if (bus->chip_id == 0x5365) { in ssb_clockspeed()
983 case SSB_IDLOW_SSBREV_25: /* TODO - find the proper REJECT bit */ in ssb_tmslow_reject_bitmask()
1052 * timeout is in units of ten-microseconds
1071 dev_err(dev->dev, in ssb_wait_bits()
1075 return -ETIMEDOUT; in ssb_wait_bits()
1120 /* Some chipsets need routing known for PCIe and 64-bit DMA */
1123 u16 chip_id = dev->bus->chip_id; in ssb_dma_translation_special_bit()
1125 if (dev->id.coreid == SSB_DEV_80211) { in ssb_dma_translation_special_bit()
1135 switch (dev->bus->bustype) { in ssb_dma_translation()
1139 if (pci_is_pcie(dev->bus->host_pci) && in ssb_dma_translation()
1155 int ssb_bus_may_powerdown(struct ssb_bus *bus) in ssb_bus_may_powerdown() argument
1158 int err = 0; in ssb_bus_may_powerdown() local
1164 if (bus->bustype == SSB_BUSTYPE_SSB) in ssb_bus_may_powerdown()
1167 cc = &bus->chipco; in ssb_bus_may_powerdown()
1169 if (!cc->dev) in ssb_bus_may_powerdown()
1171 if (cc->dev->id.revision < 5) in ssb_bus_may_powerdown()
1175 err = ssb_pci_xtal(bus, SSB_GPIO_XTAL | SSB_GPIO_PLL, 0); in ssb_bus_may_powerdown()
1176 if (err) in ssb_bus_may_powerdown()
1179 bus->powered_up = 0; in ssb_bus_may_powerdown()
1180 return err; in ssb_bus_may_powerdown()
1182 pr_err("Bus powerdown failed\n"); in ssb_bus_may_powerdown()
1187 int ssb_bus_powerup(struct ssb_bus *bus, bool dynamic_pctl) in ssb_bus_powerup() argument
1189 int err; in ssb_bus_powerup() local
1192 err = ssb_pci_xtal(bus, SSB_GPIO_XTAL | SSB_GPIO_PLL, 1); in ssb_bus_powerup()
1193 if (err) in ssb_bus_powerup()
1196 bus->powered_up = 1; in ssb_bus_powerup()
1199 ssb_chipco_set_clockmode(&bus->chipco, mode); in ssb_bus_powerup()
1203 pr_err("Bus powerup failed\n"); in ssb_bus_powerup()
1204 return err; in ssb_bus_powerup()
1223 void ssb_commit_settings(struct ssb_bus *bus) in ssb_commit_settings() argument
1228 dev = bus->chipco.dev ? bus->chipco.dev : bus->pcicore.dev; in ssb_commit_settings()
1230 dev = bus->chipco.dev; in ssb_commit_settings()
1290 int err; in ssb_modinit() local
1294 err = bus_register(&ssb_bustype); in ssb_modinit()
1295 if (err) in ssb_modinit()
1296 return err; in ssb_modinit()
1302 err = ssb_attach_queued_buses(); in ssb_modinit()
1304 if (err) { in ssb_modinit()
1309 err = b43_pci_ssb_bridge_init(); in ssb_modinit()
1310 if (err) { in ssb_modinit()
1311 pr_err("Broadcom 43xx PCI-SSB-bridge initialization failed\n"); in ssb_modinit()
1314 err = ssb_host_pcmcia_init(); in ssb_modinit()
1315 if (err) { in ssb_modinit()
1319 err = ssb_gige_init(); in ssb_modinit()
1320 if (err) { in ssb_modinit()
1323 err = 0; in ssb_modinit()
1326 return err; in ssb_modinit()