diff options
Diffstat (limited to 'drivers/pcmcia')
-rw-r--r-- | drivers/pcmcia/ds.c | 2 | ||||
-rw-r--r-- | drivers/pcmcia/yenta_socket.c | 12 |
2 files changed, 4 insertions, 10 deletions
diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c index d63f22a5bf7e..43da2e92d50f 100644 --- a/drivers/pcmcia/ds.c +++ b/drivers/pcmcia/ds.c | |||
@@ -589,8 +589,8 @@ static void pcmcia_delayed_add_pseudo_device(void *data) | |||
589 | static inline void pcmcia_add_pseudo_device(struct pcmcia_socket *s) | 589 | static inline void pcmcia_add_pseudo_device(struct pcmcia_socket *s) |
590 | { | 590 | { |
591 | if (!s->pcmcia_state.device_add_pending) { | 591 | if (!s->pcmcia_state.device_add_pending) { |
592 | schedule_work(&s->device_add); | ||
593 | s->pcmcia_state.device_add_pending = 1; | 592 | s->pcmcia_state.device_add_pending = 1; |
593 | schedule_work(&s->device_add); | ||
594 | } | 594 | } |
595 | return; | 595 | return; |
596 | } | 596 | } |
diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c index 744e469a9eda..91e7457d5b04 100644 --- a/drivers/pcmcia/yenta_socket.c +++ b/drivers/pcmcia/yenta_socket.c | |||
@@ -642,6 +642,7 @@ static void yenta_allocate_res(struct yenta_socket *socket, int nr, unsigned typ | |||
642 | (yenta_search_res(socket, res, BRIDGE_IO_MIN))) { | 642 | (yenta_search_res(socket, res, BRIDGE_IO_MIN))) { |
643 | config_writel(socket, addr_start, res->start); | 643 | config_writel(socket, addr_start, res->start); |
644 | config_writel(socket, addr_end, res->end); | 644 | config_writel(socket, addr_end, res->end); |
645 | return; | ||
645 | } | 646 | } |
646 | } else { | 647 | } else { |
647 | if (type & IORESOURCE_PREFETCH) { | 648 | if (type & IORESOURCE_PREFETCH) { |
@@ -650,6 +651,7 @@ static void yenta_allocate_res(struct yenta_socket *socket, int nr, unsigned typ | |||
650 | (yenta_search_res(socket, res, BRIDGE_MEM_MIN))) { | 651 | (yenta_search_res(socket, res, BRIDGE_MEM_MIN))) { |
651 | config_writel(socket, addr_start, res->start); | 652 | config_writel(socket, addr_start, res->start); |
652 | config_writel(socket, addr_end, res->end); | 653 | config_writel(socket, addr_end, res->end); |
654 | return; | ||
653 | } | 655 | } |
654 | /* Approximating prefetchable by non-prefetchable */ | 656 | /* Approximating prefetchable by non-prefetchable */ |
655 | res->flags = IORESOURCE_MEM; | 657 | res->flags = IORESOURCE_MEM; |
@@ -659,6 +661,7 @@ static void yenta_allocate_res(struct yenta_socket *socket, int nr, unsigned typ | |||
659 | (yenta_search_res(socket, res, BRIDGE_MEM_MIN))) { | 661 | (yenta_search_res(socket, res, BRIDGE_MEM_MIN))) { |
660 | config_writel(socket, addr_start, res->start); | 662 | config_writel(socket, addr_start, res->start); |
661 | config_writel(socket, addr_end, res->end); | 663 | config_writel(socket, addr_end, res->end); |
664 | return; | ||
662 | } | 665 | } |
663 | } | 666 | } |
664 | 667 | ||
@@ -1107,8 +1110,6 @@ static int yenta_dev_suspend (struct pci_dev *dev, pm_message_t state) | |||
1107 | pci_read_config_dword(dev, 17*4, &socket->saved_state[1]); | 1110 | pci_read_config_dword(dev, 17*4, &socket->saved_state[1]); |
1108 | pci_disable_device(dev); | 1111 | pci_disable_device(dev); |
1109 | 1112 | ||
1110 | free_irq(dev->irq, socket); | ||
1111 | |||
1112 | /* | 1113 | /* |
1113 | * Some laptops (IBM T22) do not like us putting the Cardbus | 1114 | * Some laptops (IBM T22) do not like us putting the Cardbus |
1114 | * bridge into D3. At a guess, some other laptop will | 1115 | * bridge into D3. At a guess, some other laptop will |
@@ -1134,13 +1135,6 @@ static int yenta_dev_resume (struct pci_dev *dev) | |||
1134 | pci_enable_device(dev); | 1135 | pci_enable_device(dev); |
1135 | pci_set_master(dev); | 1136 | pci_set_master(dev); |
1136 | 1137 | ||
1137 | if (socket->cb_irq) | ||
1138 | if (request_irq(socket->cb_irq, yenta_interrupt, | ||
1139 | SA_SHIRQ, "yenta", socket)) { | ||
1140 | printk(KERN_WARNING "Yenta: request_irq() failed on resume!\n"); | ||
1141 | socket->cb_irq = 0; | ||
1142 | } | ||
1143 | |||
1144 | if (socket->type && socket->type->restore_state) | 1138 | if (socket->type && socket->type->restore_state) |
1145 | socket->type->restore_state(socket); | 1139 | socket->type->restore_state(socket); |
1146 | } | 1140 | } |