brcm47xx: refresh 2.6.33 kernel patches

git-svn-id: svn://svn.openwrt.org/openwrt/trunk@21265 3c298f89-4303-0410-b956-a3cf2f4a3e73
master
Alexandros C. Couloumbis 2010-04-30 11:05:40 +00:00
parent 60cfd441cc
commit 4cdd24169b
6 changed files with 17 additions and 18 deletions

View File

@ -41,19 +41,18 @@ Signed-off-by: Steve Brown <sbrown@cortland.com>
- ssb_write32(dev, 0x400, tmp); - ssb_write32(dev, 0x400, tmp);
- tmp = ssb_read32(dev, 0x400); - tmp = ssb_read32(dev, 0x400);
- printk("USB20H fcr: 0x%0x\n", tmp); - printk("USB20H fcr: 0x%0x\n", tmp);
- + /* Work around for 5354 failures */
+ if ((dev->id.revision == 2) && (dev->bus->chip_id == 0x5354)) {
+ /* Change syn01 reg */
+ tmp = 0x00fe00fe;
+ ssb_write32(dev, 0x894, tmp);
- /* Change Shim control reg */ - /* Change Shim control reg */
- tmp = ssb_read32(dev, 0x304); - tmp = ssb_read32(dev, 0x304);
- tmp &= ~0x100; - tmp &= ~0x100;
- ssb_write32(dev, 0x304, tmp); - ssb_write32(dev, 0x304, tmp);
- tmp = ssb_read32(dev, 0x304); - tmp = ssb_read32(dev, 0x304);
- printk("USB20H shim: 0x%0x\n", tmp); - printk("USB20H shim: 0x%0x\n", tmp);
+ /* Work around for 5354 failures */
+ if ((dev->id.revision == 2) && (dev->bus->chip_id == 0x5354)) {
+ /* Change syn01 reg */
+ tmp = 0x00fe00fe;
+ ssb_write32(dev, 0x894, tmp);
+
+ /* Change syn03 reg */ + /* Change syn03 reg */
+ tmp = ssb_read32(dev, 0x89c); + tmp = ssb_read32(dev, 0x89c);
+ tmp |= 0x1; + tmp |= 0x1;

View File

@ -8,7 +8,7 @@
#include <asm/io.h> #include <asm/io.h>
extern void build_clear_page(void); extern void build_clear_page(void);
@@ -78,13 +79,16 @@ static inline void clear_user_page(void @@ -78,13 +79,16 @@ static inline void clear_user_page(void
flush_data_cache_page((unsigned long)addr); flush_data_cache_page((unsigned long)addr);
} }

View File

@ -8,7 +8,7 @@
#include <net/checksum.h> #include <net/checksum.h>
#include <net/ip.h> #include <net/ip.h>
@@ -466,8 +467,9 @@ static void _tw32_flush(struct tg3 *tp, @@ -466,8 +467,9 @@ static void _tw32_flush(struct tg3 *tp,
static inline void tw32_mailbox_flush(struct tg3 *tp, u32 off, u32 val) static inline void tw32_mailbox_flush(struct tg3 *tp, u32 off, u32 val)
{ {
tp->write32_mbox(tp, off, val); tp->write32_mbox(tp, off, val);
@ -61,7 +61,7 @@
{ {
u32 frame_val; u32 frame_val;
unsigned int loops; unsigned int loops;
@@ -842,7 +849,7 @@ static int tg3_writephy(struct tg3 *tp, @@ -842,7 +849,7 @@ static int tg3_writephy(struct tg3 *tp,
udelay(80); udelay(80);
} }
@ -70,7 +70,7 @@
MI_COM_PHY_ADDR_MASK); MI_COM_PHY_ADDR_MASK);
frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) & frame_val |= ((reg << MI_COM_REG_ADDR_SHIFT) &
MI_COM_REG_ADDR_MASK); MI_COM_REG_ADDR_MASK);
@@ -875,6 +882,11 @@ static int tg3_writephy(struct tg3 *tp, @@ -875,6 +882,11 @@ static int tg3_writephy(struct tg3 *tp,
return ret; return ret;
} }
@ -147,7 +147,7 @@
tw32(GRC_MODE, tp->grc_mode); tw32(GRC_MODE, tp->grc_mode);
if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) { if (tp->pci_chip_rev_id == CHIPREV_ID_5705_A0) {
@@ -7089,9 +7127,12 @@ static int tg3_halt_cpu(struct tg3 *tp, @@ -7089,9 +7127,12 @@ static int tg3_halt_cpu(struct tg3 *tp,
return -ENODEV; return -ENODEV;
} }
@ -175,7 +175,7 @@
fw_data = (void *)tp->fw->data; fw_data = (void *)tp->fw->data;
/* Firmware blob starts with version numbers, followed by /* Firmware blob starts with version numbers, followed by
@@ -7213,6 +7259,11 @@ static int tg3_load_tso_firmware(struct @@ -7213,6 +7259,11 @@ static int tg3_load_tso_firmware(struct
unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size; unsigned long cpu_base, cpu_scratch_base, cpu_scratch_size;
int err, i; int err, i;
@ -242,7 +242,7 @@
tw32_f(GRC_EEPROM_ADDR, tw32_f(GRC_EEPROM_ADDR,
(EEPROM_ADDR_FSM_RESET | (EEPROM_ADDR_FSM_RESET |
(EEPROM_DEFAULT_CLOCK_PERIOD << (EEPROM_DEFAULT_CLOCK_PERIOD <<
@@ -11936,6 +12003,9 @@ static int tg3_nvram_write_block(struct @@ -11936,6 +12003,9 @@ static int tg3_nvram_write_block(struct
{ {
int ret; int ret;

View File

@ -1,6 +1,6 @@
--- a/drivers/net/b44.c --- a/drivers/net/b44.c
+++ b/drivers/net/b44.c +++ b/drivers/net/b44.c
@@ -815,7 +815,7 @@ static int b44_rx(struct b44 *bp, int bu @@ -848,7 +848,7 @@ static int b44_rx(struct b44 *bp, int bu
struct sk_buff *copy_skb; struct sk_buff *copy_skb;
b44_recycle_rx(bp, cons, bp->rx_prod); b44_recycle_rx(bp, cons, bp->rx_prod);

View File

@ -28,7 +28,7 @@
dev_printk(KERN_INFO, &socket->dev->dev, dev_printk(KERN_INFO, &socket->dev->dev,
"ISA IRQ mask 0x%04x, PCI irq %d\n", "ISA IRQ mask 0x%04x, PCI irq %d\n",
socket->socket.irq_mask, socket->cb_irq); socket->socket.irq_mask, socket->cb_irq);
@@ -1243,6 +1250,15 @@ static int __devinit yenta_probe(struct @@ -1243,6 +1250,15 @@ static int __devinit yenta_probe(struct
dev_printk(KERN_INFO, &dev->dev, dev_printk(KERN_INFO, &dev->dev,
"Socket status: %08x\n", cb_readl(socket, CB_SOCKET_STATE)); "Socket status: %08x\n", cb_readl(socket, CB_SOCKET_STATE));

View File

@ -1,6 +1,6 @@
--- a/drivers/ssb/main.c --- a/drivers/ssb/main.c
+++ b/drivers/ssb/main.c +++ b/drivers/ssb/main.c
@@ -385,6 +385,34 @@ static int ssb_device_uevent(struct devi @@ -384,6 +384,34 @@ static int ssb_device_uevent(struct devi
ssb_dev->id.revision); ssb_dev->id.revision);
} }
@ -35,7 +35,7 @@
static struct bus_type ssb_bustype = { static struct bus_type ssb_bustype = {
.name = "ssb", .name = "ssb",
.match = ssb_bus_match, .match = ssb_bus_match,
@@ -394,6 +422,7 @@ static struct bus_type ssb_bustype = { @@ -393,6 +421,7 @@ static struct bus_type ssb_bustype = {
.suspend = ssb_device_suspend, .suspend = ssb_device_suspend,
.resume = ssb_device_resume, .resume = ssb_device_resume,
.uevent = ssb_device_uevent, .uevent = ssb_device_uevent,