|
@@ -1208,6 +1208,7 @@ static void b43_bcma_wireless_core_reset(struct b43_wldev *dev, bool gmode)
|
|
}
|
|
}
|
|
#endif
|
|
#endif
|
|
|
|
|
|
|
|
+#ifdef CONFIG_B43_SSB
|
|
static void b43_ssb_wireless_core_reset(struct b43_wldev *dev, bool gmode)
|
|
static void b43_ssb_wireless_core_reset(struct b43_wldev *dev, bool gmode)
|
|
{
|
|
{
|
|
struct ssb_device *sdev = dev->dev->sdev;
|
|
struct ssb_device *sdev = dev->dev->sdev;
|
|
@@ -1235,6 +1236,7 @@ static void b43_ssb_wireless_core_reset(struct b43_wldev *dev, bool gmode)
|
|
ssb_read32(sdev, SSB_TMSLOW); /* flush */
|
|
ssb_read32(sdev, SSB_TMSLOW); /* flush */
|
|
msleep(1);
|
|
msleep(1);
|
|
}
|
|
}
|
|
|
|
+#endif
|
|
|
|
|
|
void b43_wireless_core_reset(struct b43_wldev *dev, bool gmode)
|
|
void b43_wireless_core_reset(struct b43_wldev *dev, bool gmode)
|
|
{
|
|
{
|
|
@@ -2735,6 +2737,8 @@ out:
|
|
/* Initialize the GPIOs
|
|
/* Initialize the GPIOs
|
|
* http://bcm-specs.sipsolutions.net/GPIO
|
|
* http://bcm-specs.sipsolutions.net/GPIO
|
|
*/
|
|
*/
|
|
|
|
+
|
|
|
|
+#ifdef CONFIG_B43_SSB
|
|
static struct ssb_device *b43_ssb_gpio_dev(struct b43_wldev *dev)
|
|
static struct ssb_device *b43_ssb_gpio_dev(struct b43_wldev *dev)
|
|
{
|
|
{
|
|
struct ssb_bus *bus = dev->dev->sdev->bus;
|
|
struct ssb_bus *bus = dev->dev->sdev->bus;
|
|
@@ -2745,10 +2749,13 @@ static struct ssb_device *b43_ssb_gpio_dev(struct b43_wldev *dev)
|
|
return bus->chipco.dev;
|
|
return bus->chipco.dev;
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
|
|
+#endif
|
|
|
|
|
|
static int b43_gpio_init(struct b43_wldev *dev)
|
|
static int b43_gpio_init(struct b43_wldev *dev)
|
|
{
|
|
{
|
|
|
|
+#ifdef CONFIG_B43_SSB
|
|
struct ssb_device *gpiodev;
|
|
struct ssb_device *gpiodev;
|
|
|
|
+#endif
|
|
u32 mask, set;
|
|
u32 mask, set;
|
|
|
|
|
|
b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_GPOUTSMSK, 0);
|
|
b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_GPOUTSMSK, 0);
|
|
@@ -2807,7 +2814,9 @@ static int b43_gpio_init(struct b43_wldev *dev)
|
|
/* Turn off all GPIO stuff. Call this on module unload, for example. */
|
|
/* Turn off all GPIO stuff. Call this on module unload, for example. */
|
|
static void b43_gpio_cleanup(struct b43_wldev *dev)
|
|
static void b43_gpio_cleanup(struct b43_wldev *dev)
|
|
{
|
|
{
|
|
|
|
+#ifdef CONFIG_B43_SSB
|
|
struct ssb_device *gpiodev;
|
|
struct ssb_device *gpiodev;
|
|
|
|
+#endif
|
|
|
|
|
|
switch (dev->dev->bus_type) {
|
|
switch (dev->dev->bus_type) {
|
|
#ifdef CONFIG_B43_BCMA
|
|
#ifdef CONFIG_B43_BCMA
|
|
@@ -3692,7 +3701,9 @@ static void b43_op_set_tsf(struct ieee80211_hw *hw,
|
|
|
|
|
|
static void b43_put_phy_into_reset(struct b43_wldev *dev)
|
|
static void b43_put_phy_into_reset(struct b43_wldev *dev)
|
|
{
|
|
{
|
|
|
|
+#ifdef CONFIG_B43_SSB
|
|
u32 tmp;
|
|
u32 tmp;
|
|
|
|
+#endif
|
|
|
|
|
|
switch (dev->dev->bus_type) {
|
|
switch (dev->dev->bus_type) {
|
|
#ifdef CONFIG_B43_BCMA
|
|
#ifdef CONFIG_B43_BCMA
|
|
@@ -4582,8 +4593,12 @@ static void b43_imcfglo_timeouts_workaround(struct b43_wldev *dev)
|
|
struct ssb_bus *bus;
|
|
struct ssb_bus *bus;
|
|
u32 tmp;
|
|
u32 tmp;
|
|
|
|
|
|
|
|
+#ifdef CONFIG_B43_SSB
|
|
if (dev->dev->bus_type != B43_BUS_SSB)
|
|
if (dev->dev->bus_type != B43_BUS_SSB)
|
|
return;
|
|
return;
|
|
|
|
+#else
|
|
|
|
+ return;
|
|
|
|
+#endif
|
|
|
|
|
|
bus = dev->dev->sdev->bus;
|
|
bus = dev->dev->sdev->bus;
|
|
|
|
|
|
@@ -4738,7 +4753,7 @@ static int b43_wireless_core_init(struct b43_wldev *dev)
|
|
}
|
|
}
|
|
if (sprom->boardflags_lo & B43_BFL_XTAL_NOSLOW)
|
|
if (sprom->boardflags_lo & B43_BFL_XTAL_NOSLOW)
|
|
hf |= B43_HF_DSCRQ; /* Disable slowclock requests from ucode. */
|
|
hf |= B43_HF_DSCRQ; /* Disable slowclock requests from ucode. */
|
|
-#ifdef CONFIG_SSB_DRIVER_PCICORE
|
|
|
|
|
|
+#if defined(CONFIG_B43_SSB) && defined(CONFIG_SSB_DRIVER_PCICORE)
|
|
if (dev->dev->bus_type == B43_BUS_SSB &&
|
|
if (dev->dev->bus_type == B43_BUS_SSB &&
|
|
dev->dev->sdev->bus->bustype == SSB_BUSTYPE_PCI &&
|
|
dev->dev->sdev->bus->bustype == SSB_BUSTYPE_PCI &&
|
|
dev->dev->sdev->bus->pcicore.dev->id.revision <= 10)
|
|
dev->dev->sdev->bus->pcicore.dev->id.revision <= 10)
|
|
@@ -5310,6 +5325,7 @@ static int b43_one_core_attach(struct b43_bus_dev *dev, struct b43_wl *wl)
|
|
(pdev->subsystem_vendor == PCI_VENDOR_ID_##_subvendor) && \
|
|
(pdev->subsystem_vendor == PCI_VENDOR_ID_##_subvendor) && \
|
|
(pdev->subsystem_device == _subdevice) )
|
|
(pdev->subsystem_device == _subdevice) )
|
|
|
|
|
|
|
|
+#ifdef CONFIG_B43_SSB
|
|
static void b43_sprom_fixup(struct ssb_bus *bus)
|
|
static void b43_sprom_fixup(struct ssb_bus *bus)
|
|
{
|
|
{
|
|
struct pci_dev *pdev;
|
|
struct pci_dev *pdev;
|
|
@@ -5341,6 +5357,7 @@ static void b43_wireless_exit(struct b43_bus_dev *dev, struct b43_wl *wl)
|
|
ssb_set_devtypedata(dev->sdev, NULL);
|
|
ssb_set_devtypedata(dev->sdev, NULL);
|
|
ieee80211_free_hw(hw);
|
|
ieee80211_free_hw(hw);
|
|
}
|
|
}
|
|
|
|
+#endif
|
|
|
|
|
|
static struct b43_wl *b43_wireless_init(struct b43_bus_dev *dev)
|
|
static struct b43_wl *b43_wireless_init(struct b43_bus_dev *dev)
|
|
{
|
|
{
|