X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fpcmcia%2Fhd64465_ss.c;h=ad02629c8be21255ed14c595b580b6a93e8a5464;hb=16c70f8c1b54b61c3b951b6fb220df250fe09b32;hp=48584bb2644100e005a25b2b52191d2229515de9;hpb=6a77f38946aaee1cd85eeec6cf4229b204c15071;p=linux-2.6.git diff --git a/drivers/pcmcia/hd64465_ss.c b/drivers/pcmcia/hd64465_ss.c index 48584bb26..ad02629c8 100644 --- a/drivers/pcmcia/hd64465_ss.c +++ b/drivers/pcmcia/hd64465_ss.c @@ -37,13 +37,12 @@ #include #include #include -#include +#include #include #include #include -#include #include #include #include @@ -245,8 +244,8 @@ static void hs_map_irq(hs_socket_t *sp, unsigned int irq) hs_mapped_irq[irq].sock = sp; /* insert ourselves as the irq controller */ - hs_mapped_irq[irq].old_handler = irq_desc[irq].handler; - irq_desc[irq].handler = &hd64465_ss_irq_type; + hs_mapped_irq[irq].old_handler = irq_desc[irq].chip; + irq_desc[irq].chip = &hd64465_ss_irq_type; } @@ -261,7 +260,7 @@ static void hs_unmap_irq(hs_socket_t *sp, unsigned int irq) return; /* restore the original irq controller */ - irq_desc[irq].handler = hs_mapped_irq[irq].old_handler; + irq_desc[irq].chip = hs_mapped_irq[irq].old_handler; } /*============================================================*/ @@ -353,20 +352,6 @@ static int hs_init(struct pcmcia_socket *s) /*============================================================*/ -static int hs_suspend(struct pcmcia_socket *s) -{ -#ifdef HD64465_DEBUG - hs_socket_t *sp = container_of(s, struct hs_socket_t, socket); - DPRINTK("hs_suspend(%d)\n", sp->number); -#endif - - /* TODO */ - - return 0; -} - -/*============================================================*/ - static int hs_get_status(struct pcmcia_socket *s, u_int *value) { @@ -432,18 +417,6 @@ static int hs_get_status(struct pcmcia_socket *s, u_int *value) /*============================================================*/ -static int hs_get_socket(struct pcmcia_socket *s, socket_state_t *state) -{ - hs_socket_t *sp = container_of(s, struct hs_socket_t, socket); - - DPRINTK("hs_get_socket(%d)\n", sock); - - *state = sp->state; - return 0; -} - -/*============================================================*/ - static int hs_set_socket(struct pcmcia_socket *s, socket_state_t *state) { hs_socket_t *sp = container_of(s, struct hs_socket_t, socket); @@ -763,9 +736,7 @@ static irqreturn_t hs_interrupt(int irq, void *dev, struct pt_regs *regs) static struct pccard_operations hs_operations = { .init = hs_init, - .suspend = hs_suspend, .get_status = hs_get_status, - .get_socket = hs_get_socket, .set_socket = hs_set_socket, .set_io_map = hs_set_io_map, .set_mem_map = hs_set_mem_map, @@ -790,7 +761,7 @@ static int hs_init_socket(hs_socket_t *sp, int irq, unsigned long mem_base, hd64465_register_irq_demux(sp->irq, hs_irq_demux, sp); - if ((err = request_irq(sp->irq, hs_interrupt, SA_INTERRUPT, MODNAME, sp)) < 0) + if ((err = request_irq(sp->irq, hs_interrupt, IRQF_DISABLED, MODNAME, sp)) < 0) return err; if (request_mem_region(sp->mem_base, sp->mem_length, MODNAME) == 0) { sp->mem_base = 0; @@ -860,27 +831,11 @@ static void hs_exit_socket(hs_socket_t *sp) local_irq_restore(flags); } -static int hd64465_suspend(struct device *dev, u32 state, u32 level) -{ - int ret = 0; - if (level == SUSPEND_SAVE_STATE) - ret = pcmcia_socket_dev_suspend(dev, state); - return ret; -} - -static int hd64465_resume(struct device *dev, u32 level) -{ - int ret = 0; - if (level == RESUME_RESTORE_STATE) - ret = pcmcia_socket_dev_resume(dev); - return ret; -} - static struct device_driver hd64465_driver = { .name = "hd64465-pcmcia", .bus = &platform_bus_type, - .suspend = hd64465_suspend, - .resume = hd64465_resume, + .suspend = pcmcia_socket_dev_suspend, + .resume = pcmcia_socket_dev_resume, }; static struct platform_device hd64465_device = {