aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia/pcmcia_resource.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pcmcia/pcmcia_resource.c')
-rw-r--r--drivers/pcmcia/pcmcia_resource.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index 599b116d9747..89022ad5b520 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -447,7 +447,7 @@ int pcmcia_modify_configuration(struct pcmcia_device *p_dev,
447 (mod->Attributes & CONF_VPP2_CHANGE_VALID)) { 447 (mod->Attributes & CONF_VPP2_CHANGE_VALID)) {
448 if (mod->Vpp1 != mod->Vpp2) 448 if (mod->Vpp1 != mod->Vpp2)
449 return CS_BAD_VPP; 449 return CS_BAD_VPP;
450 c->Vpp1 = c->Vpp2 = s->socket.Vpp = mod->Vpp1; 450 s->socket.Vpp = mod->Vpp1;
451 if (s->ops->set_socket(s, &s->socket)) 451 if (s->ops->set_socket(s, &s->socket))
452 return CS_BAD_VPP; 452 return CS_BAD_VPP;
453 } else if ((mod->Attributes & CONF_VPP1_CHANGE_VALID) || 453 } else if ((mod->Attributes & CONF_VPP1_CHANGE_VALID) ||
@@ -623,8 +623,6 @@ int pcmcia_request_configuration(struct pcmcia_device *p_dev,
623 if (s->ops->set_socket(s, &s->socket)) 623 if (s->ops->set_socket(s, &s->socket))
624 return CS_BAD_VPP; 624 return CS_BAD_VPP;
625 625
626 c->Vcc = req->Vcc; c->Vpp1 = c->Vpp2 = req->Vpp1;
627
628 /* Pick memory or I/O card, DMA mode, interrupt */ 626 /* Pick memory or I/O card, DMA mode, interrupt */
629 c->IntType = req->IntType; 627 c->IntType = req->IntType;
630 c->Attributes = req->Attributes; 628 c->Attributes = req->Attributes;
@@ -822,7 +820,7 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req)
822 ((req->Attributes & IRQ_TYPE_DYNAMIC_SHARING) || 820 ((req->Attributes & IRQ_TYPE_DYNAMIC_SHARING) ||
823 (s->functions > 1) || 821 (s->functions > 1) ||
824 (irq == s->pci_irq)) ? SA_SHIRQ : 0, 822 (irq == s->pci_irq)) ? SA_SHIRQ : 0,
825 p_dev->dev.bus_id, 823 p_dev->devname,
826 (req->Attributes & IRQ_HANDLE_PRESENT) ? req->Instance : data); 824 (req->Attributes & IRQ_HANDLE_PRESENT) ? req->Instance : data);
827 if (!ret) { 825 if (!ret) {
828 if (!(req->Attributes & IRQ_HANDLE_PRESENT)) 826 if (!(req->Attributes & IRQ_HANDLE_PRESENT))
@@ -832,7 +830,8 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req)
832 } 830 }
833 } 831 }
834#endif 832#endif
835 if (ret) { 833 /* only assign PCI irq if no IRQ already assigned */
834 if (ret && !s->irq.AssignedIRQ) {
836 if (!s->pci_irq) 835 if (!s->pci_irq)
837 return ret; 836 return ret;
838 irq = s->pci_irq; 837 irq = s->pci_irq;
@@ -843,7 +842,7 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req)
843 ((req->Attributes & IRQ_TYPE_DYNAMIC_SHARING) || 842 ((req->Attributes & IRQ_TYPE_DYNAMIC_SHARING) ||
844 (s->functions > 1) || 843 (s->functions > 1) ||
845 (irq == s->pci_irq)) ? SA_SHIRQ : 0, 844 (irq == s->pci_irq)) ? SA_SHIRQ : 0,
846 p_dev->dev.bus_id, req->Instance)) 845 p_dev->devname, req->Instance))
847 return CS_IN_USE; 846 return CS_IN_USE;
848 } 847 }
849 848