Commit fc1a5539 authored by Dominik Brodowski's avatar Dominik Brodowski Committed by Russell King

[PCMCIA] TI1520 cardbus patch for 2.4.x..

Linus Torvalds wrote:
> Here's a patch that apparently improves throughput on Texas
> Instrument 1520 controllers a lot by enabling memory bursting.
> Apparently to the point that without this you can't even do
> things like 802.11g without starting to drop data.

Done. Also cleaned up the "Override Table" a bit.
parent 189ea5d0
...@@ -241,6 +241,17 @@ static int ti1250_override(struct yenta_socket *socket) ...@@ -241,6 +241,17 @@ static int ti1250_override(struct yenta_socket *socket)
return 0; return 0;
} }
static int ti12xx_override(struct yenta_socket *socket)
{
/* make sure that memory burst is active */
ti_sysctl(socket) = config_readl(socket, TI113X_SYSTEM_CONTROL);
ti_sysctl(socket) |= TI122X_SCR_MRBURSTUP;
config_writel(socket, TI113X_SYSTEM_CONTROL, ti_sysctl(socket));
return ti113x_override(socket);
}
#endif /* CONFIG_CARDBUS */ #endif /* CONFIG_CARDBUS */
#endif /* _LINUX_TI113X_H */ #endif /* _LINUX_TI113X_H */
......
...@@ -807,23 +807,30 @@ struct cardbus_override_struct { ...@@ -807,23 +807,30 @@ struct cardbus_override_struct {
unsigned short device; unsigned short device;
int (*override) (struct yenta_socket *socket); int (*override) (struct yenta_socket *socket);
} cardbus_override[] = { } cardbus_override[] = {
{ PD(TI,1130), &ti113x_override },
{ PD(TI,1031), &ti_override }, { PD(TI,1031), &ti_override },
{ PD(TI,1131), &ti113x_override },
{ PD(TI,1250), &ti1250_override }, /* TBD: Check if these TI variants can use more
{ PD(TI,1220), &ti_override }, * advanced overrides instead */
{ PD(TI,1221), &ti_override },
{ PD(TI,1210), &ti_override }, { PD(TI,1210), &ti_override },
{ PD(TI,1450), &ti_override },
{ PD(TI,1225), &ti_override },
{ PD(TI,1251A), &ti_override },
{ PD(TI,1211), &ti_override }, { PD(TI,1211), &ti_override },
{ PD(TI,1251A), &ti_override },
{ PD(TI,1251B), &ti_override }, { PD(TI,1251B), &ti_override },
{ PD(TI,1410), ti1250_override },
{ PD(TI,1420), &ti_override }, { PD(TI,1420), &ti_override },
{ PD(TI,1450), &ti_override },
{ PD(TI,4410), &ti_override }, { PD(TI,4410), &ti_override },
{ PD(TI,4451), &ti_override }, { PD(TI,4451), &ti_override },
{ PD(TI,1130), &ti113x_override },
{ PD(TI,1131), &ti113x_override },
{ PD(TI,1220), &ti12xx_override },
{ PD(TI,1221), &ti12xx_override },
{ PD(TI,1225), &ti12xx_override },
{ PD(TI,1520), &ti12xx_override },
{ PD(TI,1250), &ti1250_override },
{ PD(TI,1410), &ti1250_override },
{ PD(RICOH,RL5C465), &ricoh_override }, { PD(RICOH,RL5C465), &ricoh_override },
{ PD(RICOH,RL5C466), &ricoh_override }, { PD(RICOH,RL5C466), &ricoh_override },
{ PD(RICOH,RL5C475), &ricoh_override }, { PD(RICOH,RL5C475), &ricoh_override },
......
...@@ -663,7 +663,6 @@ ...@@ -663,7 +663,6 @@
#define PCI_DEVICE_ID_TI_1220 0xac17 #define PCI_DEVICE_ID_TI_1220 0xac17
#define PCI_DEVICE_ID_TI_1221 0xac19 #define PCI_DEVICE_ID_TI_1221 0xac19
#define PCI_DEVICE_ID_TI_1210 0xac1a #define PCI_DEVICE_ID_TI_1210 0xac1a
#define PCI_DEVICE_ID_TI_1410 0xac50
#define PCI_DEVICE_ID_TI_1450 0xac1b #define PCI_DEVICE_ID_TI_1450 0xac1b
#define PCI_DEVICE_ID_TI_1225 0xac1c #define PCI_DEVICE_ID_TI_1225 0xac1c
#define PCI_DEVICE_ID_TI_1251A 0xac1d #define PCI_DEVICE_ID_TI_1251A 0xac1d
...@@ -671,7 +670,9 @@ ...@@ -671,7 +670,9 @@
#define PCI_DEVICE_ID_TI_1251B 0xac1f #define PCI_DEVICE_ID_TI_1251B 0xac1f
#define PCI_DEVICE_ID_TI_4410 0xac41 #define PCI_DEVICE_ID_TI_4410 0xac41
#define PCI_DEVICE_ID_TI_4451 0xac42 #define PCI_DEVICE_ID_TI_4451 0xac42
#define PCI_DEVICE_ID_TI_1410 0xac50
#define PCI_DEVICE_ID_TI_1420 0xac51 #define PCI_DEVICE_ID_TI_1420 0xac51
#define PCI_DEVICE_ID_TI_1520 0xac55
#define PCI_VENDOR_ID_SONY 0x104d #define PCI_VENDOR_ID_SONY 0x104d
#define PCI_DEVICE_ID_SONY_CXD3222 0x8039 #define PCI_DEVICE_ID_SONY_CXD3222 0x8039
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment