diff options
author | David S. Miller <davem@davemloft.net> | 2008-04-14 05:30:23 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-04-14 05:30:23 -0400 |
commit | df39e8ba56a788733d369068c7319e04b1da3cd5 (patch) | |
tree | 1e9be853bdb455e341cdbf957656f342cfa2eb9e /drivers/ssb | |
parent | f5572855ec492334d8c3ec0e0e86c31865d5cf07 (diff) | |
parent | 159d83363b629c91d020734207c1bc788b96af5a (diff) |
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/davem/net-2.6
Conflicts:
drivers/net/ehea/ehea_main.c
drivers/net/wireless/iwlwifi/Kconfig
drivers/net/wireless/rt2x00/rt61pci.c
net/ipv4/inet_timewait_sock.c
net/ipv6/raw.c
net/mac80211/ieee80211_sta.c
Diffstat (limited to 'drivers/ssb')
-rw-r--r-- | drivers/ssb/driver_mipscore.c | 13 | ||||
-rw-r--r-- | drivers/ssb/driver_pcicore.c | 2 | ||||
-rw-r--r-- | drivers/ssb/main.c | 6 |
3 files changed, 14 insertions, 7 deletions
diff --git a/drivers/ssb/driver_mipscore.c b/drivers/ssb/driver_mipscore.c index e3fad3123ecb..3fd3e3b412b6 100644 --- a/drivers/ssb/driver_mipscore.c +++ b/drivers/ssb/driver_mipscore.c | |||
@@ -109,12 +109,13 @@ static void set_irq(struct ssb_device *dev, unsigned int irq) | |||
109 | clear_irq(bus, oldirq); | 109 | clear_irq(bus, oldirq); |
110 | 110 | ||
111 | /* assign the new one */ | 111 | /* assign the new one */ |
112 | if (irq == 0) | 112 | if (irq == 0) { |
113 | ssb_write32(mdev, SSB_INTVEC, ((1 << irqflag) & ssb_read32(mdev, SSB_INTVEC))); | 113 | ssb_write32(mdev, SSB_INTVEC, ((1 << irqflag) | ssb_read32(mdev, SSB_INTVEC))); |
114 | 114 | } else { | |
115 | irqflag <<= ipsflag_irq_shift[irq]; | 115 | irqflag <<= ipsflag_irq_shift[irq]; |
116 | irqflag |= (ssb_read32(mdev, SSB_IPSFLAG) & ~ipsflag_irq_mask[irq]); | 116 | irqflag |= (ssb_read32(mdev, SSB_IPSFLAG) & ~ipsflag_irq_mask[irq]); |
117 | ssb_write32(mdev, SSB_IPSFLAG, irqflag); | 117 | ssb_write32(mdev, SSB_IPSFLAG, irqflag); |
118 | } | ||
118 | } | 119 | } |
119 | 120 | ||
120 | static void ssb_mips_serial_init(struct ssb_mipscore *mcore) | 121 | static void ssb_mips_serial_init(struct ssb_mipscore *mcore) |
diff --git a/drivers/ssb/driver_pcicore.c b/drivers/ssb/driver_pcicore.c index 33a7d5620474..2cc668ac5609 100644 --- a/drivers/ssb/driver_pcicore.c +++ b/drivers/ssb/driver_pcicore.c | |||
@@ -569,7 +569,7 @@ int ssb_pcicore_dev_irqvecs_enable(struct ssb_pcicore *pc, | |||
569 | } else { | 569 | } else { |
570 | tmp = ssb_read32(dev, SSB_TPSFLAG); | 570 | tmp = ssb_read32(dev, SSB_TPSFLAG); |
571 | tmp &= SSB_TPSFLAG_BPFLAG; | 571 | tmp &= SSB_TPSFLAG_BPFLAG; |
572 | intvec |= tmp; | 572 | intvec |= (1 << tmp); |
573 | } | 573 | } |
574 | ssb_write32(pdev, SSB_INTVEC, intvec); | 574 | ssb_write32(pdev, SSB_INTVEC, intvec); |
575 | } | 575 | } |
diff --git a/drivers/ssb/main.c b/drivers/ssb/main.c index 19ddd2bd1057..6ce92e82b64e 100644 --- a/drivers/ssb/main.c +++ b/drivers/ssb/main.c | |||
@@ -1190,6 +1190,12 @@ int ssb_bus_may_powerdown(struct ssb_bus *bus) | |||
1190 | goto out; | 1190 | goto out; |
1191 | 1191 | ||
1192 | cc = &bus->chipco; | 1192 | cc = &bus->chipco; |
1193 | |||
1194 | if (!cc->dev) | ||
1195 | goto out; | ||
1196 | if (cc->dev->id.revision < 5) | ||
1197 | goto out; | ||
1198 | |||
1193 | ssb_chipco_set_clockmode(cc, SSB_CLKMODE_SLOW); | 1199 | ssb_chipco_set_clockmode(cc, SSB_CLKMODE_SLOW); |
1194 | err = ssb_pci_xtal(bus, SSB_GPIO_XTAL | SSB_GPIO_PLL, 0); | 1200 | err = ssb_pci_xtal(bus, SSB_GPIO_XTAL | SSB_GPIO_PLL, 0); |
1195 | if (err) | 1201 | if (err) |