summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>2002-11-17 12:37:15 -0600
committerKai Germaschewski <kai@tp1.ruhr-uni-bochum.de>2002-11-17 12:37:15 -0600
commit9caa723acb80a27ddfd8ee19ca0711238e706ffb (patch)
tree1bc3f5071f9cd24012a81f26579c550e5b2331cd
parentfc983daf8fe2318d66f416931b0f6b1e469e78e6 (diff)
parent32c5550b39bdab3ab5755e973dd71e0db79f96a1 (diff)
Hand merged
-rw-r--r--drivers/isdn/hisax/asuscom.c2
-rw-r--r--drivers/isdn/hisax/avm_a1.c3
-rw-r--r--drivers/isdn/hisax/avm_a1p.c5
-rw-r--r--drivers/isdn/hisax/avm_pci.c11
-rw-r--r--drivers/isdn/hisax/bkm_a4t.c2
-rw-r--r--drivers/isdn/hisax/bkm_a8.c2
-rw-r--r--drivers/isdn/hisax/diva.c2
-rw-r--r--drivers/isdn/hisax/elsa.c3
-rw-r--r--drivers/isdn/hisax/gazel.c2
-rw-r--r--drivers/isdn/hisax/hscx.c49
-rw-r--r--drivers/isdn/hisax/hscx.h4
-rw-r--r--drivers/isdn/hisax/icc.c48
-rw-r--r--drivers/isdn/hisax/icc.h1
-rw-r--r--drivers/isdn/hisax/isac.c40
-rw-r--r--drivers/isdn/hisax/isac.h1
-rw-r--r--drivers/isdn/hisax/isurf.c7
-rw-r--r--drivers/isdn/hisax/ix1_micro.c2
-rw-r--r--drivers/isdn/hisax/jade.c34
-rw-r--r--drivers/isdn/hisax/jade.h1
-rw-r--r--drivers/isdn/hisax/mic.c3
-rw-r--r--drivers/isdn/hisax/niccy.c2
-rw-r--r--drivers/isdn/hisax/nj_s.c3
-rw-r--r--drivers/isdn/hisax/nj_u.c1
-rw-r--r--drivers/isdn/hisax/s0box.c2
-rw-r--r--drivers/isdn/hisax/saphir.c2
-rw-r--r--drivers/isdn/hisax/sedlbauer.c7
-rw-r--r--drivers/isdn/hisax/sportster.c3
-rw-r--r--drivers/isdn/hisax/teleint.c4
-rw-r--r--drivers/isdn/hisax/teles0.c2
-rw-r--r--drivers/isdn/hisax/teles3.c2
-rw-r--r--drivers/isdn/hisax/telespci.c2
31 files changed, 93 insertions, 159 deletions
diff --git a/drivers/isdn/hisax/asuscom.c b/drivers/isdn/hisax/asuscom.c
index cf943f1bddc4..bbaba450f644 100644
--- a/drivers/isdn/hisax/asuscom.c
+++ b/drivers/isdn/hisax/asuscom.c
@@ -295,7 +295,7 @@ Asus_card_msg(struct IsdnCardState *cs, int mt, void *arg)
return(0);
case CARD_INIT:
cs->debug |= L1_DEB_IPAC;
- inithscxisac(cs, 3);
+ inithscxisac(cs);
return(0);
case CARD_TEST:
return(0);
diff --git a/drivers/isdn/hisax/avm_a1.c b/drivers/isdn/hisax/avm_a1.c
index a87cfd0796d0..68724811c3ee 100644
--- a/drivers/isdn/hisax/avm_a1.c
+++ b/drivers/isdn/hisax/avm_a1.c
@@ -163,10 +163,9 @@ AVM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
release_ioregs(cs, 0x3f);
return(0);
case CARD_INIT:
- inithscxisac(cs, 1);
byteout(cs->hw.avm.cfg_reg, 0x16);
byteout(cs->hw.avm.cfg_reg, 0x1E);
- inithscxisac(cs, 2);
+ inithscxisac(cs);
return(0);
case CARD_TEST:
return(0);
diff --git a/drivers/isdn/hisax/avm_a1p.c b/drivers/isdn/hisax/avm_a1p.c
index 2f3f377400d6..5b6fa14dfa3f 100644
--- a/drivers/isdn/hisax/avm_a1p.c
+++ b/drivers/isdn/hisax/avm_a1p.c
@@ -224,10 +224,7 @@ AVM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
case CARD_INIT:
byteout(cs->hw.avm.cfg_reg+ASL0_OFFSET,ASL0_W_TDISABLE|ASL0_W_TRESET|ASL0_W_IRQENABLE);
- clear_pending_isac_ints(cs);
- clear_pending_hscx_ints(cs);
- inithscxisac(cs, 1);
- inithscxisac(cs, 2);
+ inithscxisac(cs);
return 0;
case CARD_TEST:
diff --git a/drivers/isdn/hisax/avm_pci.c b/drivers/isdn/hisax/avm_pci.c
index 7a5a885926e4..89c0f91fee02 100644
--- a/drivers/isdn/hisax/avm_pci.c
+++ b/drivers/isdn/hisax/avm_pci.c
@@ -639,7 +639,7 @@ setstack_hdlc(struct PStack *st, struct BCState *bcs)
}
void __init
-clear_pending_hdlc_ints(struct IsdnCardState *cs)
+inithdlc(struct IsdnCardState *cs)
{
u_int val;
@@ -666,11 +666,7 @@ clear_pending_hdlc_ints(struct IsdnCardState *cs)
val = ReadHDLCPnP(cs, 1, HDLC_STATUS + 3);
debugl1(cs, "HDLC 2 VIN %x", val);
}
-}
-void __init
-inithdlc(struct IsdnCardState *cs)
-{
cs->bcs[0].BC_SetStack = setstack_hdlc;
cs->bcs[1].BC_SetStack = setstack_hdlc;
cs->bcs[0].BC_Close = close_hdlcstate;
@@ -731,17 +727,12 @@ AVM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
release_region(cs->hw.avm.cfg_reg, 32);
return(0);
case CARD_INIT:
- clear_pending_isac_ints(cs);
initisac(cs);
- clear_pending_hdlc_ints(cs);
inithdlc(cs);
outb(AVM_STATUS0_DIS_TIMER | AVM_STATUS0_RES_TIMER,
cs->hw.avm.cfg_reg + 2);
- WriteISAC(cs, ISAC_MASK, 0);
outb(AVM_STATUS0_DIS_TIMER | AVM_STATUS0_RES_TIMER |
AVM_STATUS0_ENA_IRQ, cs->hw.avm.cfg_reg + 2);
- /* RESET Receiver and Transmitter */
- WriteISAC(cs, ISAC_CMDR, 0x41);
return(0);
case CARD_TEST:
return(0);
diff --git a/drivers/isdn/hisax/bkm_a4t.c b/drivers/isdn/hisax/bkm_a4t.c
index 75f361e241be..5105b2e67da7 100644
--- a/drivers/isdn/hisax/bkm_a4t.c
+++ b/drivers/isdn/hisax/bkm_a4t.c
@@ -243,8 +243,6 @@ BKM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
release_io_bkm(cs);
return (0);
case CARD_INIT:
- clear_pending_isac_ints(cs);
- clear_pending_jade_ints(cs);
initisac(cs);
initjade(cs);
/* Enable ints */
diff --git a/drivers/isdn/hisax/bkm_a8.c b/drivers/isdn/hisax/bkm_a8.c
index a0b4282dae01..329a0e91937e 100644
--- a/drivers/isdn/hisax/bkm_a8.c
+++ b/drivers/isdn/hisax/bkm_a8.c
@@ -251,7 +251,7 @@ BKM_card_msg(struct IsdnCardState *cs, int mt, void *arg)
case CARD_INIT:
cs->debug |= L1_DEB_IPAC;
set_ipac_active(cs, 1);
- inithscxisac(cs, 3);
+ inithscxisac(cs);
/* Enable ints */
enable_bkm_int(cs, 1);
return (0);
diff --git a/drivers/isdn/hisax/diva.c b/drivers/isdn/hisax/diva.c
index 20ca4c4c1c6b..f7b43a0b9932 100644
--- a/drivers/isdn/hisax/diva.c
+++ b/drivers/isdn/hisax/diva.c
@@ -860,7 +860,7 @@ Diva_card_msg(struct IsdnCardState *cs, int mt, void *arg)
ireg = (unsigned int *)cs->hw.diva.pci_cfg;
*ireg = PITA_INT0_ENABLE;
}
- inithscxisac(cs, 3);
+ inithscxisac(cs);
return(0);
case CARD_TEST:
return(0);
diff --git a/drivers/isdn/hisax/elsa.c b/drivers/isdn/hisax/elsa.c
index 600c959a6a49..eedb419f0fc7 100644
--- a/drivers/isdn/hisax/elsa.c
+++ b/drivers/isdn/hisax/elsa.c
@@ -679,7 +679,6 @@ Elsa_card_msg(struct IsdnCardState *cs, int mt, void *arg)
return(0);
case CARD_INIT:
cs->debug |= L1_DEB_IPAC;
- inithscxisac(cs, 1);
if ((cs->subtyp == ELSA_QS1000) ||
(cs->subtyp == ELSA_QS3000))
{
@@ -687,7 +686,7 @@ Elsa_card_msg(struct IsdnCardState *cs, int mt, void *arg)
}
if (cs->hw.elsa.trig)
byteout(cs->hw.elsa.trig, 0xff);
- inithscxisac(cs, 2);
+ inithscxisac(cs);
return(0);
case CARD_TEST:
if ((cs->subtyp == ELSA_PCMCIA) ||
diff --git a/drivers/isdn/hisax/gazel.c b/drivers/isdn/hisax/gazel.c
index 2ad414bee102..dc960b749e76 100644
--- a/drivers/isdn/hisax/gazel.c
+++ b/drivers/isdn/hisax/gazel.c
@@ -421,7 +421,7 @@ Gazel_card_msg(struct IsdnCardState *cs, int mt, void *arg)
release_io_gazel(cs);
return (0);
case CARD_INIT:
- inithscxisac(cs, 1);
+ inithscxisac(cs);
if ((cs->subtyp==R647)||(cs->subtyp==R685)) {
int i;
for (i=0;i<(2+MAX_WAITING_CALLS);i++) {
diff --git a/drivers/isdn/hisax/hscx.c b/drivers/isdn/hisax/hscx.c
index 174be03de2e1..73ffe2165706 100644
--- a/drivers/isdn/hisax/hscx.c
+++ b/drivers/isdn/hisax/hscx.c
@@ -220,10 +220,21 @@ setstack_hscx(struct PStack *st, struct BCState *bcs)
}
void __init
-clear_pending_hscx_ints(struct IsdnCardState *cs)
+inithscx(struct IsdnCardState *cs)
{
int val, eval;
+ cs->bcs[0].BC_SetStack = setstack_hscx;
+ cs->bcs[1].BC_SetStack = setstack_hscx;
+ cs->bcs[0].BC_Close = close_hscxstate;
+ cs->bcs[1].BC_Close = close_hscxstate;
+ cs->bcs[0].hw.hscx.hscx = 0;
+ cs->bcs[1].hw.hscx.hscx = 1;
+ cs->bcs[0].hw.hscx.tsaxr0 = 0x2f;
+ cs->bcs[0].hw.hscx.tsaxr1 = 3;
+ cs->bcs[1].hw.hscx.tsaxr0 = 0x2f;
+ cs->bcs[1].hw.hscx.tsaxr1 = 3;
+
val = cs->BC_Read_Reg(cs, 1, HSCX_ISTA);
debugl1(cs, "HSCX B ISTA %x", val);
if (val & 0x01) {
@@ -243,40 +254,18 @@ clear_pending_hscx_ints(struct IsdnCardState *cs)
/* disable all IRQ */
cs->BC_Write_Reg(cs, 0, HSCX_MASK, 0xFF);
cs->BC_Write_Reg(cs, 1, HSCX_MASK, 0xFF);
-}
-void __init
-inithscx(struct IsdnCardState *cs)
-{
- cs->bcs[0].BC_SetStack = setstack_hscx;
- cs->bcs[1].BC_SetStack = setstack_hscx;
- cs->bcs[0].BC_Close = close_hscxstate;
- cs->bcs[1].BC_Close = close_hscxstate;
- cs->bcs[0].hw.hscx.hscx = 0;
- cs->bcs[1].hw.hscx.hscx = 1;
- cs->bcs[0].hw.hscx.tsaxr0 = 0x2f;
- cs->bcs[0].hw.hscx.tsaxr1 = 3;
- cs->bcs[1].hw.hscx.tsaxr0 = 0x2f;
- cs->bcs[1].hw.hscx.tsaxr1 = 3;
modehscx(cs->bcs, 0, 0);
modehscx(cs->bcs + 1, 0, 0);
+
+ /* Reenable all IRQ */
+ cs->BC_Write_Reg(cs, 0, HSCX_MASK, 0);
+ cs->BC_Write_Reg(cs, 1, HSCX_MASK, 0);
}
void __init
-inithscxisac(struct IsdnCardState *cs, int part)
+inithscxisac(struct IsdnCardState *cs)
{
- if (part & 1) {
- clear_pending_isac_ints(cs);
- clear_pending_hscx_ints(cs);
- initisac(cs);
- inithscx(cs);
- }
- if (part & 2) {
- /* Reenable all IRQ */
- cs->writeisac(cs, ISAC_MASK, 0);
- cs->BC_Write_Reg(cs, 0, HSCX_MASK, 0);
- cs->BC_Write_Reg(cs, 1, HSCX_MASK, 0);
- /* RESET Receiver and Transmitter */
- cs->writeisac(cs, ISAC_CMDR, 0x41);
- }
+ initisac(cs);
+ inithscx(cs);
}
diff --git a/drivers/isdn/hisax/hscx.h b/drivers/isdn/hisax/hscx.h
index c9f6cbaa745b..abb49f0c8f09 100644
--- a/drivers/isdn/hisax/hscx.h
+++ b/drivers/isdn/hisax/hscx.h
@@ -37,6 +37,4 @@
extern int HscxVersion(struct IsdnCardState *cs, char *s);
extern void hscx_sched_event(struct BCState *bcs, int event);
extern void modehscx(struct BCState *bcs, int mode, int bc);
-extern void clear_pending_hscx_ints(struct IsdnCardState *cs);
-extern void inithscx(struct IsdnCardState *cs);
-extern void inithscxisac(struct IsdnCardState *cs, int part);
+extern void inithscxisac(struct IsdnCardState *cs);
diff --git a/drivers/isdn/hisax/icc.c b/drivers/isdn/hisax/icc.c
index e97d962155c5..7a72669eb3da 100644
--- a/drivers/isdn/hisax/icc.c
+++ b/drivers/isdn/hisax/icc.c
@@ -623,6 +623,8 @@ dbusy_timer_handler(struct IsdnCardState *cs)
void __init
initicc(struct IsdnCardState *cs)
{
+ int val, eval;
+
INIT_WORK(&cs->work, icc_bh, cs);
cs->setstack_d = setstack_icc;
cs->DC_Close = DC_Close_icc;
@@ -631,7 +633,26 @@ initicc(struct IsdnCardState *cs)
cs->dbusytimer.function = (void *) dbusy_timer_handler;
cs->dbusytimer.data = (long) cs;
init_timer(&cs->dbusytimer);
- cs->writeisac(cs, ICC_MASK, 0xff);
+
+ val = cs->readisac(cs, ICC_STAR);
+ debugl1(cs, "ICC STAR %x", val);
+ val = cs->readisac(cs, ICC_MODE);
+ debugl1(cs, "ICC MODE %x", val);
+ val = cs->readisac(cs, ICC_ADF2);
+ debugl1(cs, "ICC ADF2 %x", val);
+ val = cs->readisac(cs, ICC_ISTA);
+ debugl1(cs, "ICC ISTA %x", val);
+ if (val & 0x01) {
+ eval = cs->readisac(cs, ICC_EXIR);
+ debugl1(cs, "ICC EXIR %x", eval);
+ }
+ val = cs->readisac(cs, ICC_CIR0);
+ debugl1(cs, "ICC CIR0 %x", val);
+ cs->dc.icc.ph_state = (val >> 2) & 0xf;
+ icc_sched_event(cs, D_L1STATECHANGE);
+ /* Disable all IRQ */
+ cs->writeisac(cs, ICC_MASK, 0xFF);
+
cs->dc.icc.mocr = 0xaa;
if (test_bit(HW_IOM1, &cs->HW_Flags)) {
/* IOM 1 Mode */
@@ -656,28 +677,3 @@ initicc(struct IsdnCardState *cs)
cs->writeisac(cs, ICC_MASK, 0x0);
ph_command(cs, ICC_CMD_DI);
}
-
-void __init
-clear_pending_icc_ints(struct IsdnCardState *cs)
-{
- int val, eval;
-
- val = cs->readisac(cs, ICC_STAR);
- debugl1(cs, "ICC STAR %x", val);
- val = cs->readisac(cs, ICC_MODE);
- debugl1(cs, "ICC MODE %x", val);
- val = cs->readisac(cs, ICC_ADF2);
- debugl1(cs, "ICC ADF2 %x", val);
- val = cs->readisac(cs, ICC_ISTA);
- debugl1(cs, "ICC ISTA %x", val);
- if (val & 0x01) {
- eval = cs->readisac(cs, ICC_EXIR);
- debugl1(cs, "ICC EXIR %x", eval);
- }
- val = cs->readisac(cs, ICC_CIR0);
- debugl1(cs, "ICC CIR0 %x", val);
- cs->dc.icc.ph_state = (val >> 2) & 0xf;
- icc_sched_event(cs, D_L1STATECHANGE);
- /* Disable all IRQ */
- cs->writeisac(cs, ICC_MASK, 0xFF);
-}
diff --git a/drivers/isdn/hisax/icc.h b/drivers/isdn/hisax/icc.h
index 90feb9064202..7750f34dbfd6 100644
--- a/drivers/isdn/hisax/icc.h
+++ b/drivers/isdn/hisax/icc.h
@@ -68,4 +68,3 @@
extern void ICCVersion(struct IsdnCardState *cs, char *s);
extern void initicc(struct IsdnCardState *cs);
extern void icc_interrupt(struct IsdnCardState *cs, u_char val);
-extern void clear_pending_icc_ints(struct IsdnCardState *cs);
diff --git a/drivers/isdn/hisax/isac.c b/drivers/isdn/hisax/isac.c
index a23f1184d4f5..79f35ca03f4f 100644
--- a/drivers/isdn/hisax/isac.c
+++ b/drivers/isdn/hisax/isac.c
@@ -625,6 +625,23 @@ dbusy_timer_handler(struct IsdnCardState *cs)
void __devinit
initisac(struct IsdnCardState *cs)
{
+ int val, eval;
+
+ val = cs->readisac(cs, ISAC_STAR);
+ debugl1(cs, "ISAC STAR %x", val);
+ val = cs->readisac(cs, ISAC_MODE);
+ debugl1(cs, "ISAC MODE %x", val);
+ val = cs->readisac(cs, ISAC_ADF2);
+ debugl1(cs, "ISAC ADF2 %x", val);
+ val = cs->readisac(cs, ISAC_ISTA);
+ debugl1(cs, "ISAC ISTA %x", val);
+ if (val & 0x01) {
+ eval = cs->readisac(cs, ISAC_EXIR);
+ debugl1(cs, "ISAC EXIR %x", eval);
+ }
+ /* Disable all IRQ */
+ cs->writeisac(cs, ISAC_MASK, 0xFF);
+
INIT_WORK(&cs->work, isac_bh, cs);
cs->setstack_d = setstack_isac;
cs->DC_Close = DC_Close_isac;
@@ -656,29 +673,12 @@ initisac(struct IsdnCardState *cs)
}
ph_command(cs, ISAC_CMD_RS);
cs->writeisac(cs, ISAC_MASK, 0x0);
-}
-void __devinit
-clear_pending_isac_ints(struct IsdnCardState *cs)
-{
- int val, eval;
-
- val = cs->readisac(cs, ISAC_STAR);
- debugl1(cs, "ISAC STAR %x", val);
- val = cs->readisac(cs, ISAC_MODE);
- debugl1(cs, "ISAC MODE %x", val);
- val = cs->readisac(cs, ISAC_ADF2);
- debugl1(cs, "ISAC ADF2 %x", val);
- val = cs->readisac(cs, ISAC_ISTA);
- debugl1(cs, "ISAC ISTA %x", val);
- if (val & 0x01) {
- eval = cs->readisac(cs, ISAC_EXIR);
- debugl1(cs, "ISAC EXIR %x", eval);
- }
val = cs->readisac(cs, ISAC_CIR0);
debugl1(cs, "ISAC CIR0 %x", val);
cs->dc.isac.ph_state = (val >> 2) & 0xf;
isac_sched_event(cs, D_L1STATECHANGE);
- /* Disable all IRQ */
- cs->writeisac(cs, ISAC_MASK, 0xFF);
+
+ /* RESET Receiver and Transmitter */
+ cs->writeisac(cs, ISAC_CMDR, 0x41);
}
diff --git a/drivers/isdn/hisax/isac.h b/drivers/isdn/hisax/isac.h
index 3d69027427fd..eb7761683bbe 100644
--- a/drivers/isdn/hisax/isac.h
+++ b/drivers/isdn/hisax/isac.h
@@ -66,4 +66,3 @@
extern void ISACVersion(struct IsdnCardState *cs, char *s);
extern void initisac(struct IsdnCardState *cs);
extern void isac_interrupt(struct IsdnCardState *cs, u_char val);
-extern void clear_pending_isac_ints(struct IsdnCardState *cs);
diff --git a/drivers/isdn/hisax/isurf.c b/drivers/isdn/hisax/isurf.c
index 59d506a5522a..1bac24e4d935 100644
--- a/drivers/isdn/hisax/isurf.c
+++ b/drivers/isdn/hisax/isurf.c
@@ -155,14 +155,9 @@ ISurf_card_msg(struct IsdnCardState *cs, int mt, void *arg)
release_io_isurf(cs);
return(0);
case CARD_INIT:
- clear_pending_isac_ints(cs);
writeb(0, cs->hw.isurf.isar+ISAR_IRQBIT);mb();
initisac(cs);
initisar(cs);
- /* Reenable ISAC IRQ */
- cs->writeisac(cs, ISAC_MASK, 0);
- /* RESET Receiver and Transmitter */
- cs->writeisac(cs, ISAC_CMDR, 0x41);
return(0);
case CARD_TEST:
return(0);
@@ -180,8 +175,6 @@ isurf_auxcmd(struct IsdnCardState *cs, isdn_ctrl *ic) {
reset_isurf(cs, ISURF_ISAR_EA | ISURF_ISAC_RESET |
ISURF_ARCOFI_RESET);
initisac(cs);
- cs->writeisac(cs, ISAC_MASK, 0);
- cs->writeisac(cs, ISAC_CMDR, 0x41);
}
return(ret);
}
diff --git a/drivers/isdn/hisax/ix1_micro.c b/drivers/isdn/hisax/ix1_micro.c
index 2cdeb86d44f7..2bcec581de1e 100644
--- a/drivers/isdn/hisax/ix1_micro.c
+++ b/drivers/isdn/hisax/ix1_micro.c
@@ -205,7 +205,7 @@ ix1_card_msg(struct IsdnCardState *cs, int mt, void *arg)
release_io_ix1micro(cs);
return(0);
case CARD_INIT:
- inithscxisac(cs, 3);
+ inithscxisac(cs);
return(0);
case CARD_TEST:
return(0);
diff --git a/drivers/isdn/hisax/jade.c b/drivers/isdn/hisax/jade.c
index 2fa2f12600fd..e0bf563d93a9 100644
--- a/drivers/isdn/hisax/jade.c
+++ b/drivers/isdn/hisax/jade.c
@@ -263,40 +263,32 @@ setstack_jade(struct PStack *st, struct BCState *bcs)
}
void __init
-clear_pending_jade_ints(struct IsdnCardState *cs)
+initjade(struct IsdnCardState *cs)
{
int val;
- char tmp[64];
+
+ cs->bcs[0].BC_SetStack = setstack_jade;
+ cs->bcs[1].BC_SetStack = setstack_jade;
+ cs->bcs[0].BC_Close = close_jadestate;
+ cs->bcs[1].BC_Close = close_jadestate;
+ cs->bcs[0].hw.hscx.hscx = 0;
+ cs->bcs[1].hw.hscx.hscx = 1;
cs->BC_Write_Reg(cs, 0, jade_HDLC_IMR, 0x00);
cs->BC_Write_Reg(cs, 1, jade_HDLC_IMR, 0x00);
val = cs->BC_Read_Reg(cs, 1, jade_HDLC_ISR);
- sprintf(tmp, "jade B ISTA %x", val);
- debugl1(cs, tmp);
+ debugl1(cs, "jade B ISTA %x", val);
val = cs->BC_Read_Reg(cs, 0, jade_HDLC_ISR);
- sprintf(tmp, "jade A ISTA %x", val);
- debugl1(cs, tmp);
+ debugl1(cs, "jade A ISTA %x", val);
val = cs->BC_Read_Reg(cs, 1, jade_HDLC_STAR);
- sprintf(tmp, "jade B STAR %x", val);
- debugl1(cs, tmp);
+ debugl1(cs, "jade B STAR %x", val);
val = cs->BC_Read_Reg(cs, 0, jade_HDLC_STAR);
- sprintf(tmp, "jade A STAR %x", val);
- debugl1(cs, tmp);
+ debugl1(cs, "jade A STAR %x", val);
+
/* Unmask ints */
cs->BC_Write_Reg(cs, 0, jade_HDLC_IMR, 0xF8);
cs->BC_Write_Reg(cs, 1, jade_HDLC_IMR, 0xF8);
-}
-
-void __init
-initjade(struct IsdnCardState *cs)
-{
- cs->bcs[0].BC_SetStack = setstack_jade;
- cs->bcs[1].BC_SetStack = setstack_jade;
- cs->bcs[0].BC_Close = close_jadestate;
- cs->bcs[1].BC_Close = close_jadestate;
- cs->bcs[0].hw.hscx.hscx = 0;
- cs->bcs[1].hw.hscx.hscx = 1;
/* Stop DSP audio tx/rx */
jade_write_indirect(cs, 0x11, 0x0f);
diff --git a/drivers/isdn/hisax/jade.h b/drivers/isdn/hisax/jade.h
index 1a6ce2ac4dfe..d8582e355f0d 100644
--- a/drivers/isdn/hisax/jade.h
+++ b/drivers/isdn/hisax/jade.h
@@ -130,7 +130,6 @@
extern int JadeVersion(struct IsdnCardState *cs, char *s);
extern void jade_sched_event(struct BCState *bcs, int event);
extern void modejade(struct BCState *bcs, int mode, int bc);
-extern void clear_pending_jade_ints(struct IsdnCardState *cs);
extern void initjade(struct IsdnCardState *cs);
#endif /* __JADE_H__ */
diff --git a/drivers/isdn/hisax/mic.c b/drivers/isdn/hisax/mic.c
index 97d94239927c..8b9c08e7b9b5 100644
--- a/drivers/isdn/hisax/mic.c
+++ b/drivers/isdn/hisax/mic.c
@@ -188,8 +188,7 @@ mic_card_msg(struct IsdnCardState *cs, int mt, void *arg)
release_io_mic(cs);
return(0);
case CARD_INIT:
- inithscx(cs); /* /RTSA := ISAC RST */
- inithscxisac(cs, 3);
+ inithscxisac(cs);
return(0);
case CARD_TEST:
return(0);
diff --git a/drivers/isdn/hisax/niccy.c b/drivers/isdn/hisax/niccy.c
index 6caaac80c54f..5ea3cd02fb27 100644
--- a/drivers/isdn/hisax/niccy.c
+++ b/drivers/isdn/hisax/niccy.c
@@ -214,7 +214,7 @@ niccy_reset(struct IsdnCardState *cs)
val |= PCI_IRQ_ENABLE;
outl(val, cs->hw.niccy.cfg_reg + PCI_IRQ_CTRL_REG);
}
- inithscxisac(cs, 3);
+ inithscxisac(cs);
}
static int
diff --git a/drivers/isdn/hisax/nj_s.c b/drivers/isdn/hisax/nj_s.c
index 5a5600103366..042d41a80531 100644
--- a/drivers/isdn/hisax/nj_s.c
+++ b/drivers/isdn/hisax/nj_s.c
@@ -130,10 +130,7 @@ NETjet_S_card_msg(struct IsdnCardState *cs, int mt, void *arg)
return(0);
case CARD_INIT:
inittiger(cs);
- clear_pending_isac_ints(cs);
initisac(cs);
- /* Reenable all IRQ */
- cs->writeisac(cs, ISAC_MASK, 0);
return(0);
case CARD_TEST:
return(0);
diff --git a/drivers/isdn/hisax/nj_u.c b/drivers/isdn/hisax/nj_u.c
index 6d28c10e4d9f..ba8328ecf274 100644
--- a/drivers/isdn/hisax/nj_u.c
+++ b/drivers/isdn/hisax/nj_u.c
@@ -131,7 +131,6 @@ NETjet_U_card_msg(struct IsdnCardState *cs, int mt, void *arg)
return(0);
case CARD_INIT:
inittiger(cs);
- clear_pending_icc_ints(cs);
initicc(cs);
/* Reenable all IRQ */
cs->writeisac(cs, ICC_MASK, 0);
diff --git a/drivers/isdn/hisax/s0box.c b/drivers/isdn/hisax/s0box.c
index 1e8d88da0884..1c97b691ef17 100644
--- a/drivers/isdn/hisax/s0box.c
+++ b/drivers/isdn/hisax/s0box.c
@@ -207,7 +207,7 @@ S0Box_card_msg(struct IsdnCardState *cs, int mt, void *arg)
release_io_s0box(cs);
break;
case CARD_INIT:
- inithscxisac(cs, 3);
+ inithscxisac(cs);
break;
case CARD_TEST:
break;
diff --git a/drivers/isdn/hisax/saphir.c b/drivers/isdn/hisax/saphir.c
index 4fbd2ee7bcd2..30dea018fafc 100644
--- a/drivers/isdn/hisax/saphir.c
+++ b/drivers/isdn/hisax/saphir.c
@@ -235,7 +235,7 @@ saphir_card_msg(struct IsdnCardState *cs, int mt, void *arg)
release_io_saphir(cs);
return(0);
case CARD_INIT:
- inithscxisac(cs, 3);
+ inithscxisac(cs);
return(0);
case CARD_TEST:
return(0);
diff --git a/drivers/isdn/hisax/sedlbauer.c b/drivers/isdn/hisax/sedlbauer.c
index 694eb354c1cb..406029a5882e 100644
--- a/drivers/isdn/hisax/sedlbauer.c
+++ b/drivers/isdn/hisax/sedlbauer.c
@@ -479,17 +479,12 @@ Sedl_card_msg(struct IsdnCardState *cs, int mt, void *arg)
return(0);
case CARD_INIT:
if (cs->hw.sedl.chip == SEDL_CHIP_ISAC_ISAR) {
- clear_pending_isac_ints(cs);
writereg(cs->hw.sedl.adr, cs->hw.sedl.hscx,
ISAR_IRQBIT, 0);
initisac(cs);
initisar(cs);
- /* Reenable all IRQ */
- cs->writeisac(cs, ISAC_MASK, 0);
- /* RESET Receiver and Transmitter */
- cs->writeisac(cs, ISAC_CMDR, 0x41);
} else {
- inithscxisac(cs, 3);
+ inithscxisac(cs);
}
return(0);
case CARD_TEST:
diff --git a/drivers/isdn/hisax/sportster.c b/drivers/isdn/hisax/sportster.c
index 687cf8504c71..5979cd41c500 100644
--- a/drivers/isdn/hisax/sportster.c
+++ b/drivers/isdn/hisax/sportster.c
@@ -168,10 +168,9 @@ Sportster_card_msg(struct IsdnCardState *cs, int mt, void *arg)
release_io_sportster(cs);
return(0);
case CARD_INIT:
- inithscxisac(cs, 1);
+ inithscxisac(cs);
cs->hw.spt.res_irq |= SPORTSTER_INTE; /* IRQ On */
byteout(cs->hw.spt.cfg_reg + SPORTSTER_RES_IRQ, cs->hw.spt.res_irq);
- inithscxisac(cs, 2);
return(0);
case CARD_TEST:
return(0);
diff --git a/drivers/isdn/hisax/teleint.c b/drivers/isdn/hisax/teleint.c
index 372f5ed34241..b5ca34d600f3 100644
--- a/drivers/isdn/hisax/teleint.c
+++ b/drivers/isdn/hisax/teleint.c
@@ -242,11 +242,7 @@ TeleInt_card_msg(struct IsdnCardState *cs, int mt, void *arg)
return(0);
case CARD_INIT:
inithfc(cs);
- clear_pending_isac_ints(cs);
initisac(cs);
- /* Reenable all IRQ */
- cs->writeisac(cs, ISAC_MASK, 0);
- cs->writeisac(cs, ISAC_CMDR, 0x41);
cs->hw.hfc.timer.expires = jiffies + 1;
add_timer(&cs->hw.hfc.timer);
return(0);
diff --git a/drivers/isdn/hisax/teles0.c b/drivers/isdn/hisax/teles0.c
index dfe161baf900..92eb04fab1b4 100644
--- a/drivers/isdn/hisax/teles0.c
+++ b/drivers/isdn/hisax/teles0.c
@@ -251,7 +251,7 @@ Teles_card_msg(struct IsdnCardState *cs, int mt, void *arg)
release_io_teles0(cs);
return(0);
case CARD_INIT:
- inithscxisac(cs, 3);
+ inithscxisac(cs);
return(0);
case CARD_TEST:
return(0);
diff --git a/drivers/isdn/hisax/teles3.c b/drivers/isdn/hisax/teles3.c
index 02662ebae6cf..44dae27ce44e 100644
--- a/drivers/isdn/hisax/teles3.c
+++ b/drivers/isdn/hisax/teles3.c
@@ -238,7 +238,7 @@ Teles_card_msg(struct IsdnCardState *cs, int mt, void *arg)
release_io_teles3(cs);
return(0);
case CARD_INIT:
- inithscxisac(cs, 3);
+ inithscxisac(cs);
return(0);
case CARD_TEST:
return(0);
diff --git a/drivers/isdn/hisax/telespci.c b/drivers/isdn/hisax/telespci.c
index 91eb0d9ffa2f..42e8b5c814d1 100644
--- a/drivers/isdn/hisax/telespci.c
+++ b/drivers/isdn/hisax/telespci.c
@@ -270,7 +270,7 @@ TelesPCI_card_msg(struct IsdnCardState *cs, int mt, void *arg)
release_io_telespci(cs);
return(0);
case CARD_INIT:
- inithscxisac(cs, 3);
+ inithscxisac(cs);
return(0);
case CARD_TEST:
return(0);