diff options
author | John W. Linville <linville@tuxdriver.com> | 2011-05-16 14:55:42 -0400 |
---|---|---|
committer | John W. Linville <linville@tuxdriver.com> | 2011-05-16 19:32:19 -0400 |
commit | e00cf3b9eb7839b952e434a75bff6b99e47337ac (patch) | |
tree | ef583ab8ac09bf703026650d4bc7777e6a3864d3 /drivers/net/wireless/b43legacy | |
parent | 1a8218e96271790a07dd7065a2ef173e0f67e328 (diff) | |
parent | 3b8ab88acaceb505aa06ef3bbf3a73b92470ae78 (diff) |
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/linville/wireless-next-2.6 into for-davem
Conflicts:
drivers/net/wireless/iwlwifi/iwl-agn-tx.c
net/mac80211/sta_info.h
Diffstat (limited to 'drivers/net/wireless/b43legacy')
-rw-r--r-- | drivers/net/wireless/b43legacy/main.c | 52 |
1 files changed, 1 insertions, 51 deletions
diff --git a/drivers/net/wireless/b43legacy/main.c b/drivers/net/wireless/b43legacy/main.c index c7fd73e3ad76..1ab8861dd43a 100644 --- a/drivers/net/wireless/b43legacy/main.c +++ b/drivers/net/wireless/b43legacy/main.c | |||
@@ -2234,7 +2234,7 @@ static int b43legacy_chip_init(struct b43legacy_wldev *dev) | |||
2234 | b43legacy_write32(dev, B43legacy_MMIO_DMA5_IRQ_MASK, 0x0000DC00); | 2234 | b43legacy_write32(dev, B43legacy_MMIO_DMA5_IRQ_MASK, 0x0000DC00); |
2235 | 2235 | ||
2236 | value32 = ssb_read32(dev->dev, SSB_TMSLOW); | 2236 | value32 = ssb_read32(dev->dev, SSB_TMSLOW); |
2237 | value32 |= 0x00100000; | 2237 | value32 |= B43legacy_TMSLOW_MACPHYCLKEN; |
2238 | ssb_write32(dev->dev, SSB_TMSLOW, value32); | 2238 | ssb_write32(dev->dev, SSB_TMSLOW, value32); |
2239 | 2239 | ||
2240 | b43legacy_write16(dev, B43legacy_MMIO_POWERUP_DELAY, | 2240 | b43legacy_write16(dev, B43legacy_MMIO_POWERUP_DELAY, |
@@ -3104,37 +3104,6 @@ static void setup_struct_wldev_for_init(struct b43legacy_wldev *dev) | |||
3104 | memset(&dev->noisecalc, 0, sizeof(dev->noisecalc)); | 3104 | memset(&dev->noisecalc, 0, sizeof(dev->noisecalc)); |
3105 | } | 3105 | } |
3106 | 3106 | ||
3107 | static void b43legacy_imcfglo_timeouts_workaround(struct b43legacy_wldev *dev) | ||
3108 | { | ||
3109 | #ifdef CONFIG_SSB_DRIVER_PCICORE | ||
3110 | struct ssb_bus *bus = dev->dev->bus; | ||
3111 | u32 tmp; | ||
3112 | |||
3113 | if (bus->pcicore.dev && | ||
3114 | bus->pcicore.dev->id.coreid == SSB_DEV_PCI && | ||
3115 | bus->pcicore.dev->id.revision <= 5) { | ||
3116 | /* IMCFGLO timeouts workaround. */ | ||
3117 | tmp = ssb_read32(dev->dev, SSB_IMCFGLO); | ||
3118 | switch (bus->bustype) { | ||
3119 | case SSB_BUSTYPE_PCI: | ||
3120 | case SSB_BUSTYPE_PCMCIA: | ||
3121 | tmp &= ~SSB_IMCFGLO_REQTO; | ||
3122 | tmp &= ~SSB_IMCFGLO_SERTO; | ||
3123 | tmp |= 0x32; | ||
3124 | break; | ||
3125 | case SSB_BUSTYPE_SSB: | ||
3126 | tmp &= ~SSB_IMCFGLO_REQTO; | ||
3127 | tmp &= ~SSB_IMCFGLO_SERTO; | ||
3128 | tmp |= 0x53; | ||
3129 | break; | ||
3130 | default: | ||
3131 | break; | ||
3132 | } | ||
3133 | ssb_write32(dev->dev, SSB_IMCFGLO, tmp); | ||
3134 | } | ||
3135 | #endif /* CONFIG_SSB_DRIVER_PCICORE */ | ||
3136 | } | ||
3137 | |||
3138 | static void b43legacy_set_synth_pu_delay(struct b43legacy_wldev *dev, | 3107 | static void b43legacy_set_synth_pu_delay(struct b43legacy_wldev *dev, |
3139 | bool idle) { | 3108 | bool idle) { |
3140 | u16 pu_delay = 1050; | 3109 | u16 pu_delay = 1050; |
@@ -3278,7 +3247,6 @@ static int b43legacy_wireless_core_init(struct b43legacy_wldev *dev) | |||
3278 | /* Enable IRQ routing to this device. */ | 3247 | /* Enable IRQ routing to this device. */ |
3279 | ssb_pcicore_dev_irqvecs_enable(&bus->pcicore, dev->dev); | 3248 | ssb_pcicore_dev_irqvecs_enable(&bus->pcicore, dev->dev); |
3280 | 3249 | ||
3281 | b43legacy_imcfglo_timeouts_workaround(dev); | ||
3282 | prepare_phy_data_for_init(dev); | 3250 | prepare_phy_data_for_init(dev); |
3283 | b43legacy_phy_calibrate(dev); | 3251 | b43legacy_phy_calibrate(dev); |
3284 | err = b43legacy_chip_init(dev); | 3252 | err = b43legacy_chip_init(dev); |
@@ -3728,26 +3696,8 @@ static int b43legacy_one_core_attach(struct ssb_device *dev, | |||
3728 | struct b43legacy_wl *wl) | 3696 | struct b43legacy_wl *wl) |
3729 | { | 3697 | { |
3730 | struct b43legacy_wldev *wldev; | 3698 | struct b43legacy_wldev *wldev; |
3731 | struct pci_dev *pdev; | ||
3732 | int err = -ENOMEM; | 3699 | int err = -ENOMEM; |
3733 | 3700 | ||
3734 | if (!list_empty(&wl->devlist)) { | ||
3735 | /* We are not the first core on this chip. */ | ||
3736 | pdev = (dev->bus->bustype == SSB_BUSTYPE_PCI) ? dev->bus->host_pci : NULL; | ||
3737 | /* Only special chips support more than one wireless | ||
3738 | * core, although some of the other chips have more than | ||
3739 | * one wireless core as well. Check for this and | ||
3740 | * bail out early. | ||
3741 | */ | ||
3742 | if (!pdev || | ||
3743 | ((pdev->device != 0x4321) && | ||
3744 | (pdev->device != 0x4313) && | ||
3745 | (pdev->device != 0x431A))) { | ||
3746 | b43legacydbg(wl, "Ignoring unconnected 802.11 core\n"); | ||
3747 | return -ENODEV; | ||
3748 | } | ||
3749 | } | ||
3750 | |||
3751 | wldev = kzalloc(sizeof(*wldev), GFP_KERNEL); | 3701 | wldev = kzalloc(sizeof(*wldev), GFP_KERNEL); |
3752 | if (!wldev) | 3702 | if (!wldev) |
3753 | goto out; | 3703 | goto out; |