X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fpcmcia%2Fi82365.c;h=b753c31862ed87b6021569660ef5aafe0a524863;hb=9bf4aaab3e101692164d49b7ca357651eb691cb6;hp=e98adb10c9f4ae14238120c08fd556b8ba463d80;hpb=db216c3d5e4c040e557a50f8f5d35d5c415e8c1c;p=linux-2.6.git diff --git a/drivers/pcmcia/i82365.c b/drivers/pcmcia/i82365.c index e98adb10c..b753c3186 100644 --- a/drivers/pcmcia/i82365.c +++ b/drivers/pcmcia/i82365.c @@ -65,7 +65,6 @@ #include "cirrus.h" #include "vg468.h" #include "ricoh.h" -#include "o2micro.h" #ifdef DEBUG static const char version[] = @@ -1308,10 +1307,10 @@ static int pcic_set_mem_map(struct pcmcia_socket *s, struct pccard_mem_map *mem) static int pcic_init(struct pcmcia_socket *s) { int i; + struct resource res = { .start = 0, .end = 0x1000 }; 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 = 0x1000, }; - mem.sys_stop = 0x1000; for (i = 0; i < 2; i++) { io.map = i; pcic_set_io_map(s, &io); @@ -1372,8 +1371,15 @@ static int __init init_i82365(void) { int i, ret; - if (driver_register(&i82365_driver)) - return -1; + ret = driver_register(&i82365_driver); + if (ret) + return ret; + + ret = platform_device_register(&i82365_device); + if (ret) { + driver_unregister(&i82365_driver); + return ret; + } printk(KERN_INFO "Intel ISA PCIC probe: "); sockets = 0; @@ -1382,12 +1388,11 @@ static int __init init_i82365(void) if (sockets == 0) { printk("not found.\n"); + platform_device_unregister(&i82365_device); driver_unregister(&i82365_driver); return -ENODEV; } - platform_device_register(&i82365_device); - /* Set up interrupt handler(s) */ if (grab_irq != 0) request_irq(cs_irq, pcic_interrupt, 0, "i82365", pcic_interrupt);