diff options
author | Daniel Ritz <daniel.ritz@gmx.ch> | 2005-08-22 01:29:26 -0400 |
---|---|---|
committer | Dominik Brodowski <linux@dominikbrodowski.net> | 2005-09-26 07:09:20 -0400 |
commit | 8c3520d4eb3b1bbf2e45fbae8dcfb8db06d5e775 (patch) | |
tree | df9b4f49e8f9ffa34657776be458fbd124b2e87b /drivers/pcmcia/yenta_socket.c | |
parent | 8ddec7460d2f5db3ac35812c03676b1473d1d668 (diff) |
[PATCH] yenta: auto-tune EnE bridges for CardBus cards
Echo Audio cardbus products are known to be incompatible with EnE bridges.
in order to maybe solve the problem a EnE specific test bit has to be set,
another cleared...but other setups have a good chance to break when just
forcing the bits. so do the whole thingy automatically.
The patch adds a hook in cb_alloc() that allows special tuning for the
different chipsets. for ene just match the Echo products and set/clear the
test bits, defaults to do the same thing as w/o the patch to not break
working setups.
Signed-off-by: Daniel Ritz <daniel.ritz@gmx.ch>
Cc: Linus Torvalds <torvalds@osdl.org>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
Diffstat (limited to 'drivers/pcmcia/yenta_socket.c')
-rw-r--r-- | drivers/pcmcia/yenta_socket.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c index ba4d78e5b121..fd2a6f892c41 100644 --- a/drivers/pcmcia/yenta_socket.c +++ b/drivers/pcmcia/yenta_socket.c | |||
@@ -819,6 +819,7 @@ enum { | |||
819 | CARDBUS_TYPE_TOPIC95, | 819 | CARDBUS_TYPE_TOPIC95, |
820 | CARDBUS_TYPE_TOPIC97, | 820 | CARDBUS_TYPE_TOPIC97, |
821 | CARDBUS_TYPE_O2MICRO, | 821 | CARDBUS_TYPE_O2MICRO, |
822 | CARDBUS_TYPE_ENE, | ||
822 | }; | 823 | }; |
823 | 824 | ||
824 | /* | 825 | /* |
@@ -865,6 +866,12 @@ static struct cardbus_type cardbus_type[] = { | |||
865 | .override = o2micro_override, | 866 | .override = o2micro_override, |
866 | .restore_state = o2micro_restore_state, | 867 | .restore_state = o2micro_restore_state, |
867 | }, | 868 | }, |
869 | [CARDBUS_TYPE_ENE] = { | ||
870 | .override = ene_override, | ||
871 | .save_state = ti_save_state, | ||
872 | .restore_state = ti_restore_state, | ||
873 | .sock_init = ti_init, | ||
874 | }, | ||
868 | }; | 875 | }; |
869 | 876 | ||
870 | 877 | ||
@@ -1265,10 +1272,10 @@ static struct pci_device_id yenta_table [] = { | |||
1265 | CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_1250, TI1250), | 1272 | CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_1250, TI1250), |
1266 | CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_1410, TI1250), | 1273 | CB_ID(PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_1410, TI1250), |
1267 | 1274 | ||
1268 | CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_1211, TI12XX), | 1275 | CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_1211, ENE), |
1269 | CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_1225, TI12XX), | 1276 | CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_1225, ENE), |
1270 | CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_1410, TI1250), | 1277 | CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_1410, ENE), |
1271 | CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_1420, TI12XX), | 1278 | CB_ID(PCI_VENDOR_ID_ENE, PCI_DEVICE_ID_ENE_1420, ENE), |
1272 | 1279 | ||
1273 | CB_ID(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_RL5C465, RICOH), | 1280 | CB_ID(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_RL5C465, RICOH), |
1274 | CB_ID(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_RL5C466, RICOH), | 1281 | CB_ID(PCI_VENDOR_ID_RICOH, PCI_DEVICE_ID_RICOH_RL5C466, RICOH), |