aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/isdn/hisax
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/isdn/hisax')
-rw-r--r--drivers/isdn/hisax/sedlbauer.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/drivers/isdn/hisax/sedlbauer.c b/drivers/isdn/hisax/sedlbauer.c
index 030d1625c5c6..ad06f3cc60fb 100644
--- a/drivers/isdn/hisax/sedlbauer.c
+++ b/drivers/isdn/hisax/sedlbauer.c
@@ -451,6 +451,9 @@ Sedl_card_msg(struct IsdnCardState *cs, int mt, void *arg)
451 spin_unlock_irqrestore(&cs->lock, flags); 451 spin_unlock_irqrestore(&cs->lock, flags);
452 return(0); 452 return(0);
453 case CARD_RELEASE: 453 case CARD_RELEASE:
454 if (cs->hw.sedl.bus == SEDL_BUS_PCI)
455 /* disable all IRQ */
456 byteout(cs->hw.sedl.cfg_reg+ 5, 0);
454 if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) { 457 if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) {
455 spin_lock_irqsave(&cs->lock, flags); 458 spin_lock_irqsave(&cs->lock, flags);
456 writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx, 459 writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx,
@@ -468,6 +471,9 @@ Sedl_card_msg(struct IsdnCardState *cs, int mt, void *arg)
468 return(0); 471 return(0);
469 case CARD_INIT: 472 case CARD_INIT:
470 spin_lock_irqsave(&cs->lock, flags); 473 spin_lock_irqsave(&cs->lock, flags);
474 if (cs->hw.sedl.bus == SEDL_BUS_PCI)
475 /* enable all IRQ */
476 byteout(cs->hw.sedl.cfg_reg+ 5, 0x02);
471 reset_sedlbauer(cs); 477 reset_sedlbauer(cs);
472 if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) { 478 if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) {
473 clear_pending_isac_ints(cs); 479 clear_pending_isac_ints(cs);
@@ -667,7 +673,7 @@ setup_sedlbauer(struct IsdnCard *card)
667 byteout(cs->hw.sedl.cfg_reg, 0xff); 673 byteout(cs->hw.sedl.cfg_reg, 0xff);
668 byteout(cs->hw.sedl.cfg_reg, 0x00); 674 byteout(cs->hw.sedl.cfg_reg, 0x00);
669 byteout(cs->hw.sedl.cfg_reg+ 2, 0xdd); 675 byteout(cs->hw.sedl.cfg_reg+ 2, 0xdd);
670 byteout(cs->hw.sedl.cfg_reg+ 5, 0x02); 676 byteout(cs->hw.sedl.cfg_reg+ 5, 0); /* disable all IRQ */
671 byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_on); 677 byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_on);
672 mdelay(2); 678 mdelay(2);
673 byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_off); 679 byteout(cs->hw.sedl.cfg_reg +3, cs->hw.sedl.reset_off);