OpenWrt – Diff between revs 2 and 3
?pathlinks?
Rev 2 | Rev 3 | |||
---|---|---|---|---|
Line 1... | Line 1... | |||
1 | --- a/drivers/pcmcia/yenta_socket.c |
1 | --- a/drivers/pcmcia/yenta_socket.c |
|
2 | +++ b/drivers/pcmcia/yenta_socket.c |
2 | +++ b/drivers/pcmcia/yenta_socket.c |
|
3 | @@ -920,6 +920,8 @@ static unsigned int yenta_probe_irq(stru |
3 | @@ -919,6 +919,8 @@ static unsigned int yenta_probe_irq(stru |
|
4 | * Probe for usable interrupts using the force |
4 | * Probe for usable interrupts using the force |
|
5 | * register to generate bogus card status events. |
5 | * register to generate bogus card status events. |
|
6 | */ |
6 | */ |
|
7 | +#ifndef CONFIG_BCM47XX |
7 | +#ifndef CONFIG_BCM47XX |
|
8 | + /* WRT54G3G does not like this */ |
8 | + /* WRT54G3G does not like this */ |
|
9 | cb_writel(socket, CB_SOCKET_EVENT, -1); |
9 | cb_writel(socket, CB_SOCKET_EVENT, -1); |
|
10 | cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK); |
10 | cb_writel(socket, CB_SOCKET_MASK, CB_CSTSMASK); |
|
11 | reg = exca_readb(socket, I365_CSCINT); |
11 | reg = exca_readb(socket, I365_CSCINT); |
|
12 | @@ -935,6 +937,7 @@ static unsigned int yenta_probe_irq(stru |
12 | @@ -934,6 +936,7 @@ static unsigned int yenta_probe_irq(stru |
|
13 | } |
13 | } |
|
14 | cb_writel(socket, CB_SOCKET_MASK, 0); |
14 | cb_writel(socket, CB_SOCKET_MASK, 0); |
|
15 | exca_writeb(socket, I365_CSCINT, reg); |
15 | exca_writeb(socket, I365_CSCINT, reg); |
|
16 | +#endif |
16 | +#endif |
|
Line 17... | Line 17... | |||
17 | |
17 | |
|
Line 18... | Line 18... | |||
18 | mask = probe_irq_mask(val) & 0xffff; |
18 | mask = probe_irq_mask(val) & 0xffff; |
|
19 | |
19 | |
|
20 | @@ -1019,6 +1022,10 @@ static void yenta_get_socket_capabilitie |
20 | @@ -1018,6 +1021,10 @@ static void yenta_get_socket_capabilitie |
|
Line 21... | Line 21... | |||
21 | else |
21 | else |
|
22 | socket->socket.irq_mask = 0; |
22 | socket->socket.irq_mask = 0; |
|
23 | |
23 | |
|
24 | + /* irq mask probing is broken for the WRT54G3G */ |
24 | + /* irq mask probing is broken for the WRT54G3G */ |
|
25 | + if (socket->socket.irq_mask == 0) |
25 | + if (socket->socket.irq_mask == 0) |
|
26 | + socket->socket.irq_mask = 0x6f8; |
26 | + socket->socket.irq_mask = 0x6f8; |
|
27 | + |
27 | + |
|
28 | dev_info(&socket->dev->dev, "ISA IRQ mask 0x%04x, PCI irq %d\n", |
28 | dev_info(&socket->dev->dev, "ISA IRQ mask 0x%04x, PCI irq %d\n", |
|
29 | socket->socket.irq_mask, socket->cb_irq); |
29 | socket->socket.irq_mask, socket->cb_irq); |
|
30 | } |
30 | } |
|
Line 31... | Line 31... | |||
31 | @@ -1251,6 +1258,15 @@ static int yenta_probe(struct pci_dev *d |
31 | @@ -1250,6 +1257,15 @@ static int yenta_probe(struct pci_dev *d |
|
32 | dev_info(&dev->dev, "Socket status: %08x\n", |
32 | dev_info(&dev->dev, "Socket status: %08x\n", |