diff options
Diffstat (limited to 'drivers/pcmcia/yenta_socket.c')
-rw-r--r-- | drivers/pcmcia/yenta_socket.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/drivers/pcmcia/yenta_socket.c b/drivers/pcmcia/yenta_socket.c index caf7159a54be..a8a9d954bcf4 100644 --- a/drivers/pcmcia/yenta_socket.c +++ b/drivers/pcmcia/yenta_socket.c | |||
@@ -1034,6 +1034,8 @@ static int yenta_dev_suspend (struct pci_dev *dev, pm_message_t state) | |||
1034 | pci_read_config_dword(dev, 17*4, &socket->saved_state[1]); | 1034 | pci_read_config_dword(dev, 17*4, &socket->saved_state[1]); |
1035 | pci_disable_device(dev); | 1035 | pci_disable_device(dev); |
1036 | 1036 | ||
1037 | free_irq(dev->irq, socket); | ||
1038 | |||
1037 | /* | 1039 | /* |
1038 | * Some laptops (IBM T22) do not like us putting the Cardbus | 1040 | * Some laptops (IBM T22) do not like us putting the Cardbus |
1039 | * bridge into D3. At a guess, some other laptop will | 1041 | * bridge into D3. At a guess, some other laptop will |
@@ -1059,6 +1061,13 @@ static int yenta_dev_resume (struct pci_dev *dev) | |||
1059 | pci_enable_device(dev); | 1061 | pci_enable_device(dev); |
1060 | pci_set_master(dev); | 1062 | pci_set_master(dev); |
1061 | 1063 | ||
1064 | if (socket->cb_irq) | ||
1065 | if (request_irq(socket->cb_irq, yenta_interrupt, | ||
1066 | SA_SHIRQ, "yenta", socket)) { | ||
1067 | printk(KERN_WARNING "Yenta: request_irq() failed on resume!\n"); | ||
1068 | socket->cb_irq = 0; | ||
1069 | } | ||
1070 | |||
1062 | if (socket->type && socket->type->restore_state) | 1071 | if (socket->type && socket->type->restore_state) |
1063 | socket->type->restore_state(socket); | 1072 | socket->type->restore_state(socket); |
1064 | } | 1073 | } |