X-Git-Url: http://pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fisdn%2Fhisax%2Fisac.c;h=07b1673122b8a8a6d34cb431cb2073281af78a24;hb=97ae60bb38279e1941c738b1037a57e6b14efeaf;hp=85e063a08d23e3410215e8c519a729b59a5352de;hpb=a8b3e6f10f08f66ae1072efd087b30966a3654f6;p=linux-2.6-omap-h63xx.git diff --git a/drivers/isdn/hisax/isac.c b/drivers/isdn/hisax/isac.c index 85e063a08d2..07b1673122b 100644 --- a/drivers/isdn/hisax/isac.c +++ b/drivers/isdn/hisax/isac.c @@ -27,8 +27,7 @@ static char *ISACVer[] __devinitdata = {"2086/2186 V1.1", "2085 B1", "2085 B2", "2085 V2.3"}; -void -ISACVersion(struct IsdnCardState *cs, char *s) +void __devinit ISACVersion(struct IsdnCardState *cs, char *s) { int val; @@ -81,8 +80,10 @@ isac_new_ph(struct IsdnCardState *cs) } static void -isac_bh(struct IsdnCardState *cs) +isac_bh(struct work_struct *work) { + struct IsdnCardState *cs = + container_of(work, struct IsdnCardState, tqueue); struct PStack *stptr; if (!cs) @@ -570,15 +571,12 @@ setstack_isac(struct PStack *st, struct IsdnCardState *cs) } static void -DC_Close_isac(struct IsdnCardState *cs) { - if (cs->dc.isac.mon_rx) { - kfree(cs->dc.isac.mon_rx); - cs->dc.isac.mon_rx = NULL; - } - if (cs->dc.isac.mon_tx) { - kfree(cs->dc.isac.mon_tx); - cs->dc.isac.mon_tx = NULL; - } +DC_Close_isac(struct IsdnCardState *cs) +{ + kfree(cs->dc.isac.mon_rx); + cs->dc.isac.mon_rx = NULL; + kfree(cs->dc.isac.mon_tx); + cs->dc.isac.mon_tx = NULL; } static void @@ -612,13 +610,12 @@ dbusy_timer_handler(struct IsdnCardState *cs) debugl1(cs, "D-Channel Busy no skb"); } cs->writeisac(cs, ISAC_CMDR, 0x01); /* Transmitter reset */ - cs->irq_func(cs->irq, cs, NULL); + cs->irq_func(cs->irq, cs); } } } -void __devinit -initisac(struct IsdnCardState *cs) +void initisac(struct IsdnCardState *cs) { cs->setstack_d = setstack_isac; cs->DC_Close = DC_Close_isac; @@ -649,8 +646,7 @@ initisac(struct IsdnCardState *cs) cs->writeisac(cs, ISAC_MASK, 0x0); } -void __devinit -clear_pending_isac_ints(struct IsdnCardState *cs) +void clear_pending_isac_ints(struct IsdnCardState *cs) { int val, eval; @@ -677,7 +673,7 @@ clear_pending_isac_ints(struct IsdnCardState *cs) void __devinit setup_isac(struct IsdnCardState *cs) { - INIT_WORK(&cs->tqueue, (void *)(void *) isac_bh, cs); + INIT_WORK(&cs->tqueue, isac_bh); cs->dbusytimer.function = (void *) dbusy_timer_handler; cs->dbusytimer.data = (long) cs; init_timer(&cs->dbusytimer);