X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;ds=inline;f=drivers%2Fpcmcia%2Fyenta_socket.c;h=4c8a7a5724d615a5755e1dcfd4b6dec49f2617e2;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=767b2c1a23b4da04db1e83829d9763d6034bb884;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c index 767b2c1a2..4c8a7a572 100644 --- a/drivers/pcmcia/yenta_socket.c +++ b/drivers/pcmcia/yenta_socket.c @@ -445,10 +445,10 @@ static void yenta_interrupt_wrapper(unsigned long data) static void yenta_clear_maps(struct yenta_socket *socket) { int i; + struct resource res = { .start = 0, .end = 0x0fff }; pccard_io_map io = { 0, 0, 0, 0, 1 }; - pccard_mem_map mem = { 0, 0, 0, 0, 0, 0 }; + pccard_mem_map mem = { .res = &res, .sys_stop = 0x0fff, }; - mem.sys_stop = 0x0fff; yenta_set_socket(&socket->socket, &dead_socket); for (i = 0; i < 2; i++) { io.map = i; @@ -668,6 +668,7 @@ static struct pccard_operations yenta_socket_operations = { #include "ti113x.h" #include "ricoh.h" #include "topic.h" +#include "o2micro.h" enum { CARDBUS_TYPE_DEFAULT = -1, @@ -676,7 +677,8 @@ enum { CARDBUS_TYPE_TI12XX, CARDBUS_TYPE_TI1250, CARDBUS_TYPE_RICOH, - CARDBUS_TYPE_TOPIC97 + CARDBUS_TYPE_TOPIC97, + CARDBUS_TYPE_O2MICRO, }; /* @@ -716,6 +718,10 @@ struct cardbus_type cardbus_type[] = { [CARDBUS_TYPE_TOPIC97] = { .override = topic97_override, }, + [CARDBUS_TYPE_O2MICRO] = { + .override = o2micro_override, + .restore_state = o2micro_restore_state, + }, }; @@ -1100,6 +1106,8 @@ static struct pci_device_id yenta_table [] = { CB_ID(PCI_VENDOR_ID_TOSHIBA, PCI_DEVICE_ID_TOSHIBA_TOPIC97, TOPIC97), CB_ID(PCI_VENDOR_ID_TOSHIBA, PCI_DEVICE_ID_TOSHIBA_TOPIC100, TOPIC97), + CB_ID(PCI_VENDOR_ID_O2, PCI_ANY_ID, O2MICRO), + /* match any cardbus bridge */ CB_ID(PCI_ANY_ID, PCI_ANY_ID, DEFAULT), { /* all zeroes */ }