aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/pcmcia
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/pcmcia')
-rw-r--r--drivers/pcmcia/pcmcia_resource.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/drivers/pcmcia/pcmcia_resource.c b/drivers/pcmcia/pcmcia_resource.c
index cefc4cda9d3e..8dce223f3f44 100644
--- a/drivers/pcmcia/pcmcia_resource.c
+++ b/drivers/pcmcia/pcmcia_resource.c
@@ -426,10 +426,6 @@ static int pcmcia_release_irq(struct pcmcia_device *p_dev, irq_req_t *req)
426 if (c->state & CONFIG_LOCKED) 426 if (c->state & CONFIG_LOCKED)
427 goto out; 427 goto out;
428 428
429 if (c->irq.Attributes != req->Attributes) {
430 dev_dbg(&s->dev, "IRQ attributes must match assigned ones\n");
431 goto out;
432 }
433 if (s->pcmcia_irq != req->AssignedIRQ) { 429 if (s->pcmcia_irq != req->AssignedIRQ) {
434 dev_dbg(&s->dev, "IRQ must match assigned one\n"); 430 dev_dbg(&s->dev, "IRQ must match assigned one\n");
435 goto out; 431 goto out;
@@ -553,9 +549,9 @@ int pcmcia_request_configuration(struct pcmcia_device *p_dev,
553 if (req->Present & PRESENT_IOBASE_0) 549 if (req->Present & PRESENT_IOBASE_0)
554 c->Option |= COR_ADDR_DECODE; 550 c->Option |= COR_ADDR_DECODE;
555 } 551 }
556 if (req->Attributes & CONF_ENABLE_IRQ) 552 if ((req->Attributes & CONF_ENABLE_IRQ) &&
557 if (!(c->irq.Attributes & IRQ_FORCED_PULSE)) 553 !(req->Attributes & CONF_ENABLE_PULSE_IRQ))
558 c->Option |= COR_LEVEL_REQ; 554 c->Option |= COR_LEVEL_REQ;
559 pcmcia_write_cis_mem(s, 1, (base + CISREG_COR)>>1, 1, &c->Option); 555 pcmcia_write_cis_mem(s, 1, (base + CISREG_COR)>>1, 1, &c->Option);
560 mdelay(40); 556 mdelay(40);
561 } 557 }
@@ -730,7 +726,6 @@ int pcmcia_request_irq(struct pcmcia_device *p_dev, irq_req_t *req)
730 } 726 }
731 } 727 }
732 728
733 c->irq.Attributes = req->Attributes;
734 req->AssignedIRQ = irq; 729 req->AssignedIRQ = irq;
735 730
736 p_dev->_irq = 1; 731 p_dev->_irq = 1;